Login  

Blog Stats

                

                   E-mail | Twitter

TamTamy from Reply

New: Subscribe via e-mail

Enter your email address:

Delivered by FeedBurner

Follow Dion Hinchcliffe on Twitter

follow dhinchcliffe at http://twitter.com

Web 2.0 Expo New York 2008

Sponsored Advertising


Your Ad Here

Post Categories

Archives

Blogs Read By Me

Building Blocks of Great Systems

Consulting

Contact

Tech News Read By Me


Head First Design Patterns:

Don't reinvent the wheel, use the most insanely great book on design patterns yet written.

Listed on BlogShares

Dion Hinchcliffe's Blog - Musings and Ruminations on Building Great Systems

Lightweight Processes, Service-Orientation, Enterprise Architecture, and Software Development

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.

posted on Sunday, January 23, 2005 9:44 AM

AddThis Social Bookmark Button

What People Are Saying About This Post...

# re: Is ASP.NET not measuring up to JSP's MVC 2 architecture? 1/23/2005 9:34 PM Natty Gur
Dion,

I'll try to explain why I found MVC 2 critical issue.

All my posts are from enterprise point of view. When as an enterprise software infrastructure guy I need to provide solution for 300 web developers, about 60 teams (and that moderate example), then I found MVC 2 crucial. Catching incoming calls in single point let me, as infrastructure guy, single place to intercept and supply infra services (instead of millions of calls from XXX page code behind pages). Front controller also let us to supply easily application controller as an infra services which let users (programmers) to set their application flow via XML deceleration. Removing calls to domain logic or navigation code from pages turn them into pure visual aspects that might be reuse in other applications. There are much more benefits but I'm just writing a comment...

Anyway I'm looking from Enterprise point of view and enterprises got their needs, isn't it? I agree that small firm or startup or web site don't need MVC 2 as a critical need. But I can tell you from experience (I mean from failures) that if 300 developers will work using ASP.NET as he shipped.... Boy I don't think you will get that bonus in the end of the year.

You know, we all consumers that buy products. If you are going to buy mp3 player from one manufacture and he got FM tuner embedded, you will ask for FM tuner when you reach other manufacture. Now as Enterprise architect my enterprise not uses just Microsoft :-). So if I buy one J2EE pack and then I'm out to shop Microsoft pack I expect to find the same feature list ....

Last but not least, "rather provocative post" why? Is telling your thought is provocative? I don't think so. Criticism is good thing! Those are just my ideas, after all if someone wants to treat them: he welcome! All those suggestions based on 4 years of working with ASP.NET, from helping many MS clients for the last 2 years (they even honor me with the MVP status) and from hours of drilling down into ASP.NET code.

After all your post is Criticism as well, and I enjoy it! It helps me to realize that I probably didn't made myself clear (I hope I get more success this time :- ) ) and probably made me better. It also helps other people to understand new things or to open their minds to new Ideas.

See you, or talk to you!

Natty.

What do you have to say?

Title:
Name:
Url:
Comments: 

Protected by Clearscreen.SharpHIPEnter the code you see: