D'Arcy from Winnipeg
Solution Architecture, Business & Entrepreneurship, Microsoft, and Adoption

ASP.NET MVC Framework - Not a Step Backward, But a Step Back on Track

Sunday, December 16, 2007 3:03 AM

When I first heard about the MVC framework, I was intrigued by one aspect that didn't seem to make sense: that the layouts of pages were not done with a designer, and that outputting the dynamic aspects of the page were done by pushing markup to the presentation from the controller.

Blasphemy! We've been developing in ASP.NET for the last 7 years or so WITH the designer, which was a huge feature to add to web development (and still is)! Now we're given a framework that removes the need for a designer? Now we have a framework that won't help me bolster productivity by removing my need to understand the underlying markup and abstract that away into a set of windows-like control metaphors? How will I do web development on this framework?!

That's been the response of many when they realize the seemingly ugly truth that lurks beyond the promises of better testing, better integration with 3rd party open source tools, and the removal of the postback mechanism.

But the response is wrong. The response is similar to an addict, when you tell them that their life will be better without their targeted addiction substance. They recoil, they rage, and they can't see the message for what it is.

I'm going to make a pretty strong statement here, and I'm not excluding myself from this statement in the least: ASP.NET developers are not web developers...they're ASP.NET developers. They're dependant on the tools provided in Visual Studio, with the myriad of controls and data sources that can be dragged and dropped at will. They're comfortable using skin files for decorating their page elements and in click-dragging their tables to create a layout.

But take away their tools...take away their controls...take away their skin files...and they crumble. Why?

Because we've lost site of the basics. We've lost site of what the web was and is still built on: HTML, Javascript, CSS, and the HTTP Protocol. Those are the four pillars of the web, and a web developer needs to grasp an understanding of those things first before tackling the abstraction benefits that ASP.NET provides.

How many of us understand why we get the little red squiggleys in our source view when we capitalize our tag attribute names, or don't wrap the attribute values in double quotes, or have even stopped to really wonder what the DOCTYPE tag specifies? We don't, because the current state of browsers accepts loose HTML and we've grown accustomed to ASP.NET abstracting so much away that we've become lazy in understanding how our chosen technology actually works.

So don't try and figure out what the MVC team was thinking when they released something seemingly backwards...ask yourself why it bothers you so much that you'd actually need to understand the markup that's being output by your application. And then decide if you're a web developer, or just an ASP.NET developer.



# re: ASP.NET MVC Framework - Not a Step Backward, But a Step Back on Track

Holy CRAP~! NICE post. As you well know, I *totally* agree. Now that you have made a stand it's up to you and I to go on the round as travelling salesmen and educate the entirety of Canada as to the rich glories of the MVC! 12/16/2007 3:51 PM | Justice~!

# re: ASP.NET MVC Framework - Not a Step Backward, But a Step Back on Track

I agree with you. I am very interested in this development. I've become "comfortable" with the ASP.NET web forms model, but never felt "good" about it.

I've always felt there has been a lack of a TRUE web development community around Microsoft tools.

But, perhaps with the introduction of http://mvccontrib.org this can be the beginning of a different era.

I started with PERL / CGI, and CGI.PM. There are still tons of great libraries on CPAN. People in that community have long since figured out test harnesses and all of that stuff that we hear about finally in the .NET / MS world. I welcome it. 12/19/2007 12:16 PM | Josh Gough

# re: ASP.NET MVC Framework - Not a Step Backward, But a Step Back on Track

I've had this same nagging feeling since starting to use asp.net. Microsoft wanted to convert windows developers to the web and produced a product and set of tehnologies that removed the need for them to get their hands dirty with all that nasty web stuff. "Ooo, you don't want to get your hands dirty with html and javascript. Let us handle that for you". Well, web development does involve learning multiple interwoven technologies, and if anyone isn't happy with that, then they should go back to windows development.
Nice article, and I like the title... it really is back on track.

Greg Woods

5/25/2008 2:26 AM | Greg Woods

# re: ASP.NET MVC Framework - Not a Step Backward, But a Step Back on Track

I do understand underlying protocols, can hand code HTML, CSS, JavaScript and even occasionally interpret HTTP responses and requests directly in code because occasionally you have to.
Bin ASP.NET WebForms and you bin an absolutely brilliant productivity aid, a whole load of work done for you, just so you can go back to focusing on the nuts and bolts of building a web page... when you should be focusing on user and business requirements and fulfilling them as robustly and cost effectively as possible.
Very rarely does anyone program using machine code these days, we have productivity aids like high level programming languages that allow us to implement complex object orientated designs in a relatively short space of time.
http://stackoverflow.com has been offered up to me as one of the largest ASP.NET MVC web sites around. What I notice about it is that A) it's fast and B) it isn't doing anything particularly rich and sophisticated in terms of user input. ASP.NET MVC might be a good fit for this site considering what it does, but I don't see it handling the kind of rich sophisticated web applications I've been building the last 6 or 7 years.
Do yourself a favour, learn how HTTP, HTML, CSS etc. works, learn how to use ASP.NET WebForms in the context of a Logical N-Tier or even physical N-Tier architecture (UI layer, business logic layer, data access layer), keep the ASP.NET codebehind as light weight as possible so it's only use to exchange data between web form controls and the business logic layer and process UI events. Build tests for you business logic and data access layer, by all means do it TDD fashion and lastly accept that your going to be getting test coverage of your ASP.NET codebehind (which isn't a million miles from the C in MVC anyway) by getting people to use the application, shock, yes, test it by hand - get the future user community involved here, helps them to see, give feedback, engage with and build a sense of ownership with the business application.
Yes you will find some bugs later in the project life cycle as a result, but I see that as a small price to pay for ASP.NET WebForms productivity.
ASP.NET MVC is a step backwards - pre-1980 as it happens and it doesn't quite hit the spot with what MVC originally was anyway. 1/19/2009 2:18 PM | Adrian

# re: ASP.NET MVC Framework - Not a Step Backward, But a Step Back on Track

Why do you need go back to basics??? The idea of high-level programming languages is to make a developer more productive!

Following your advise, to going back to basics, one asks the logical question - Why don't we go back to programming on Assembler??!?

There's nothing wrong with building level architecture of a solution, as long as you know what you are doing. Stop hating ASP.Net framework for what it is and most importantly for what enormous choice of ready-to-use functionality it supports.

It's not the fault of Web Forms or ASP.NET for that matter, that most developers don't know how to program Accessible and standards compliant websites. It only takes a little further effort to do this and you are done.

MVC is a step in the wrong direction. It is another "new" thing from Microsoft and most people staying true to their nature believe that "new is better"..
The grass is not greener! It is merely just a different sort of grass. 3/21/2009 5:47 AM | CB

# re: ASP.NET MVC Framework - Not a Step Backward, But a Step Back on Track

It's not about understanding the markup, it's about using tools which increase productivity.

I don't do my taxes by hand anymore, not because I don't know how to add and subtract, but because I'm more productive in filling out my information on my computer than doing the mundane by hand. 9/24/2012 1:11 AM | Larrybud

# re: ASP.NET MVC Framework - Not a Step Backward, But a Step Back on Track

The fact is that MVC is shit...sorry but it is.

'I'm going to make a pretty strong statement here, and I'm not excluding myself from this statement in the least: ASP.NET developers are not web developers...they're ASP.NET developers'

This is really stupid statement. Why? I don't need ASP.NET controls to develop web application. I can do it using just html. But I won't and do you know why? Because no Joe Doe will write better paging for table layout than what Grid View provides. MVC -> waste of fucking time. I have been in MVC for past 2 years and absolutely hate that shit. Absolutely not a single thing in it which is better than web forms. MVC is MS Marketing tool to flock php and java people to .NET, that's all to it. 5/16/2013 2:05 PM | Luka

# re: ASP.NET MVC Framework - Not a Step Backward, But a Step Back on Track

It's not a matter of whether you know HTML or not, for example for the grids, recreating the simple funcionality of a Gridview in MVC is a pain in the ass without any jquery plug in, and even with this you start adding 3rd party tools for business processes which is a terrible practice by itself. Creating a calendar control is also not a trivial matter in MVC, until the last year when the jqcalendar was released there was no truly feasible way of creating a simple calendar control with MVC and what's with the hypocrisy about following the pillars of the web when you still have that razor syntax shit, adding c# directly to the markup, I recently worked with a 10 year old ASP.NET 1.0 application and it feels like the modern MVC. 4/15/2015 6:53 PM | ASP.NET WAR HOUND

Post a comment