View from the Ivory Tower

Chris Kadel's attempt at a blog with an ironic title.

Archive for the ‘ASP.NET’ Category

ASP.NET MVC – Back to the Future

Posted by cbkadel on January 24, 2010

Having spent some time with the ASP.NET MVC framework, I must say that at the outset, I am impressed.  I like it, and I plan to write most applications for the web with that framework, rather than the old standby – Web Forms.  With the 2.0 release of MVC, it’s even more impressive now that they’re going to round out the rough edges [client side validation].  That said, I had a few reactions lately while building a few applications – just because of my experience on the Java side in the past…

  1. Abstraction Isn’t Always Good – Of course we take this is as a truism.  Everyone that’s been on one of those overly complex, and overly “object oriented” projects with v-tables that are 10 levels deep for method calls knows that this is true.  Something that Microsoft technologists started out to do back in 2001 – is abstract the web’s request / response model with ViewState and a great designer that made developing web applications eerily similar to building Windows Forms (Do you remember the default designer in VS 2002 or 2003 was using an x/y coordinate layout by default?).  We spent our time hiding away that request/response model with things like button events and post-back.  MVC throws this completely out.  I know you can argue this builds on top of ASP.NET and of course it does (aspx, ascx pages are all relevant still), but gone are the huge code behind pages.
  2. Competition is Good, but Leadership is Better – As the Microsoft developers move towards building applications with sophisticated MVC patterns, we’re of course seeing many new ways to solve problems [some problems that Web Forms at least provided prescriptive guidance on].  And this is a good thing.  In particular, I personally am a big believer in DRY (don’t repeat yourself) as a rule wherever possible, and client-side validation has been an area that I care a great deal about).  The ASP.NET validation controls with Web Forms did a nice job with the most basic validations of not requiring us to write the code for the server *and* the client.  Something that I think has happened in the Java community is that there became so many different ways to do MVC that it was more overwhelming for beginner developers.  Should they be looking at Spring, Struts, Grails, or Roll-Your-Own?  I think that has been the issue with J2EE (now JEE) – so many vendors, so many choices, that the world seemed quite fractured.  I think with ASP.NET MVC [and because they’ve done a great job at its design], and because Microsoft certainly has a strong voice with the Microsoft community, this is going to be prescriptive enough to move the community forward and in a roughly common direction.  That said, I think we’re about to see many new architectures and designs built on top of MVC, and this will be interesting to see what gains market share/what does not.

When I first opened up ASP.NET MVC, I was initially surprised how complete-ish it was as an implementation of a standard architecture that’s been around for years.  Although, we on the Microsoft are perhaps a bit late to the game to realize these benefits, I think this is why this framework is going to be successful.  The enterprise java community has evolved a great deal in the past 10 years, and all the developers on the Microsoft side, I believe, are benefiting from lessons learned.  Perhaps this is history repeating itself (JVM –> CLR).

Posted in ASP.NET | Tagged: , , | 1 Comment »

 
Follow

Get every new post delivered to your Inbox.