Wednesday, August 5, 2009

ASP.NET MVC Roadmap

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

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.
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.
Strongly-typed link helpers – allow developers to take advantage of Intellisense support (due to the strong typing) to discover which controllers and actions are available for linking.
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.
Areas - continued refining of the Areas feature, enabling a single project approach for developers who wish to organize their application without requiring multiple projects.
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.