ASP.NET MVC 2.0 and VS 2010 plan now public

Subscribe to my feed here:

Phil Haack has shared some of the plans in the works for ASP.NET MVC 2.0  After the initial release, the team didn’t slow down at all.  They have a great line-up, and I’m going to share it with you in this post.  Before some of the feature areas, I wanted to share some of what the team has stated are the targets for the v2.0 release.

Earlier this year, I made the prediction that within 2 years, the majority of new ASP.NET projects would choose the MVC route instead of WebForms.  I believe that the targeted scenarios in the 2.0 roadmap support my prediction.

With the 1.0 release, the target from Microsoft is to provide another options for ASP.NET developers.  They stand by both IHttpHandler implementations and pledge to support and enhance both going forward.  As of right now, there are some legitimate concerns about using ASP.NET MVC on certain teams where the skillset of the developer is heavily focused on designer development and UI controls.  Also, there are some scalability scenarios that require an add-on or custom development.

Enterprise Ready

ASP.NET MVC 2.0 has a goal of being enterprise ready.  They are targeting the enterprise with some of the upcoming features.  This is interesting to me because some of the naysayers stood behind the idea that WebForms was for the enterprise and that ASP.NET MVC is for “small websites”.  All-in-all, you can do enterprise development with either of them.  In my opinion, it’s an architectural decision fraught with many trade-offs, but I digress.

Backwords compatibility

For ASP.NET 2.0, we will be able to use it with Visual Studio 2008 SP1 as well as 2010.  I’m glad this is the case, and until there are some .Net 4.0 features baked in, it will continue to be possible.

What you’ve been waiting for:  the feature list

I’m going to cut to the chase and just quote what Phil Haack posted on the CodePlex ASP.NET site:

  • Areas – Provide a means of grouping controllers and views to build out subsections of a site in isolation.
  • Asynchronous Controller Actions – Provide an asynchronous programming model for controller actions for improved scalability.
  • Strongly-typed input helpers – Expression-based helpers for generating form fields against the model.
  • Strongly-typed link helpers – strongly typed helpers for generating action links
  • Support for Data Annotations – The default model binder will include support for Data Annotations attributes (a la Dynamic Data).
  • Caching Improvements – Improve various caching scenarios.
  • Misc – Various improvements
  • What I’m most excited about

    Areas are very interesting!  Now, the term “areas” has different meaning from this in MonoRail as well as the current implementations out there.  Currently, we can use it to group controllers and views.  If I read this correcting, this implementation will take routes into consideration also.

    Imagine this scenario:  I start a project that needs user logins and a user administration section to create users, reset passwords as well as role-based configuration. . . .with ASP.NET MVC areas, I would be able to take a dependency on, let’s say, MvcContrib.UserManagement.dll, and in my Application_Start() method just call a few lines of start-up code to wire in the routes of the user management pages.  After that, the urls would just be handled by the other assembly.  I’m sure I’d have to implement some interfaces defined therein to hook into my own User object, but the power of this is just tremendous.

    Here is another prediction

    “Areas are the control model (commercial model) for ASP.NET MVC”.  You heard it here first, folks.  No, actually you didn’t.  The masterminds are on Phil’s team.  If the team gets nothing else, I sure hope areas stay at the top of that list.  This is going to be a very exciting release!

    We can’t say thank you enough

    Phil, and the ASP.NET MVC team had an extremely open and transparent 1.0 release cycle with half a dozen public CTPs released.  They got loads of feedback, and sometimes it’s a bit negative.  Then again, if nobody cared about the product, no one would say anything. 

    This product is doing so much to streamline the development of my company, Headspring Systems.  We were headed down a course of MonoRail adoption (and we have that in production as well) when ASP.NET MVC came along.  I want to say “thank you” again to:

    • Scott Guthrie for his visionary leadership and initial prototype
    • Phil Haack for his leadership to make the vision a reality
    • Rob Conery, Levi Broderick, Eilon Lipton, and everyone else at Microsoft who made the product a reality
    • Scott Hanselman for marketing the product to the community
    • Brad Wilson for laboring with the idea of Dynamic Data templates with ASP.NET MVC (don’t give up!)