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."

27 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 undef24 · · Score: 3, Informative

      VS.Net has similar javadoc functionality though exporting xml documentation for all methods. Use a util such as nDoc to give you a nice helpfile for your libraries.

    3. Re:i like .NET by undef24 · · Score: 4, Informative

      The .NET Framework SDK has an awesome Class Reference. I have found that it even has more sample code than javadocs most of the time. This is also available on MSDN.

    4. 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.

  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 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.
  5. What I like best about .NET by QuantumG · · Score: 4, Funny

    Is that human resources people who demand 3+ years experience. Those guys are great.

    --
    How we know is more important than what we know.
  6. Comment removed by account_deleted · · Score: 3, Informative

    Comment removed based on user account deletion

  7. 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?
    2. Re:So it's just a VB replacement? by the+eric+conspiracy · · Score: 3, Insightful

      Exactly what do you find to be inferior?

      In terms of the programming model I find that the unchecked exception model is a serious deficiency in .Net. It leads directly to runtime errors and loss of program reliability. In my opinion this design mistake outweighs by far all of the positives .Net has over Java.

      I am also finding that it is hard to implement many of the commonly used design patterns in .Net. The framework does not seem to support good architectures as well as Java does. Doing MVC in .Net just doesn't seem to be as natural as it is in Java. .Net also has a long way to go in terms of scalability, portability and 3rd party support.

  8. Comment removed by account_deleted · · Score: 5, Informative

    Comment removed based on user account deletion

  9. .NET pluses by pphillips · · Score: 3, Informative

    It's nice to be able to transpose between c# and VB.net without much effort. Now I can get more mileage out of every dollar I spend on books (make that 2 dollars if we're talkin about Microsoft Press).

    It'll be interesting to see how web services take off over the next few years. I wonder if anyone will be left after M$ has their free market tantrums.

    ASP.NET is like night and day over ASP. Now I wish we could just get the ASP programmers to use SPROCs instead of hard coding their SQL into the ASP pages! Hey, who needs more than one concurrent connection anyway.

    The IDE is sweet. If you've gone the wayward way and are a M$ Shop, debugging is a snap.

    Overall, a good way to go if you are an inept half-programmer like myself.

  10. blah blah ... and hit a button by Darth_Burrito · · Score: 5, Insightful

    The article kept hitting on this point:

    "It's a cultural change ... "With .NET we are saying, 'Don't write the code. Connect two things with an object, and hit a button.' It's a big change."

    I really don't understand how .NET represents a fundamental or substantial cultural change in the manner in which we develop software. The development I've done in .NET never compressed down to the level of "connecting two things with objects and hitting a button." Sure I use the base libraries all the time but they are just general purpose programming tools. They can give you stuff like Hashtable and ReaderWriterLock classes. If before .NET you found yourself spending a lot of time writing these kinds of classes, you probably spent a lot of time reinventing the wheel. The bulk of my programming time has always been spent on business or application specific logic.

    1. Re:blah blah ... and hit a button by WasterDave · · Score: 4, Funny

      "With .NET we are saying, 'Don't write the code. Connect two things with an object, and hit a button.' It's a big change."

      Yeah, I agree, it never works like that does it? Worse still this is the silver bullet mantra that's been trotted out since VB3 showed up. And probably before too.

      "With COBOL we write just the business logic, practically in English." - Johnny Coder, Circa 1968

      Will we ever learn?

      Dave

      --
      I write a blog now, you should be afraid.
  11. SSL and TCP/IP by Burb · · Score: 4, Informative
    I absolutely concur about the omission of SSL from the supplied .NET classes. I was working on a .NET project last year and found out that SSL wasn't implemnented as standard depressingly late in the day. Partly my fault.

    The story has a happy (open source) ending in that we were able to put stunnel in front of our application to provide SSL tunnelling. But it gave me a few panic attacks in the meantime.

    --

  12. The answer by GCP · · Score: 3, Informative

    It's like Java: you need the runtime environment. For now, that means that most of the installed base of Windows machines won't already have what you need to run an app, so you'll have to include a 21MB runtime with your 21kB app, or point them as MS's website for a free download of the .Net framework (the runtime). Not very pleasant for mass distribution yet.

    On the other hand, the .Net framework is now included in all currently shipping Windows versions, so it will be as standard as the Win32 API itself a few years from now. In fact, it's likely to gradually replace the Win32 API (in my opinion).

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  13. 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."
    1. Re:I totally agree by daveaitel · · Score: 3, Informative

      That's because you've never used pyGTK. I have an article about it in the latest Linux Journal. It's cross platform, easy to use, fast, can use native widget-look-alikes, and making something a SOAP method is just as easy as C#. It's basically better than C# in every way. Give it a shot...

      -dave

    2. Re:I totally agree by arkanes · · Score: 3, Informative

      Use wxPython instead, which is REALLY cross-platform (ie, it actually works correctly on non-linux platforms). There's even wxWindows bindings for .NET, so you can still use C# if you want ;)

  14. These seem to be major issues: by Futurepower(R) · · Score: 5, Insightful

    These seem to be major issues about .NET:
    1. Microsoft doesn't use it for its own products. If .NET is so good, why? If someone said, "I would never eat this, but here is some for you", would you take what was offered?
    2. Programs written in .NET are more easily decompiled. If you discover and implement an especially good algorithm, others may be able to see what you did. Maybe that is the reason for number 1, above.
    3. All the tools are proprietary. The programmer and his employer become like dogs on a leash. Their fortunes are tied to the management decisions of the proprietary vendor. Computer company managements often make sink-the-company decisions; consider the .com self-destruction, for example. When your company uses proprietary tools, your company is dependent on the lifestyle of the proprietary vendor's management, the vendor's ability to hire and keep good people, the vendor's financial decisions, and the vendor's estimation of whether they want to invest more in the tools you are using.
    4. My understanding is that the license agreement for .NET prevents a company from using .NET to compete with Microsoft in some areas. But how does a company know if software it develops will eventually compete with Microsoft?
    Here are three of last week's articles about Microsoft:
    1. Microsoft Windows: Insecure by Design
      The mainstream media is starting to realize that Microsoft products are especially insecure.
    2. (PDF file): The Computer and Communications Industry Association (CCIA) urges the Department of Homeland Security to stop using insecure (Microsoft) products.
      The computer industry attempts to educate those in government about the insecurity of Microsoft software.
    3. Stupid Microsoft Tricks -- Why the Richest Company on Earth Feels it Needs to Cheat
      A famous industry columnist exposes an example of Microsoft's apparent dishonesty. When ordered by a court to produce all its email records concerning a company that alleges theft by Microsoft, there was a 35-week gap.
    So here's the question: Do you want your company to be tied to the fortunes of Microsoft? If you trust Microsoft to do the right thing for you and your company, then use Microsoft's proprietary tools.

    But remember, Microsoft's products regularly die. Not only do they die, but they die on schedule. It's assisted suicide: Windows Desktop Product Life Cycle Support and Availability Policies for Businesses. Bill Gates is the Dr. Jack Kevorkian of the software world. Mr. Gates has, for example, decreed the death of Windows 98, which is used by more than 100,000,000 people throughout the world. It's a little like Dr. Kevorkian expecting to do his work with Jennifer Lopez. Hey Dr. Gates, a lot of people think the patient is still very much alive!

    Open source means never having to bark.
  15. What I dislike about .Net by e8johan · · Score: 3, Informative

    http://www.kuro5hin.org/story/2003/7/11/21859/2846

  16. 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.