Stefan Rusek: Ready to quit ASP.Net
stefan.rusek.org
stefan.rusek.org
For shrinkwrap apps, internet apps, and anything where you really need polish, you care what your URLs look like, and you want a lot of control over what's going on so you can make it fast, shiny, professional, and bulletproof, the still-beta ASP.NET MVC has proven itself... stackoverflow.com is implemented with MVC and the team is loving it.
Stefan makes an excellent point that ASP.NET's original model was meant to be familiar and comfortable to old-school VB programmers, by providing a thick abstraction over HTML and HTTP that leaks really, really badly. For example half of your app stops working if JavaScript is turned off... even things that look like hyperlinks stop working because they're javascript under the covers... and for a timid VB programmer they suddenly have to deal with much, much more complexity to solve these last mile finishing touch kinds of things.
Conclusion... need a quick and dirty CRUD app for internal purposes that just has to be good enough? ASP.NET is fine... you'll barely have to write any code at all. Building a public-facing app that needs to be slick and polished? If you're using the Microsoft stack, start with ASP.NET MVC.
So ASP.net has become the "toy" framework, replaced by ASP.net MVC, a framework inspired by monorail, which in turn was inspired by rails, the original "toy" framework. Ah, sweet, sweet irony.
Open Source Apps Should Start Innovating - Not Recreating (cli.gs)
also made it to the front page. Charles H. Ferguson has a nice take on this VB/.NET/Java(script)/HTML misery in his book ...not that I agree with him on some issues (like sw patents). But the one who has submitted the original article might know more, since he could have been around there around that time...
What had been missing until now, at least in an official capacity, was a way to make serious public facing web apps and I think Microsoft has made great strides with their support of Jquery and the ASP.NET MVC project.
From that perspective I think Microsoft is in a really good place right now. Webforms continues to serve that corporate environment that other companies don’t seem to care about and ASP.NET MVC allows them to challenge Rails et al. in the web space.
How could you want to obscure what are very easy and simple tools still baffles me.
And having talked with some programmers who use nothing but ASP.NET it's amazing how in the dark it has left them.
It's because HTTP/HTML is a very simple tool for what it was created to do: retrieving and displaying static pages.
Everything else is not so simple. As soon as people started to move data entry forms with master detail screens, etc. onto that platform things were getting nasty.
Since Microsoft is the master of master detail forms, or at least of the platform on which most of them have been built, they felt a need to come up with a solution.
And the solution the "company who never understood the web" came up with was ... XMLHTTPRequest. No, seriously, it was ASP.NET. No, wait, it was both! ;-)
The world is confusing.
ASP.net got me off of closed source software & frameworks, off of windows, IDE's, and drag-and-drop design. It made me learn linux, http protocol, html/css, the shell, and a real text editor.
So thank you ASP.net, for turning me into an OSS developer who will hopefully never use a Microsoft "solution" ever again.
ASP.NET is huge and very powerful. It takes a lot of time and hands-on experience to become proficient in it. I would have googled around or dropped into an IRC channel before lamenting anything of significance in my blog based solely on my lack of knowledge in a very specific corner of this framework.
Its not great nor poor.
Unfortunately the writer makes it seem like all Asp.net developers use just the visual designer and the pre-made tools. At my job we have a whole library of in-house custom controls. Not so that the developers don't have to learn html, but for consistency and speed. I can't really remember when the last time was that I used the visual designer...
I must say though, I have been using Asp.net MVC for some personal projects and I absolutely love it!
How did you reach this conclusion? I don't see any mention of the visual designer or pre-made tools in this article.
I agree with this article; the abstraction sucks and the framework gets in your way more than it should.
I do agree about ASP.net ajax though. That is very cumbersome to work with. Jquery with asp.net mvc is a much needed improvement.
They just need to come up with a better ORM imo and they will be set. Activerecord just seems a whole lot cleaner than Linq to me.
ASP.NET is a great platform. WebForms could be better, but is perfectly capable of lending itself to good design, clean/semantic markup, and light-weight AJAX if you use it well.
From my experience it may be possible but all the purported advantages of ASP.NET - drag and drop development, not having to understand how the web works, rapid development, go out the window if you're trying to achieve clean, lightweight markup, and you spend lots of time trying to work around the framework instead of having it do things for you.
If a framework encourages you to build bloated and ugly web applications (even though it's possible with a lot of effort to build nice ones), it's not a great framework. Just like how McDonalds will make you bloated and slow and sick - it's not great food.
But I can agree that the ASP.NET platform is nice - without web forms.
I grant that there are plenty ASP.NET developers using drag and drop "design", SqlDataSources in the presentation layer, bloated UpdatePanels for AJAX, and worse.
At the same time, there are many of us who don't use those parts of the tooling or framework though. More than you might imagine.
what blog ? where blog?
Both written in asp.net.
The fact that most novice developers won't know how to do these things without a learning curve is not the fault of the framework.
In fact, most of the observations the author makes here are equally applicable to other "quick start" programming environments. For instance, I'm sure there are plenty of bloated and poorly implemented Rails apps that resulted from inexperienced developers hacking up applications generated 100% by scaffolds.
That nicely summarizes what I experienced in frustration (and wrote about http://lexicalclosures.blogspot.com/2009/01/paging-in-aspnet...) when attempting to bind paged data to an ASP.NET GridView (list) control.
The only difference is that I used an ORM (NHibernate) and not the database to provide the paged data. It was frustrating because the GridView control just did not want to play nice if I did not play by its rules.
I regularly use ASP.NET to build complex Ajax powered interactive web sites BUT (and this is important) I take from the tool set what helps with my sites and ignore the rest. I write (just about) all my own client side scripts and use the normal techniques for building parts of pages on the fly from JSON objects but server side the ASP.NET framework is near perfect and provides just what I need to build my apps.
By thinking outside the MS box, we have built a site that receives over 5 million pageviews a day... but the .NET part is limited to serving pages with low traffic and interaction, managing sessions and hits and doing some minimalistic HTML rendering. The rest are Ruby-generated HTMLs and some indexing services.