Slashdot Mirror


What Do Programmers Like About .NET?

prostoalex writes "Software Development Times did a special report asking the .NET developers what they liked about the platform, since it's been 18 months since the .NET introduction by Microsoft. While the positive responses generally acclaimed Microsoft on integrating C++/C# logic development and VB GUI generation into one environment, some complaints are out there as well. From the article: "When Mark Lindley, manager of development services at Cimco, was working with .NET version 1.0 in September 2002, he needed to implement SSL transactions over TCP/IP. 'It took a long time to figure out that this functionality hadn't been implemented in .NET yet,' recalled Lindley." The article also mentions Honeywell Automated Control Systems, a .NET/J2EE software operation, considering moving their operations to .NET platform."

20 of 161 comments (clear)

  1. i like .NET by sumho · · Score: 4, Interesting

    it sure beats writing windows programs in win32. the only thing i miss(being a java programmer) is javadocs. i mean come on now, if you're going to clone a language, at least do the whole thing, or you're just going to leave people confused. overall though, .net is a nice thing to use. i do wish it did something better, but you can't have everything.

    --
    All it takes to fly is to hurl yourself at the ground... and miss. -Douglas Adams
    1. Re:i like .NET by sumho · · Score: 3, Interesting

      sorry to be so vague, i was being bothered by someone while i was writing the previous comment. anyway, .net has done alot of things right. microsoft's idea of object oriented programming may be a bit off, but they get the general feel for it in c#. there is always the option of java developers to develop using j# but it's really not worth it when you can just do it using almost the same syntax in c#. for examples with j# you have distribute a j# runtime with your applications. this point is, if microsoft has done anything right with .net, it's making it possible to write quality programs for windows( WITHOUT VB ) using something other than c/c++ and win32/mfc.

      --
      All it takes to fly is to hurl yourself at the ground... and miss. -Douglas Adams
    2. Re:i like .NET by Javagator · · Score: 3, Interesting

      My company's product moved from UNIX to Windows several years ago. I have been programming in VB and C++/ATL/COM and hating it. Recently, I've been using C# and the .Net framework for desktop applications. It is really a joy to use compared with VB and/or COM. No more 7 different types of strings, "wizard" generated code, IDL, message maps, HRESULT, etc.

      C# is basically Java with performance. It is very easy to program, but powerful. I hate GUI builders, but I have written a layout manager similar to Java's GridBagLayout and it is working out pretty well.

      I have always hated IDE's, they hog too much screen space and the editors are always pretty lame compared to EMACS. However, Visual Studio .Net is a dream. It is highly customizable so I can put the non-editor windows in auto-hide mode and have programmed to the keys to be pretty close to EMACS. Now I can switch back and forth between editors without getting brain lock.

      Of course, .Net ties you into Microsoft, which is not a good thing, but if you are developing for Microsoft only, it is the way to go.

    3. Re:i like .NET by E_elven · · Score: 2, Interesting

      >Of course, .Net ties you into Microsoft, which is not a good thing,--

      No, it doesn't. http://www.go-mono.com. Again, the Community does it better, too.

      --
      Marxist evolution is just N generations away!
  2. What I like about .NET by Inoshiro · · Score: 4, Interesting

    It lets me take most of what I've learned with Java, and leverage it with a faster VM and better environment integration. While applications like MP3 players can get away with looking totally weird, I prefer my applications to be consistent.

    Plus, the GUI programming is ultra easy with the model for messages that .NET uses with C# applications. I found it much easier than working with SWING applications.

    Too bad that there's not any handy C# environment for Linux that's complete that I know of. I'd really like to be able to write more C# applications, since the language and GUI libraries are such a breeeze to work with.

    --
    --
    Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
    1. Re:What I like about .NET by sumho · · Score: 2, Interesting

      this is true. i can't stand looking at a swing application. it just hurts my eyes to look at something on my desktop that doesn't look like everything else on my desktop. yes you can use the window swing theme, but the fonts are still different, and swing is just plain slow. i have been playing around with mono on my linux machines. i've read that you can tie wine in with mono so you can use the system.windows.forms namespace, but i have yet to try.

      --
      All it takes to fly is to hurl yourself at the ground... and miss. -Douglas Adams
    2. Re:What I like about .NET by DevilM · · Score: 4, Interesting

      BTW, the reason for this is that Apple got off their but and made sure Java works like a chap on Mac OS X. They implemented the Aqua LAF using their native widgets, so there is no difference between Java and native applications. The same could have been true for Windows, but obviously Microsoft felt different.

  3. Re:.Net by sumho · · Score: 3, Interesting

    well, my title is programmer. that means i have to write anything my boss tells me to write. so when i have to write a windows program, c# makes it alot easier to do compared to win32 and c. this might not make that much sense, but i work at a college, and i have to write what they tell me to even if i don't know the language they want me to write it in. i do know java, which make c# all the easier to write in.

    --
    All it takes to fly is to hurl yourself at the ground... and miss. -Douglas Adams
  4. The IDE by vandel405 · · Score: 4, Interesting

    My experience is that C# is pretty good, on par with java. and C++ is C++, MS bastardizes it a little but it isn't that bad. But the major selling point of VS.NET isn't the .NET part, its the VS part.

    The IDE kicks ass. it's just that simple. I know you may be able to code like a pro with emacs if you know all of the key combos, but the combo boxes that pop up when you type giving you on the fly documentation and revealing the classes/functions available to you is a god send.

    VS is just an awesome IDE that makes up for any short coming of .NET, which i haven't found many.

    1. Re:The IDE by innosent · · Score: 4, Interesting

      Good point, and you're right. The only other IDE I know of that is IMHO as good as VS is Anjuta. Automatic word completion and pop-up class heirarchies are the most productive thing in an IDE ever created. I can fly through sets of code used on an object in less than half the time, because I only need to type 10 letters on an average line. Things like param = cmd.Parameters.Add("@username", SqlDbType.Char, 15), can be typed in with cmd.P.A("@username", [down 3], 15).

      Do that a hundred times or so for different strings or objects, and you'll appreciate it. Don't get me wrong, I type very fast, but why should I have to? Especially on repetitive things like that.

      The only complaints I have are in VB, where a lot of things have been removed, and only about half of them are implemented in .NET. Try opening a com port in VB.NET (hint: you'll be using the C APIs the entire time). And no, I don't like VB/C#/VC++, but I do like paychecks.

      --
      --That's the point of being root, you can do anything you want, even if it's stupid.
    2. Re:The IDE by erasmus_ · · Score: 2, Interesting

      I don't understand how that is different from VS.NET and its IntelliSense. When I hit the . after cmd, the popup list of all the methods and properties comes up, so if I hit P and then ., then it types Parameters for me, just like this Anjuta. Same thing for the enum (SqlDbType) - although in C# this is not as easy, VB.NET has great enum completion, where the whole enum pops up and you can hit the arrows to select the one you want instead of typing. The IntelliSense is even better now in VS.NET 2003, as it's been extended to the Command Window, which one uses quite a bit in debugging.

      And if you're typing up parameter add statements 100 times, then you obviously haven't seen some of the data layer generators out there for .NET that save you a ton of time, like Microsoft Olymars and nTierGen. Or just write your own to generate the code for you - have you looked up SqlCommandBuilder.DeriveParameters?

      --
      Please subscribe to see the more insightful version of th
    3. Re:The IDE by innosent · · Score: 2, Interesting

      I know there are other ways to generate all the parameters, but I try to avoid trusting Microsoft to implement something correctly. If you use the DeriveParameters function, or a data layer generator, can you be sure that it won't be broken in the next version? Hell, are you sure it works now? Keeping things as simple as possible allows complete control over how your code will behave, and the DeriveParameters function IMHO can't be trusted to work with all database vendors, and for all stored procedures. Building the SqlCommand object this way allows control over each parameter, the type, length, and any other attributes, which may or may not be handled correctly by generators or deriveparameters.

      There are some great products out there for building simple database applications, but most of them don't scale well for large projects, or put unneccesary load on the server.

      --
      --That's the point of being root, you can do anything you want, even if it's stupid.
  5. So it's just a VB replacement? by zenyu · · Score: 3, Interesting

    The people they interviewed all seem to be those VB scripters only refered to as "programmers" by the PHBs. I actually think the .NET classes are an acceptible wrapper around the ugliness of the Windows API.

    I don't really like C# because it just seems to be an inferior Java clone. But .NET as a replacement for ATL/MFC is not so bad. I haven't tried C++ .NET bindings yet but if I have to implement a Windows version of some serious program, and can't use Qt, I want to look into it.

    Are there any programmers here that have given C++.NET a try that also know the joy of Qt? I'd like to hear about the advantages/disadvantages... The only thing that really seems missing from .NET when compared to Qt is the XML definition of UI's. This keeps down the level of that ugly generated code. If you want, you can even ship the XML instead of having it parsed into C++ and compiled (this gives you flexibility at the expense of keeping track of resources outside the binary, I haven't used it except experimentally, but I can imagine some enterprise applications where you might want to be able add a form to by just sticking some XML in your database instead of deploying a new binary to 10,000 desks.) I don't like having to run the Qt preprocessor though, but I don't know if C++ .NET has some of that uglyness too or if it is pure C++. The big downside of the preprocessor is that it makes it harder to write a crossplatform GUI class, like say one that used either a MFC or a Qt or a OpenGL or a Carbon implementation depending on what was available.

    1. Re:So it's just a VB replacement? by hoggy · · Score: 4, Interesting
      I don't really like C# because it just seems to be an inferior Java clone.

      Looking at the upcoming 1.5 release of Java, it seems to me that Java is copying features from C#. From a Sun article on what's new in Java 1.5:


      Do you want to give us a simple take-home message for each of the six areas of improvement?

      I'll give it a whirl...

      Generics - Provides compile-time type safety for collections and eliminates the drudgery of casting.

      Enhanced for loop - Eliminates the drudgery and error-proneness of iterators.

      Autoboxing/unboxing - Eliminates the drudgery of manual conversion between primitive types (such as int) and wrapper types (such as Integer).

      Typesafe enums - Provides all the well-known benefits of the Typesafe Enum pattern (Effective Java, Item 21) without the verbosity and the error-proneness.

      Static import - Lets you avoid qualifying static members with class names, without the shortcomings of the Constant Interface antipattern (Effective Java, Item 17).

      Metadata - Lets you avoid writing boilerplate code, by enabling tools to generate it from annotations in the source code. This leads to a "declarative" programming style where the programmer says what should be done and tools emit the code to do it.


      Besides generics (due in the next C# release) and static imports, enhanced for loop, autoboxing, enums, and metadata are all features of C#.NET. Frankly, I think the .NET metadata system is substantially better. I also like delegates far better than anonymous inner classes, which I consider to be a sledgehammer to crack a very small design pattern.

      Exactly what do you find to be inferior?
  6. newbie question by hawkbug · · Score: 2, Interesting

    I'm a complete newbie when it comes to understanding the whole ".NET" concept, so... my question is, are .Net applications ever compiled so they can be distributed? What I'm asking is, if someone wrote an app in .NET, or C#, whatever it's called, can it be compiled and distributed to people running windows OSes? Or is it like Java, where you need a runtime environment?

  7. Yea. by Inoshiro · · Score: 2, Interesting

    I wish the native L&F wore more emphasized in Java. Apple did a great job on their port of the Java SDK, but I want the Linux one to use something like KDE/QT model (which is compatible enough, themes wise, to work with GNOME/GTK+ as well).

    System.Windows.Forms is what makes C# sexy for GUI. We need something like that for Java, but I doubt it'll be easy to get it.

    --
    --
    Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
  8. I totally agree by GCP · · Score: 5, Interesting

    I've programmed for Mac, Unix, Win32, and Java, and I've never experienced an easier platform for writing GUI apps than the combo of C#, .Net, and Visual Studio. (Now for writing algorithmically challenging apps, nothing beats Lisp, but....)

    I think the C# language is a big improvement over Java (the language). So many lessons from years of Java experience have been incorporated into C#, that it's absurd to dismiss it as a Java "knockoff". It's Java done over again with the benefit of hindsight and a lack of legacy baggage combined with the ease of GUI building that made VB so popular (but without any trace of Basic).

    Of course, the fact that it's realistically only for Windows (so far) is a huge drawback (for me). With Java, you can hop from platform to platform and from tool vendor to tool vendor (incl. open source) as they come and go, and there's a lot of security in that. (I seem to change Java IDEs every 18 months or so, and I like that I can do that.)

    If both C# and Java were equally cross-platform and there were good C# tools from vendors other than MS, I'd choose C# over Java in a heartbeat for the language improvements alone. If I'm assured that the client wants Windows only, I'll use C# for sure. When I don't have that assurance, I'll stick with Java for safety. (Of course, if it's not a GUI app, and I don't need the type of safety you get by using a mainstream language, I think some form of Lisp or ML would be my first choice.)

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  9. "Mono 0.26 has been released" by Futurepower(R) · · Score: 2, Interesting


    Great, but look at this line on the Mono page to which you linked:

    "Aug 14th, 2003: Mono 0.26 has been released"

    Mono is a project, it is not yet an open source method to which you can ally your business.

  10. Your tools provider is a business partner. by Futurepower(R) · · Score: 4, Interesting


    "The articles you linked to are simply irrelevant to the .NET discussion."

    Your tools provider is a business partner. You should definitely worry about the reputation of your business partners. They will not treat you better than they treat everyone else.

  11. Restrictive Microsoft EULAs by Futurepower(R) · · Score: 2, Interesting


    More information to add to the above:

    I've read about overly restrictive Microsoft EULAs, but this is all I can find now.

    Runtime Runaround. (You can't use a program you wrote in the Microsoft FoxPro language under Linux.)

    Remember this about EULAs: They bind you now. However, maybe the most scary thing about EULAs is that the vendor can change what they say in the future, after you have heavily invested in your tools, and cannot easily change. Basically, you can be held to a contract to which you didn't agree and which did not exist at the time you first made your decision to use a particular tool. Yes, you can always use the old tool under the old EULA, but the computing industry changes fast and you may need an update. If you need the update, then you either agree to the new EULA or spend the huge amount of time and money necessary to change tools. Moral: Choose your business partners carefully. They have serious control over your future. It's like getting married. You want someone you can trust with your life. When you pick a tool vendor, you want someone you can trust with your corporate life.

    In the first comment to the story linked above, there is mention of a Microsoft EULA prohibiting benchmarks.

    You are prohibited from using VNC, an excellent free program for remotely interacting with a desktop, with Microsoft Windows XP. See the bottom of this article by Brian Livingston: "Except as otherwise permitted by the NetMeeting, Remote Assistance, and Remote Desktop features described below, you may not use the Product to permit any Device to use, access, display, or run other executable software residing on the Workstation Computer, nor may you permit any Device to use, access, display, or run the Product or Product's user interface, unless the Device has a separate license for the Product."

    These are just notes about what Microsoft feels it has a right to do.