Is ASP.NET for dummies?

Most of my normal working days consist of me developing web interfaces in a .NET environment using CMS tools based on it. As always, many people have opinions about Microsoft and their products, so I normally don’t even raise an eyebrow when I hear Microsoft getting criticised or dissected.

However, this was different. I normally don’t do this thing with just linking to other people’s posts, but I think Intrepid Noodle’s Asp.net (is) for Dummies… was interesting because it highlighted a problem I often see: programmers get lazy when it’s too easy for them and then many of them don’t know how to take care of things when they go awry. On the other hand, I’ve met a lot of skilled web developers using .NET but they usually shy away from the most common approach in Visual Studio.NET: drag and drop and all will be fine (or will it?). I also liked it because it was balanced and not just a Microsoft bashing.

Don’t get me wrong, I’m all for making things easer for web developers, But sometimes it’s just too easy…
I sometimes meet web developers who don’t even know anything about HTML anymore, WebControls with names like asp:Panel have become their new lingo for interface code. If you ask me, then things have gone too far and has been to Microsoftified.

So, go read the post and share your opinion. Out of respect to the original author, I urge to to write your comments at Intrepid Noodle’s web site, but I’ll leave comments open here too if you want to share anything with your favorite Robert. 🙂

20 Comments

  • Hakan Bilgin says:

    I agree with you (again), that developers becoming lazy. Though similar symptoms appeared as early as 1999-2000 when developers started using the half-done packeages linked to Outlook. For me these kind of programing isn't innovative or impressive. The solution is so tightly binded to the windows platform that it sickens me.

    I think Microsoft is experincing real problems; they seem to have lost the edge and huge amount of knowledge. Even though there are a couple of great news in MS SQL 2005, it's far from enough. In my opinion, the last really innovation in MS SQL were SQL to XML, which were introduced back in 1999 or so.

    It seems that the real believers of MS are following the path drawn but I think more and more are dropping of.

  • inoodle says:

    Hi Robert,

    Thanks for the kind words and link. I'm glad it doesn't come across as MS bashing, as I usually tend to be more of an MS evangelist. It would be great to hear if any of the aspnet team understand the point I'm trying to make, and to see what their point of view is.

    Cheers

    Aaron.

  • dave says:

    yeah, the built in controls are a bit over the top, but asp:Panel isn't bad – it just writes out to a div, but being able to quickly assign a bool value to the Visible property in code is pretty damn sweet.

    your original point of programmers getting lazy – there is the real story. but don't be fooled, java has a matching framework with almost identical inline controls. the point is, code that is generated will almost always be less efficient than can be written by hand, because it has to assume for every possible case scenario. a good programmer uses the built in controls sparingly, and writes solid code themselves… in any language.

  • @Dave – I agree completely. Write your own!

    From my perspective ASP.NET is the development platform I love…and hate. It makes doing many things that would usually be very difficult…REALLY simple. It also makes some things that would usually be very simple a lot more work.

    I love the Object Oriented Environment from the ground up…and I love C# (my language of choice). I hate the limited control you have over the rendering of default controls (without hacking them out the wazzooo) and I hate all the weird stuff that Visual Studio tries to do when I'm not looking…otherwise Visual Studio is a really cool development environment.

    *offtopic* by the way, the new Dreamweaver 8 code view is pretty happening!

  • Ã&Acirc says:

    Geez Robert … this is the second article I have read where you think .NET developers are lazy or incompetent. And I am not liking that trend.

    I think this has nothing to do with the environment itself. It is about the developer / programmer. He (or she) can be lazy, drag and drop all objects in the design view. Or he (or she) can have ambition and write their code themselves and get a better result, more maintainable code and better scalability.

    And funnily enough, you will have lazy developers in PHP, C#, Java, Perl, Ruby on Rails and all the others … believe me.

  • Robert Nyman says:

    Thanks for sharing your opinions!

    Dave,

    but asp:Panel isn’t bad – it just writes out to a div, but being able to quickly assign a bool value to the Visible property in code is pretty damn sweet

    You can just as well use them as HtmlControls, like this: <code><div id="myDiv" runat="server" visible="false">Some text…</div></code>. I have no idea why Microsoft felt that they had to invent their own interpretation of HTML.

    Àrni,

    Well, as I said last time, it's all about the people I meet and what I see. But the point here isn't really about Microsoft, it's if an environment that makes it too easy for the web developers will result in a solution that isn't as good as it could've been if all of it had been handcoded.

    And I'm sure there are lazy web developers out there no matter what environment they're working in. 🙂

  • One problem with ASP.NET is that it renders unnecessary HTML code. For instance a div or table for Panel and a span for a label.

    Dave,

    but asp:Panel isn’t bad – it just writes out to a div, but being able to quickly assign a bool value to the Visible property in code is pretty damn sweet

    It is bad ;). Use a asp:PlaceHolder instead, it doesn't render any extra html. If you need the div, include it inside your placeholder or make it a server side div as Robert suggests.

    Robert,

    I have no idea why Microsoft felt that they had to invent their own interpretation of HTML.

    ASP.NET will render a table instead of a div for browsers like Mozilla. It is the magic of .NET which renders HTML depending on the browser. You can alter this with a browsercaps setting in webconfig. Or you could update your machine.config. You can read more about the browsercaps.ini: The Emancipation of Browsercaps.ini

  • Christian says:

    You're right: many programmers learn a couple basic HTML things in a day and assume they know all there is to know about it then never bother to learn any more of it.

  • Robert Nyman says:

    Per,

    Absolutely, changing browserCaps is the first thing I do when I start working with a .NET project.

    Christian,

    Yes, it happens way too often…. 😐

  • Henrik says:

    Interesting post. It's all commented and finished, so I can't add anything of importance except a different source for browser-caps that I've found when trying to get the darn panel to output a div instead of a table: 😉
    http://slingfive.com/pages/code/browserCaps/

  • Normally, I stay away from browerCaps altogether because it's not only about server controls. You're dealing with the notion of adaptive rendering which is quite big.

    I'm with those folks who prefer PlaceHolder to Panel. I quit using Panel for good, and only use PlaceHolder as it doesn't have any visual representation.

    My biggest fear about ASP.NET 2.0 is the number of server controls. I think we have way too many of them. I'd like see people understand why they need them and use them judiciously.

  • Dave says:

    robert,

    You can just as well use them as HtmlControls, like this: <code><div id="myDiv" runat="server" visible="false">Some text…</div></code>. I have no idea why Microsoft felt that they had to invent their own interpretation of HTML.

    you're right about that, and often i do just use html controls. i'm not a big fan of the browsercaps thing – write standards compliant xhtml and good css and you don't need it. having code written out in two different fashions and making sure that all looks the same is quite difficult.

    again, reitteration of the whole "bad programmer, not bad language" mantra. i dislike that people equate a language or platform with weak vs. good programmers. even vb6 could be made to do some elegant things (esp with all the windows sdk imports) so it almost all has to do with the person writing the code.

    good debate though.

  • dave says:

    <code></code></code>

    How freikin embarrassing. 😐

  • Robert Nyman says:

    Henrik,

    Thanks for the link!

    Milan,

    Well, it's a narrow ledge to balance on….

    I usually find myself in projects when a lot of different web developers produce the HTML code, and browserCaps is the only way for me to make sure that the same HTML code is delivered to all web browsers.

    Unfortunately I haven't had the opportunity to test ASP.NET 2.0 yet, but I'm really interested in what it will contain. If it's littered with server controls, I'm afraid that web developers will get more Microsoftified than following web standards/recommendations.

    Dave,

    Sounds good. The reason why I'm using browserCaps is explained above in my reply to Milan.

    I know I was generalizing in the post, naturally there are good as well as bad programmers out there no matter what technology they're using.

    I gather that you meant that you didn't close the <code>code</code> tag was embarrasing? 🙂

  • dave says:

    I gather that you meant that you didn’t close the code tag was embarrasing?

    Yeah… here I am rambling on about how it's the fault of bad programmers, and I can't even close a tag. It was one of those ironies that like, totally invalidated everything I had said – or at least put me in the "bad" column. 😉

  • Robert Nyman says:

    dave,

    Nah, no problem, shit happens… 🙂

  • Tim says:

    I'm an old ASP-dog programmer from the dark ages of spaghetti-code who missed the .NET wave when I went into the Marketing department and am now back to web trying to catch up. I have attended many Microsoft events and I have to say that the next generation of coders I see that are fresh out of school are easier to talk to (and get direct answers about how to solve problem "x") in .NET. As much as I hate to say it, I still feel the (now) older generation of coders still embrace the "you have to code it in Notepad, the GUI is for lazy coders" business which to me just conjures up a vision of some bitter old man rambling on about how he "hiked to school up AND downhill (both ways) barefoot in the snow back when he was a younger coder, but dammit, he liked it and didn't complain". It's the same people that insisted that Interdev and Dreamweaver were the evil, lazy way to code that are probably spewing on about .NET now. [By the way, do these old dinosaurs really enjoy manually coding HTML tables with a gajillion row and colspans blowing out tables when you can now drag out a simple Grid and bind it in minutes?] Personally I think developers need to start telling Microsoft what we need out of .NET and stop abandoning the GUI for the sake of telling their coding war stories while the next generation of coders are whipping out (maybe slightly less perfect) web apps while the old drones are still worried about perfectly indenting their 2000 lines of commented code in Notepad. The other thing "old guys" seem to like to do is spill out acronyms left and right in some futile attempt to show some twisted coding intellectual superiority — "Well the novice coulduse AJAX or HIJAX — which anyone knows is just a re-hash of Remote Scripting — to manipulate the DOM but the proper way to do it is to use WCF with a Ruby-on-Rails passthrough to the EDI API calling the WSC … blah-blah-blah." The new generation of 20-something Microsoft pups use the toolkits and seemingly have no problem chucking everything into an Update Panel. While the new kid is showing the boss the slightly less perfect, yet fully functional web app, the older generation programmer is still churning over whether asterisks or carrets look best to outline their comment blocks in their code. I think it's time for the Microsoft guys (and gals) to shed the "we're the upper crust" because we make everything harder to appear smarter bit and focus on getting what we need out of Visual Studio to get our jobs done. It's not all about white pages with black text and blue and purple links any more — just ask your Art Department. Let's face it guys, web development is changing and it is going to open up to the masses no matter how much we like it or don't.

  • Greg MacFarlan says:

    Anyone who calls themselves a software developer that uses an ASP.NET AJAX Update panel to implement AJAX in a newly developed website is lazy and should be killed 😉

  • […] k?m?l, kolayca test edilebilir, ayr??t?r?labilir, basit ama güçlü web uygulamalar? yazamaz […]

  • […] k?m?l, kolayca test edilebilir, ayr??t?r?labilir, basit ama güçlü web uygulamalar? yazamaz […]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.