Dangers of the new ASP.NET MVC framework

by Mads Kristensen 2. November 2007 02:04

I’ve been following the new ASP.NET MVC framework quite close lately because it looks so damn cool. Not only does it make your website testable in a much richer way, but it also adds abstraction between your different UI tiers. It can do these things because it uses a somewhat strict code separation principle like all MVC frameworks do.

So instead of just adding an .aspx page (with its code-behind file auto-inserted by Visual Studio) to your website, the MVC framework wants you to add a model and a controller as well. The .aspx along with the model and controller is highly abstracted so you can replace one of them easily without changing the others. We know this from the class libraries and components we’ve build for many years – something called low coupling.

The divide

Because the MVC framework is a much stricter environment it will have effect on who is going to use it. The professional and hardcore developers will love it for all its advantages, but what about the hobby developers? To say it in another way, if the MVC only attracts the great developers what will happen to the good ones?

The great developers care deeply about abstraction and testability and they will probably use the MVC framework for any new project they start building. The good and hobby developers probably won’t – in fact they might never feel attracted due to the strict nature of the framework. They might think of it as more complex which I would agree with to some extend.

If we for a moment believe that it is what’s going to happen, then we end up with a developer divide in the ASP.NET work force. Some companies hire MVC developers which now only covers a portion of the work force. The other companies who use standard ASP.NET might not be attractive to MVC developers and will only reach the other portion. With the current developer labour shortage where both great and good developers are needed I can foresee trouble.

Dual community

Because the MVC will split the developers in two portions we should expect the same to happen to the ASP.NET community online as well as offline. The MVC developers might stop visiting the standard ASP.NET community websites and vica verca. It is not entirely true because both frameworks use many of the same components such as the provider model etc.

However, the MVC framework doesn’t use the postback model or the page life cycle so a lot of tutorials, examples and other community writing will become uninteresting for MVC developers. My fear is that the result will be a dual community which could hurt everyone because there will be less relevant material available online. Less relevant because the MVC developers will write mostly about MVC stuff and ASP.NET developers about standard ASP.NET stuff and thereby will the amount of written material be divided into two variations that isn’t always directly usable by the other portion of developers.

Since search driven development is so important for the everyday developer, I see this as a serious threat to the community. If the MVC framework can attract non .NET developers to shift to the .NET platform this probably won’t be as serious.

I think it’s great that Microsoft is building an MVC framework and I look forward to exploring it and hopefully build some solutions with it. I just fear it comes at a price and the community will ultimately pay. Time will tell. If you haven't seen it yet, then go watch a video of Scott Guthrie demonstrating the MVC framework.

* Only $4.95/month ASP.NET & Windows 2008 + IIS 7 Hosting! FREE SQL Included

Tags:

Random thoughts

Comments

11/2/2007 2:27:23 AM #

Dominick

Interesting thoughts. You may be on to something, but I think its too early to say that the framework will have that kind of impact on the entire industry. If what you say does happen then it would be similar to the VB.NET/C# divide. VB.NET started strong, but I see C# starting to dominate the community's interest. There may be a divide due to the MVC framework, but I don't see it lasting too long once the documentation catches up.

Dominick United States |

11/2/2007 2:29:09 AM #

Josh Stodola

Wow, the division you talk about is something I totally overlooked. I think you're right, the wonderful community of ASP.NET developers (which is the greatest selling point of ASP.NET, in my opinion) just might suffer from this.

It's hard enough when you are searching for the right code snippet in the right language (C# or VB), but now we will have to locate one that targets the right framework too! Ouch.

I'm not sure what to think about this now.  Thanks for stirring up some thoughts, Mads!

Josh Stodola United States |

11/2/2007 2:39:50 AM #

trackback

Trackback from DotNetKicks.com

Dangers of the new ASP.NET MVC framework

DotNetKicks.com |

11/2/2007 2:51:17 AM #

Justin Etheredge

Well, I think the beauty is that in the MVC model our available info will suddenly explode to encompass of the info that normal web developers use. The MVC model will shed a lot of ASP.net centric features and since we will be returning to a more traditional web development model, the amount of info that applies to MVC developers I believe will grow. There are a lot of people that don't use a lot of javascript libraries and don't use too much ajax because they don't fit well into the asp.net model. I mean look at asp.net ajax, it was a huge project just to shove ajax into the asp.net model. If we didn't have to do that then there would have been tons of developers using frameworks like scriptaculous, jquery, prototype, etc... The only people that this will be bad for is the WebForms developers because the info that they are interested in will apply to them and only them. WebForm Dev: How do I get that repeater to nest inside of that DataView again? MVC Dev: I don't know, I'd just use a nested loop.

Justin Etheredge United States |

11/2/2007 3:41:29 AM #

Mads Kristensen

@Justin, you say the only people it will be bad for is WebForms developers, which is probably true. But they will out number MVC developers for many years so that means the majority will pay.

Mads Kristensen Denmark |

11/2/2007 4:51:07 AM #

John Sheehan

Mads, thanks for writing the blog post I couldn't put together myself! I've been thinking the same thing. Right now there's a subset of ASP.NET devs out there (the Alpha devs if you will) that lead the community. If these guys leave webforms behind, who's going to fill in the content gap (blogs, articles, open source projects, etc)? Will Microsoft? Doubtful. I definitely agree with you that there's a divide on the way. If Microsoft supports two web development methodologies forever, the divide is going to exist for sometime. We can only hope MVC signals the decline of Webforms. Let's start the movement now...no webforms in ASP.NET 5!

John Sheehan United States |

11/2/2007 5:25:46 AM #

Simone Chiaretta

That's a good point, but I guess something will not happen.
For sure the D&D WebForm development is easier to understand for the hobbistic and for the so-called Morts, but the only difference between the 2 is just the web frontend framework, and I guess that the MVC will be used only by advanced developers in advanced problems.
Anyway, this is the same thing that is in the Java space: there is JSP and then there is Struts, Velocity and so on.
JSP is just like ASP, Struts is an MVC framework... they both co-exist in the same community space, but in the long run, the de-facto web development methodology is Struts, with JSP only for the uber-beginners

Simone Chiaretta Italy |

11/2/2007 5:57:46 AM #

Mike Thomas

I think that the MVC framework is not what will divide the .NET community - only because the .NET community is already quite divided between "ALT.NET" and everyone else.  MVC seems to be a branch out from Microsoft to the ALT.NET segment.  So, in some way, MVC may be able to push the two sides a little closer.

Mike Thomas United States |

11/2/2007 8:13:33 AM #

Buddy Lindsey

Firstly, THANK YOU Mads.  You have put into words what I have been thinking, but couldn't seem to get into words, if that makes any sense. Plus you did it very well.

@Mike Thomas - Actually, because Microsoft will be putting it out there will be a higher adoption rate to the MVC framework because Microsoft will support it. At least that is kind of how things have happened in the past.  There is already a split in the community on the small scale that like use agile predominantly and those that don't touch it because it takes a different set of tools that Microsoft doesn't produce.  Now those are just my thoughts and observations on the it I could be totally off base.

Buddy Lindsey United States |

11/2/2007 9:56:43 AM #

OJ

I'm not sure I agree. I personally feel that great developers won't just jump in and do nothing but use the MVC framework. Part of being a great developer is being able to do whatever is needed. If it's MVC, fine. If it's not, that's just as fine.

If there is some sort of "divide" down the track, I think the solution might end up being really simple. The honchos at Microsoft might sit around a table and ask themselves: "Which is the best way to go? The old way, or the new?" When they answer that question, one "branch" will be dropped as far as support goes.

So either way, I can't see it being a huge issue. We either do our jobs and make sure we're well versed in both methods, or wait for the axe to fall on one of them and become gurus in the other.

Cheers!

OJ Australia |

11/2/2007 11:17:22 AM #

Dave

People said the same sort of things around the time of the shift from ASP 3.0 to ASP.NET 1.0, and again for ASP.NET 2.0.  As long as Microsoft really gets behind MVC, widespread adoption for new projects will probably happen quickly.

The constant, previous-version-breaking learning curve inflicted on us for the past ~5 years really is getting awfully old though.

Dave United States |

11/2/2007 1:23:57 PM #

Robert

I don´t see any danger - I started with asp.net as an hobby developer and I didn´t like the webform-model, because it´s often confusing.
The new MVC model seems easyer for me. Some parts / concepts, like the views, are familar with script languages like PHP and thats why I don´t thinks, that the MVC model is just only for "alpha" developer.

The core plattform is on both ASP.NET. Don´t worry ;)

Robert Germany |

11/2/2007 2:30:17 PM #

Julian

.NET/Visual studio is a great framework that is the basis.
It turned out that MVC is the way to go in web programming.
Microsoft did a VERY good job in emracing this way of working
I think the ASP.NET community will adopt the MVC very fast.
MVC is simpler to grasp than webforms IMHO.

We are still much better off than say JAVA/PHP where you have 100's of different web frameworks.
Initiatives like monorail are great and lead the way but it tends to splinter the community.
Once MS dedicates itself to MVC you'll see 3rd party compents etc.

Another good spin off might be that many PHP/java/ruby developers will suddenly see just how good .NET en Visual Studio is. (the platform/framework/ide/db combination is miles ahead IMO).







Julian Netherlands |

11/2/2007 3:14:54 PM #

Chicken

I can only agree with my preceding speakers ... I also don't see any danger. People will adopt to the new technology or both models in parallel and that's it.

Chicken Poland |

11/2/2007 3:27:24 PM #

Dan

I agree with Julian, the adoption is going to be fast because MVC is simpler than webforms. When people hear about patterns they think it's something over-complicated, but patterns are there to make our life easier.

For example, ajax-stuff is child's play with MVC model, no viewstate & no page-lifecycle & no dynamic controls-...

Dan Spain |

11/2/2007 5:03:40 PM #

ajdotnet

Thanks Mads, after all that hyping it's good to see someone take a more critical point of view. I've been thinking about writing about that topic (I still do because my concerns are actually quite different from yours) and it will be a relieve to know that I'm not the only Cassandra.

ajdotnet Germany |

11/2/2007 5:25:02 PM #

trackback

Trackback from Normal people bore me!

I pericoli di ASP.NET MVC

Normal people bore me! |

11/2/2007 6:30:09 PM #

Joe Brinkman

What you are missing is that these "great" developers are still going to be living with all of their legacy apps written in WebForms.  You will see a ton of articles that help new devs bridge the chasm between the old and the new, because the great devs are going to have to figure this out for their own apps.  We are already looking at questions like this on DotNetNuke - how do I get from here to there without completely rewriting this thing.  Can I utilize some of the MVC stuff in my webforms app - can I use some of the webforms stuff in my MVC app?  We already tackled this with WSP and WAP projects.  The truly great devs in the ASP.Net world will not be so intrigued by MVC as they will be by how to make everything play nice - that is the real challenge and one in which I forsee a lot of activity coming.

Joe Brinkman United States |

11/2/2007 7:21:13 PM #

Søren Spelling Lund

Competition is good: It fosters innovation and improvements which ultimately will benefit both "sides" as they are forced to innovate to keep out with the other side.

I don't see it as a divide I see it as another tool to add to my toolbox which I'll use when appropriate. One could argue that MVC is better suited for public facing web sites while WebForms are better suited to LOB apps which require rich event driven interaction.

To say that another frontend framework is a bad thing because people will use just one is not giving our community credit where credit is due. I believe that we're in the fortunate position that a lot of people in our particular community are committed and want to do the best job possible which entails that they know more than one way of doing things.

/Søren

Søren Spelling Lund Denmark |

11/2/2007 9:10:57 PM #

pingback

Pingback from subjunctive.wordpress.com

ASP.Net MVC and the developer divide « If only I were . . .

subjunctive.wordpress.com |

11/2/2007 9:12:39 PM #

John

I wouldn't worry too much, the so-called "great" developers will do what they've always done. They will jump on the latest buzz-word with a vengence, write about it and offer up oodles of simpleton examples and videos. Their MVP status will remain intact! While the really good developers will continue to earn a living writing real code, using new technology when and where necessary, but no sooner.

John United States |

11/3/2007 1:08:23 AM #

Rob Conery

You bring up a really good point Mads - something that I got into a discussion with Shawn about (what follows is entirely my opinion btw).

@Dave hit it on the head with regards to the transition from classic to .NET - and others have commented about VB and C#. Ruby and Python are now part of the fold too. I find it fascinating that Microsoft is able to expand it's developer offering like this.

The thing I like most about it is that this isn't study-grouped (the MVC project) and part of some orchestrated marketing campaign. This is ScottGu getting excited about a different way to build a web site and making it happen.

Hopefully the work we're doing on SubSonic will address the "ease of use" issue you raise. I don't think it's a major jump to "get it" conceptually - and that's going to be part of my job as well, which I think will be very fun. At the very least I hope to equip people (let's say the "good developers") with enough of a background of the new MVC so that they can make a choice for their application and what's right for them.

Choice isn't bad - and yes it does divide if you let it. I think that's more about the developer and less about the platform

Rob Conery United States |

11/3/2007 1:21:05 AM #

Haacked

> My fear is that the result will be a dual community which could hurt everyone because
> there will be less relevant material available online.

This looks at the community as a zero-sum game, which I don't think it is. By offering choice, we have the potential to grow both communities.

Rather than trying to use WebForms as a hammer that sees everything as a nail, we'll start to see more thoughtful articles that explore in which scenario to use one or the other. Thus articles will better be tailored to the strengths of one platform or the other.

As one commenter mentioned, we've seen the same thing with VB and C#, WPF vs WinForms. We'll also see the same challenge between dynamic languages vs static typed languages when IronRuby and IronPython comes out. I think the various communities will rise to the occasion as they have in the past.

Do you have any thoughts to offer on how you think Microsoft should ameliorate the danger?

Haacked United States |

11/3/2007 1:53:48 AM #

Nick Berardi

I have to agree with Phil.  Having alternate ways to get something done is never a bad thing.  You really need to take a look at how many different patterns the Java world has, none of which seem to hinder the others.  It is just the cream of the crop floats to the top and most people use the one that gets the job done the best.

Nick Berardi United States |

11/3/2007 2:10:32 AM #

Scott Hanselman

Hm. I don't see this as a crisis. This is about choices. Monorail didn't create a "schizm" so I can't see why MVC would.

Scott Hanselman United States |

11/3/2007 7:04:20 AM #

contrarian

[Mads Kristensen]
My fear is that the result will be a dual community

No, there won't.  The "web form" community will die.  Here's why:

1. It has always been a myth that "web form" development is easy, and therefore attractive to, what you call, hobby developers.  If your hobby developer wants to do something more sophisticated than drag and drop a text box on the canvas, he has to master twenty or so stages in application, page and control lifecycles.

2. Savants and pundits newly hired by Microsoft will, through their weblogs and MSDN articles, persuade the naive and innocent that the MVC Framework is the best thing under the sun.  They'll succeed the same way as the previous generation of pundits managed to drive hordes of developers to web forms.

contrarian United States |

11/3/2007 5:56:15 PM #

Mads Kristensen

@Scott,
I don't think it will lead to a crisis either - far from it. Let me give you an example of what I mean. If I read your blog every day about standard ASP.NET and you suddenly start writing more and more about MVC, then your blog becomes more and more uninteresting to me and I will eventually stop reading it. This is just an example of what could happen and there problem is that a great standard ASP.NET resource vanishes.

I'm not saying it will happen, but I fear that something like this will.

Mads Kristensen Denmark |

11/3/2007 8:29:31 PM #

contrarian

[Mads Kristensen]
I will eventually stop reading (ScottHa's weblog)

No, you won't, mate.  ScottHa will always have kind words for web forms.  Partly because he grew up with them, partly because his boss is ScottGu, the founding father of web forms.  ScottHa would never dare stop writing about web forms.

Furthermore, I expect you, Mads, to be one of the first to sink your teeth in the MVC Framework, converting BlogEngine.  ScottHa's weblog will feed you and me and everybody else the juicy info.  Expect it soon.  The Las Vegas conference starts on Monday.  On Friday, you'll see the first tutorial, I suspect.

contrarian United States |

11/3/2007 8:35:03 PM #

Mads Kristensen

@Contrarian,

I only made an example out of ScottHa. I will not stop reading Scott's blog, but I do read many many other blogs each day and the example could count for them as well. But you are right, I will sink me teeth deeply into MVC when the first bits becomes available. I just hope I don't drive readers from my blog if I start to post frequently about it.

Mads Kristensen Denmark |

11/3/2007 10:40:56 PM #

contrarian

[Mads Kristensen]
I only made an example out of ScottHa.

I know, Mads, you were not personal.  It was I who couldn't resist the temptation to poke their Scottish Highnesses in their ribs.

[Mads Kristensen]
I just hope I don't drive readers from my blog if I start to post frequently about (the MVC Framework).

Au contraire, Mads, they'll flock to your weblog.  Web forms have never been all they've been cracked up to be.  This is not say the MVC Framework is manna from heaven, but my gut feeling is I'll like it better than web forms.

contrarian United States |

11/4/2007 12:25:40 AM #

Bart Czernicki

Mads,

  I see like a lot of bloggers u have adpoted the "magazine-like" headlines.  Where for example, u see a headline like "A great new way to write utility classes in C#" and it turns out to be an intro to static methods Smile  I don't see any dangers here (other than the article title) and the more choices the better.  Information-wise I see the same stuff over and over again..I doubt we will have the lack of resourses and gurus go over to the MVC world while avg. developers are left scratching their heads.

Bart Czernicki United States |

11/4/2007 1:41:40 AM #

Chris

I don't really see any problem. This framework will be a lot more interesting to professional developers. If hobby developers wish to become professional then they also have to keep abreast of the technology used in the industry. Those who do not frankly do not belong in the industry.

Chris United Kingdom |

11/4/2007 6:14:47 AM #

Documentation Nut

@John
> write about it and offer up oodles of simpleton examples and videos

As a beginnermidate that spends a lot of time looking for those the current state of affairs is there really isn't MUCH "simple" content out there about programming in any field.

@contrarian
>1. It has always been a myth that "web form" development is easy, and therefore
>attractive to, what you call, hobby developers. If your hobby developer wants to
>do something more sophisticated than drag and drop a text box on the canvas, he
>has to master twenty or so stages in application, page and control lifecycles.

I have gotten a few people over to ASP.NET because the webformsdrag and drop is so easy to do and when i am making a quick little data driven site that doesn't do much, which a lot of sites are, I use webforms prefering to drag drop and wire. Now granted those sites are for professional things but for me personally but most hobby devs only do things for personal reasons.

>Web forms have never been all they've been cracked up to be

I have to seriously think you have been programming for a LONG time because for a beginner developer web forms is the best thing since sliced bread as it allows beginners to get things done while easing into the more complex and accomplishing things. I see the MVC as C++ and Web Forms as C#, kinda, MVC is where you should be able to get to on the complexity level and web forms is where you can start and build up to that point.

@Chris
>Those who do not frankly do not belong in the industry.

Wow what an attitude.  I know a ton of developers from my local DNUG that don't pay attention to anything that is the latest they just go about there daily lives developing with the latest bits they are handed from the higher-ups but are still great developers. Some of these people are a great asset to me since i am still learning because they are able to explain things to me the way I need theme explained if they left "because they don't belong" i'd be screwed.

Documentation Nut United States |

11/5/2007 5:13:21 AM #

Bart Czernicki

Just to add and put the "professional ego" down to earth that is rampant in these responses.  One of the things, I have learned that A LOT of great developers I have worked with don't understand is..."the right technology is what works for you".  Even a mid-level developer can show how MySpace's architecture sucks....one thing u can't argue with is their success.

Its like Dino Esposito programming all his "advanced" examples in VB.NET (90% of the time)...u can take that code and tear it apart and show how using [insert C# feature that doesn't exist in VB.NET versions 1.0-3.5] makes his code suck; but he can probably run circles around most developers regardless with in-depth knowledge.  My point,  Web Forms developement is not going to be some "hobby" relic with only the "cool/properly designed" apps using MVC.

Bart Czernicki United States |

11/5/2007 9:37:07 AM #

trackback

Trackback from Ross Hawkins

An interesting take on the ASP.NET MVC framework

Ross Hawkins |

11/5/2007 4:35:27 PM #

Johan

I think there already is a divide. A lot of developers (most of us) don't understand everything about ASP.NET. I even see a problem when we need resources for ASP.NET work and we get someone who only knows .NET. Both recruiters and managers may fail to see a difference.

There is also the difference between knowing how to use a Web Control and how to write one, especially when it's a repeating control that can be nested and uses templates.

If the new divide will be between MVC and WebForms I still think it will be easier to find out what you or someone else knows. And I agrees with some comments above about MVC beeing somewhat easier to grasp.

Johan Sweden |

11/5/2007 11:20:27 PM #

Kris Brixon

There will be some divide, but you will also pick up more programmers. ASP.NET is so different than JSP,PHP or ColdFusion that having a MVC approach will make the transition easier for more people.

I work a lot with ColdFusion and there is a MVC vs Traditional Approach divide. Adobe pushes the simplicity with tags and bloggers push MVC and OO. The ASP.NET world is SO much larger that there is room for both groups.

As an ASP.NET noob, I welcome MVC. I understand how MVC works but I have yet to fully understand view state and postback model.

Kris Brixon United States |

11/6/2007 8:11:26 PM #

Rob Bazinet

You raise some good points but I don't know if it will be an issue in the long run.  I think MVC is a much better way to write web apps than WebForms, but that is just my opinion and others have theirs.  

Difference of opinion will probably split the community as you suggest but I think people will step up in both and there will be leaders on both sides.  The great thing about any community is somebody wants to lead and usually because they can and with that passion will do a great job.

There is such a large code base of ASP.NET Webforms out there right now, those code bases will not be dropped but will be expanded and will do so with the current technology.  

Rob Bazinet United States |

11/14/2007 5:20:40 AM #

pingback

Pingback from rbazinet.wordpress.com

The Microsoft ASP.NET MVC Framework Holds Much Promise « Accidental Technologist

rbazinet.wordpress.com |

11/16/2007 12:13:01 AM #

Jeffrey Palermo

Divide?  sure.  But I've heard the same argument for unit testing frameworks.  Why can't there be just one?  Because one doesn't serve the needs of the whole world.  Some folks really do like Web Forms.  Some folks hate it.   Who is to decide?  A central authority or should we let each person decide what to use?  I favor the decentralized approach.  Let's let individuals decide.  The community will be stronger for it.

Jeffrey Palermo United States |

11/17/2007 12:19:53 AM #

Dan

While I think I understand your concern, I'm not sure I see what you're trying to do with this post, though -  You're saying dividing the community may be bad and MVC may divide the community, right?

So what do you propose?
1) Don't release a new, powerful tool to people that want it
2) Quit supporting the old, powerful tool and screw the people that use it
3) ??

Also, by the same logic as in your post, c# 3.0 is "dangerous" to the c# community.  So is VB9.  silverlight 1.1 is dangerous to the silverlight 1.0 community.  

The ".net dev community" is already divided.  Web/Win, MonoRail/WebForms,  2.0/1.1,  svn/tfs,  nunit/mbunit/mstest/nbehave/notesting.  People leave to use ruby on rails, people join to leave servlets - However you want to split it, the divisions are already there - and many of them.  

This doesn't stop people from getting work done.  And it seems a bit odd to say that releasing new tools will hurt the community when new tools are being released all the time!.  
Sure, "dev by google" will be marginally harder.  Maybe. Is that really such a danger?

Dan United States |

12/14/2007 11:29:27 AM #

trackback

Trackback from TomsTechBlog.com

With apologies to Mr. Kristensen

TomsTechBlog.com |

3/6/2008 11:11:36 PM #

pingback

Pingback from mcse-blogs.com

Dangers of the new ASP.NET MVC framework | ASP.NET | Top 10 MCSE, CCNA, A+ Certification Blogs

mcse-blogs.com |

4/13/2008 9:09:49 PM #

pingback

Pingback from microsoftnews.askpcdoc.com

Microsoft news and tips » ASP.NET MVC Framework Link collection

microsoftnews.askpcdoc.com |

Comments are closed

About the slave

Mads Kristensen Mads Kristensen
Web developer at ZYB and founder of BlogEngine.NET. More...

LinkedIn ZYB Facebook Last.fm Twitter View Mads Kristensen's profile on Technorati

The Lounge

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2008