Is ASP.NET lacking when it comes to mature architecture patterns? A
rather provocative post I just found over at
Natty Gur's weblog says that making MVC 2 the official internal implementation of ASP.NET would be his top priority if he was the ASP.NET group architect.
Why? A preponderance of evidence that shows the MVC 2 is not just a cleaner and more powerful way to implement web applications, but very good for their long term evolution and maintenance too. Now this personally fascinates me because I love to uncover design patterns that foster the long-term health of an application architecture, and MVC 2 shows much promise in being such a pattern.
Design patterns that comes from actual battlefield scars and extensive, hands-on experience are worth their weight in gold and I can go all the way back to great posts in the year 2000 by folks such as Kevin Duffy showing that real world experience was proving that MVC model II was already the best web application pattern known.
Since then, there has clearly been a mass migration to the MVC 2 approach, most famously the folks over on the excellent Apache Struts project which have created an impressive and now-pervasive implementation of MVC 2.

Figure 1: The MVC 2 Pattern with Apache Struts
So this brings us back to Mr. Gur and his assertion that ASP.NET has essentially missed the boat by implementing MVC at a page level instead of the application level. He believes they should fix the problem and give .NET developers the same robust application architecture. Unfortunately, as far as I can tell, the jury is still out when ASP.NET will get MVC 2. At this time, it appears that Microsoft has committed to supporting the Front Controller pattern for an upcoming version of ASP.NET which will help level the playing field, but not catch them up.
The open question is whether this is really a critical issue. This is because there are fairly easy ways to apply MVC 2 to ASP.NET today, if you don't mind doing it by hand. In fact, a very detailed article from Microsoft comparing J2EE/Struts and ASP.NET provides some of the raw material for doing this, but I was also able to turn-up an really nice overview of design specifics and techniques for going the MVC 2 route with ASP.NET with an in-depth article from DMB Consulting that gives detailed implementation guidance.
Also, for those of you who want to dive into MVC 2 more, I encourage you to look at Sun's impressive Java Blueprints documentation on the MVC patterns, there are wonderful diagrams, code samples, and excellent expository text describing the forces, constraints, and techniques of implementation.