Is Classic WebForms More Mature Than ASP.NET MVC?

In my last post about ASP.NET MVC, Jeff Gonzalez referred to WebForms as "Classic ASP.NET".  I had to take notice since when ASP.NET can out, we spoke about "Classic ASP".  This mere reference is interesting.

His comment goes on to talk about how ASP.NET MVC isn't mature and not as "rich" as WebForms, but it also mentions the risks around using beta software for enterprise software.

My comments around this relate to the risks of using new, unproven, software.  SQL Server 2008 is still not widely adopted even though it is fully supported by Microsoft because folks are very leery about upgrading something as critical as a database server.  The same with server operating systems.  I hoster I like very much, Rackspace, still promotes and sells many, many Windows Server 2003 licenses (including some for my clients). 

Software tools, libraries and frameworks are a bit different, however.  First, when you have a new project, it is wise to consider what version of libraries will be supported when the new project goes into production.  To some extent it pays to attempt to avoid being a version behind even before the software launches.  This is the case with ASP.NET for me.  I know where this framework is going, and I trust the reliability of the proven ASP.NET pipeline of handlers and modules.  I also trust the stability of IIS, on which it runs.  The new paradigm is when ASP.NET needs a handler to handle a particular request.  This is where the change in development is.  For me, this mitigates risk around scalability and robustness because the foundation is already proven by 8 years of production use.

The other risk is around bugs.  When your enterprise application goes into production, you want to be able to depend on your chosen libraries.  If your test feedback cycle is long and expensive, there is not easy way to accomplish this.  If, however, you have test automation, you can have high confidence that the software works as intended every step of the way.  Regardless if the libraries in question are from a huge software vender like Microsoft or a single open-source developer, I consider it a must to have high test automation coverage to mitigate not only the risks of local software defects but also those within libraries on which your software depends.

Another consideration about maturity is documentation, and this is nothing to sneeze at.  With 6 books on ASP.NET MVC slated to come out this year, the information will be there, but it is not there now, and many teams will need training on how to make pages with the new version of ASP.NET.  This is definitely something to consider.  Also consider that many projects successfully use log4net, NHibernate, StructureMap, and other open source libraries without full books written on the topic.  In these cases, local documentation is sufficient.  As always, you have to decide for yourself given immediate constraints.


Trackbacks

Commented: Is “Mature” a four letter word in tech? | Jason Doucette, Toronto Tech Guy Posted on 1.29.2009 at 4:42 PM

Pingback from Commented: Is “Mature” a four letter word in tech? | Jason Doucette, Toronto Tech Guy

Is Classic WebForms More Mature Than ASP.NET MVC? : Jeffrey … Posted on 1.29.2009 at 11:55 PM

Pingback from Is Classic WebForms More Mature Than ASP.NET MVC? : Jeffrey …

Dew Drop - January 30, 2009 | Alvin Ashcraft's Morning Dew Posted on 1.30.2009 at 10:45 AM

Pingback from Dew Drop - January 30, 2009 | Alvin Ashcraft's Morning Dew

ASP.NET MVC Archived Blog Posts, Page 1 Posted on 2.01.2009 at 9:44 PM

Pingback from ASP.NET MVC Archived Blog Posts, Page 1

How Do We Measure Maturity In Software? Posted on 2.03.2009 at 9:10 PM

How Do We Measure Maturity In Software?

ASP.NET MVC - Is The Grass Really Greener? Posted on 2.24.2009 at 6:53 AM

Pingback from ASP.NET MVC - Is The Grass Really Greener?

Comments

Jay R. Wren said on 1.29.2009 at 2:32 PM

YES.

Webforms is 8 yrs old now.

ASP.NET MVC is not released, and thus it is still in the womb. Call it negative one month old, guessing at a release in about a month.

Classic ASP is more mature than either of these.

CGI is more mature than any of these still.

Monorail is more mature than ASP.NET MVC

Ruby on Rails is more mature than Monorail.

Does any of it matter when faced with a new problem?

Jeffrey Palermo said on 1.29.2009 at 2:43 PM

@Jay,

Yep, the raw answer to the title of this post is "yes". How much that drives your decision to use either is your choice.

Prajwal Tuladhar said on 1.29.2009 at 3:13 PM

I don't think webforms is more matured than ASP.NET MVC. The concept of MVC has been here from 1970's. It is only Microsoft that has made late entry in creating MVC frameworks. If one just compare ASP.NET MVC and other MVCs like Rails, former is an inspiration of latter with so many kinda replicated features and the MVC pattern has been proved to be efficient one especially dealing with presentation layer; more clean and testable than that webform!

Jason Doucette said on 1.29.2009 at 4:00 PM

It's interesting that we seem to work in a field where "mature" is almost a derogatory adjective on par with "classic," and to be sure there can be additional considerations in more established platforms, like compatibility hacks, layers of hotfixes, increased complexity as versions go up, and other stuff that WebForms doesn't necessarily have, but need to be taken into account. There's always something appealing about starting off with a new technology and a relatively clean slate.

If you replace "mature" with any of "robust," "ready for prime time," "supportable," etc you can end up with different discussions altogether, and like you pointed out, good development practices can shift the priorities of any of these debates.

Stuart said on 1.29.2009 at 4:31 PM

Yes, WebForms is more mature than ASP.NET MVC. Moreover, WebForms is more mature than MonoRail. However, MonoRail is more mature than ASP.NET MVC, and I think that's the point everyone seems to be missing.

Exhibit A: haacked.com/.../controls-collec

Tim Scott said on 1.30.2009 at 9:04 AM

It might be worthwhile to consider why the OSS softwares that you mention (and many others) are so successful despite sparse official documentation, few books and and no official "support" by a big vendor? I see two reasons:

1) They tend to be surrounded by an active community of top flight devs who are accessible and eager to share and help.

2) Their inner workings are transparent, even to the point that you can debug against their source.

Conversely, when I found myself stuck with Webforms I was really stuck. No easy way to see under the hood, and despite heavy traffic on forums little chance of getting help with un-common problems. Using reflector to figure some nuance of page lifecycle is not how I want to spend my time.

While MS MVC is not open source, it is certainly much less opaque than Webforms, and it has attracted a community of great devs who are eager to share and help. That's more valuable to me than whether it's MS "supported" or how long it has been around.

Daniel Auger said on 1.31.2009 at 10:30 AM

The bit about the lack documentation and learning material being a concern is very valid. I think this will be one of the biggest reasons why people won't adopt asp.net MVC en-masse right off the bat. As you said, many open source projects have been widely adopted without books, so I don't think lack of physical learning material makes up the bulk of the problem. Rather, the biggest issue IMHO is the fact that all of the current documentation out there on the web has been written about a moving target. I can find really great articles on the subject going back over a ago, but are they still valid? I'm sure some are, and some aren't, but how's a developer to know if they haven't been closely following things over the past year.

Also a big worry I have is that all of the early adopters who have been writing about the subject won't go back and rewrite about the basics once the final release hits because they feel they've already covered it. It would be best if the bloggers would deprecate some of their tutorials and rewrite them from a v1.0 perspective.

To summarize, I think adoption will ramp up once there is a wealth of up-to-date documentation on the web that is clearly delineated as 1.0 ready.