Microsoft has released a new preview for ASP.NET MVC 2. Preview 2 builds on the features of Preview 1, adding client-side validation, streamlined support of Areas, and abstractions of Data Annotations validation and metadata providers.
ASP.NET MVC 2 will include the jQuery validation library to provide client-side validation based on the model’s validation metadata. With Preview 2, it is also possible to "hook in alternative client-side validation libraries by writing an adapter which adapts the client library to the JSON metadata in a manner similar to the xVal validation framework."
An important feature introduced in V2 Preview 1 was the concept of Areas. Areas provide a means of dividing a large web application into multiple projects. Preview 2 further refines this idea to allow using Areas within a single project, still providing most of the organizational benefits.
Preview 2 also adds Model Validation Providers and Metadata Providers. These providers allow hooking in alternative validation logic for model binding and alternative sources of metadata for models. The default providers use Data Annotations, a validation and metadata approach introduced in Preview 1.
According to Phil Haack, Senior Program Manager on MVC team:
... you’ll notice a theme where in Preview 1, we tied much functionality directly to Data Annotation attributes, in Preview 2 we inserted abstractions around our usage of Data Annotations which allow hooking in custom implementations of validation and metadata providers.
This will allow you to do things like swapping out our default validation with the Enterprise Library Validation Block for example. It also allows providing implementations where model metadata is stored in alternative locations rather than via attributes, with a bit of work.
ASP.NET MVC 2 Preview 2 can be installed side-by-side with MVC 1, but MVC 2 Preview 1 should be uninstalled before installing Preview 2. In VS 2008, it is registered as separate project types. Those experimenting with VS 2010 users will have to wait for VS Beta 2, which will include MVC v2.