Plans for ASP.NET MVC 3
This document provides an overview of how the features of the next version of ASP.NET MVC 3 will become functional. We will keep updating this article with each new release of the test version of ASP.NET MVC 3.
ASP.NET MVC 3
Now that the final release of ASP.NET MVC 2 has been released, it's time to plan the next release of ASP.NET MVC 3. This document will be updated with additional information as we move forward in the planning process.
The following is a list of some of the high priority areas we want to focus on:
- productivity - ASP.NET MVC 3 should offer application developers more opportunities to be productive in building web applications:
- helper methods based on tasks (Tasked based helpers) - These helper methods will be focused on the task, which often confront the developer in the development of web-applications, for example, adding a CAPTCHA to the website or the use of tables with pagination and sorting data;
- improvements in validation - support for as many validation attributes as possible, such as those presented in ASP.NET 4 and others, such as the email validation attribute;
- representations engine option (View Engine Options) - we are experimenting with a new elegant syntax representations of the engine, in addition, are working to make the introduction of third-party engines in projects like the Spark, more simple;
- command line utilities - since we added a number of tools in Visual Studio to work with ASP.NET MVC, we want to offer alternative tools with the same functionality for the command line.
- Ajax - Modern applications use Ajax to create rich functionality for their users. ASP.NET MVC 3 should make building such applications easier:
- more helper Ajax methods - new helper Ajax methods will allow you to use helper libraries such as jQuery UI to provide widgets such as: calendar, date picker, auto-complete, etc .;
- update multiple pages parts (Multiple Partial Updates) - Ajax-current auxiliary methods such as Ajax.BeginForm and Ajax.ActionLink allow update only one item on the page layout piece after receiving the query response. Support for updating multiple parts of a page will allow Ajax methods to receive several pieces of markup in response to a request and update several parts of a page at a time;
- template support on the client side (Client Templates Support) - templates on the client side will allow you to format and display a single data or set of data elements using HTML fragment. ASP.NET MVC 3 allows you to connect templates on the client side to the JSON data that is returned when invoking action methods.
- architecture - ASP.NET MVC 3 will contain architectural improvements that will allow developers to get new benefits, for example, improved extensibility, which will allow you to customize the framework for yourself:
- dependency injection at all levels - we are considering the possibility of using dependency injection during the instantiation of the components of the framework. This will allow developers to intercept events like: creating models during model binding, action filters, etc .;
- MEF - based controller factory - MEF is a new .NET library designed to build incrementally expandable applications that expand without the need for custom modifications. Using MEF inside the factory of controllers by default will allow you to implement extensibility scenarios out of the box, while retaining the ability to use third-party DI frameworks;
- Scaffolding in applications - Scaffolding allows you to quickly add scripts to applications for Creating, Reading, Updating and Deleting data based on models, which is a quick start point for receiving data in the application during development.
- performance - as usual, we are looking for ways to make ASP.NET MVC 3 very fast:
- improved caching support - allows you to cache the results of RenderAction calls. In addition, we are considering the possibility of implementing the type of caching “ donut caching ” - donut hole caching — only some part of the page is cached ( donut caching - everything is cached except for some part of the page ) . - approx. Transl. );
- more control over the session - support for session states, as well as turning session states on or off for individual actions or entire controllers.
ASP.NET MVC 3 will be dependent on the ASP.NET 4 runtime and will come with templates for Visual Studio 2010.