ASP.NET MVC Roadmap

This is a high level roadmap for ASP.NET MVC featuring the areas we are investigating. We will continually update this as we post releases to the CodePlex site.

ASP.NET MVC 2

Theme: Improved Productivity and Enterprise Ready

Developing applications with ASP.NET MVC 2 is going to be more productive than with ASP.NET MVC 1.0 with the improvements being made in this version such as the Templated and Paging Helpers. Additionally, those working with ASP.NET MVC 2 in the enterprise will find that some of the unique needs of their environment will be addressed via the new Areas and AsyncController features.

Runtime
ASP.NET MVC 2 will take a runtime dependency on ASP.NET 3.5 SP1 as we plan to ship project templates and tooling for both Visual Studio 2008 and Visual Studio 2010.

Visual Studio 2010
  • Visual Studio 2010 Beta 1 support as an add-on (Sometime in June)
  • ASP.NET MVC 2 Preview 2 included in Visual Studio 2010 Beta 2
  • ASP.NET MVC 2 RTM included with Visual Studio 2010 RTM

Notes
For Visual Studio 2010 Beta 2, there is no support for upgrading ASP.NET MVC 1.0 application to ASP.NET MVC 2 Preview 2. You can use this external tool to do it.
The team is looking at an integrated upgrade solution for Visual Studio 2010 RTM.

Visual Studio 2008
  • Will continue to ship a standalone ASP.NET MVC 2 installer for Visual Studio 2008 with SP1

ASP.NET MVC 2 Features

Preview 1 - Early August

  • Templated Helpers - allow you to automatically associate edit and display elements with data types. For example, a date picker UI element can be automatically rendered every time data of type System.DateTime is used. This is similar to Field Templates in ASP.NET Dynamic Data.
  • Areas - provide a means of dividing a large web application into multiple projects, each of which can be developed in relative isolation. This helps developers manage the complexity of building a large application by providing a way to group related controllers and views.
  • Support for Data Annotations - Data Annotations enable attaching validation logic in a central location via metadata attributes applied directly to a model class. First introduced in ASP.NET Dynamic Data, these attributes are now integrated into the default model binder and provide a metadata driven means to validating user input.

Preview 2 and beyond

  • Client Validation - builds on top of the Templated Helpers and Data Annotations work done in Preview 1 to provide client-side validation based on the model's validation attributes. This provides for a more responsive experience for users filling out a form with validation.
  • Areas - continued refining of the Areas feature, enabling a single project approach for developers who wish to organize their application without requiring multiple projects. Improved area registration.
  • Model Validation Providers - allow hooking in alternative validation logic to provide validation when model binding. The default validation providers uses Data Annotations.
  • Metadata Providers - allow hooking in alternative sources of metadata for model objects. The default ModelMetadataProvider uses Data Annotations.

Beta

  • Other Improvements - continue to fix known issues carried over from ASP.NET MVC 1.0 as well as ASP.NET MVC 2 Preview 1. Also including API improvements based on user feedback along with minor new features.
  • Asynchronous Controller Actions - provides a programming model for writing actions that can call external resources without blocking a thread. This can increase the scalability of a site that needs to interact with web services and other external services.
  • Strongly-typed input helpers – allow generating form input fields using code expressions against the model. This allows the helpers to take advantage of Data Annotations attributes applied to the model and reduces errors caused by lack of strong typing such as typos.
Last edited Oct 20 at 10:19 PM by Haacked, version 31
Comments
pierslawson Mar 22 2008 at 5:44 PM 
Are you looking at putting in support for asynchronous handling of Actions?

ScottGal Apr 3 2008 at 6:40 PM 
Not in 1.0 but we're looking at it for a later release.

SteveSanderson Jun 9 2008 at 11:09 PM 
ScottGu said validation was coming soon. Is that still the plan?

shijucv Nov 13 2008 at 3:58 AM 
A separate view engine for ASP.NET MVC instead of current WebForm view engine and a better way to handle partial requests would be great additions.

jrista Jan 14 at 6:16 AM 
Will there be any any support for view areas, such as what Monorail has? Sometimes more than one path level is required to adequately organize views.

inrie Feb 11 at 4:15 AM 
Is this will be implemented in the v1.0?

kazimanzurrashid Feb 15 at 10:40 PM 
>>>>>>Sessionless controllers - Allow controllers to not use session state on a controller by controller basis (without this, you can turn session on or off for the entire site)
Not sure about this, I can use an EmptySessionDataProvider and turn off the session in web.config from i guess from Beta4.

softlion Feb 28 at 9:36 AM 
Subcontrollers are really missing to create components, or I've missed something that is not in the quickstarts. Of course we can still use Html.RenderAction("actionName","ControllerClass",...) in asp.net mvc futures and I can understand why that design is not satisfactory.

ajma May 14 at 7:06 PM 
Are the features in the 2009 roadmap scheduled for .net framework 4.0? or out of band? or "nothing to announce right now"?

kenpachi May 30 at 10:48 PM 
I'm not sure if Sub Controllers are what I'm thinking about, but what about a feature where you can group different web applications / modlues / components in a project. For example right now I am working on a CMS system that I will base most of my sites off of. Currently the CMS's controllers, models, views are all mixed together with the site. How about a way to separate these applications in folders such as "blog", "forum", "CMS", or whatever that would contain the necessary modules, controllers. vews. css, javascript,, etc..., so they are easier to share, maintain and deploy. Possibly making them easy to deploy as a dll as well.

jeffreypalermo Jun 7 at 2:05 AM 
Phil,
Thanks for posting this information. Roadmap looks great!

jglozano Jun 7 at 4:19 AM 
this looks great, Phil! Can't wait to get a hold of the bits and tooling!

coldacid Jun 9 at 7:28 PM 
Not going to add something for rendering partials to strings in 2.0? I know there's code out there for doing it now, but it's hackish and fails in odd ways when you try and use helpers in those partials. It would be best to have it built in to the framework instead, and functioning properly across the board.

eazel7 Jun 9 at 8:44 PM 
maybe you can incorporate my strongly-typed action route helper

http://blogs.southworks.net/dperez/2009/05/09/mvc-strongly-typed-action-route-helper/

thanks!

AlexCopperfield Jun 11 at 1:19 AM 
Will VS 2010 have it's very own mock framework?

mteper Jun 11 at 4:11 AM 
What about i18n?

fix3r Jun 15 at 7:04 AM 
I think a full end to end validation framework is critical for the enterprise. We need to have a validation framework thats can be defined once and can be re-used throughout the layers, UI, Controllers and Models.
This will also touch on the productivity areas...NO repetition of validation code which is so common in development.

DanAtkinson Jun 15 at 12:53 PM 
Just to clarify... Is the AsynchronousController an implementation of sub-controllers, or is that something else? :)

littlecharva Jul 21 at 4:37 PM 
It would be nice if you could make more methods public instead of internal; especially involving the WebFormsViewEngine. It would be really useful to be able to extend that view engine, rather than having to create my own from scratch.

soelinn Jul 29 at 8:04 PM 
It'd be nice if the "Add Controller" can be created on an existing Model Type from either Linq2Sql or Entity Framework object like how the "Add View" dialog allows strongly-typed Views be created based on a Model.
On top of that, I would like to be able to integrate that "Add Controller" template with the T4 so I can do some additional customizations based on the specified Model.

dbau56789 Aug 4 at 6:16 AM 
The laundry list above is nice, but I hope that the ASP.NET MVC team has not forgotten about probably the most useful control in the ASP.NET toolbox...The GridView. Namingly, a sortable grid helper is essential to widespread adoption. As of 1.0 implementing this feature is not trivial. There is a way using MVCContrib, but it ugly. jQuery only works if you have a small result set. We need something that interact with the controller and we need it out of the box. Until this is available, my development teams will not be able to adopt ASP.NET MVC.

dmonlord Aug 11 at 2:44 PM 
You have to add something like http://aspmvccombine.codeplex.com/
It's .css and .js combine utility.

Usually it's easyer to just include bunch of javascript files to your views, but from performance side it's not.

So it would be great if I could write:
<script type="text/javascript" src="Script1.js"></script>
<script type="text/javascript" src="Script2.js"></script>
<script type="text/javascript" src="Script3.js"></script>

and I would get intellisense support for javascript (it will be better in VS2010, right?)

But the rendered page (View page source in browser) should get:
<script type="text/javascript" src="MinimizedAndCombinedScripts.js"></script>

and as the filename suggests this .js file should combine all my script includes and it should be minimized.


The problem with the aspmvccombine is that you loose intellisense and what Microsoft says it will improve intellisense support for Javascript. So the library and VS2010 don't get along quite well.

And another thing about intellisense. If you're making your own .js file, and let's say you're using jQuery in that file...You still loose the intellisense because jQuery cannot be referenced in .js file. Right? (But that's probably a Visual Studio issue).

All above should be considered for .css, too.

runxc1 Aug 28 at 5:52 PM 
I am curious about the migration path from ASP.Net MVC to ASP.Net MVC 2? If I start a site now using MVC 1 what changes will be necessary to get it up and running in MVC2?

Albined Sep 5 at 3:02 PM 
Will ASP.NET MVC 2 PREVIEW 1 support VS2010 BETA 1? if not please tell when will be release ASP.NET MVC 2 support file for VS2010.

cttoy Sep 15 at 12:35 PM 
i am waiting the mvc 2 release

neildmoss Sep 17 at 5:04 PM 
We're near the start of an MVC project.

Is there any statement of backwards compatibility for v2 in support of v1?

Is there an hoped-for release date for v2?

Thanks,
Neil.

hminaya Nov 5 at 3:38 AM 
Any time-frame for the beta release?

Updating...
© 2006-2009 Microsoft | About CodePlex | Privacy Statement | Terms of Use | Code of Conduct | Advertise With Us | Version 2009.10.27.15987