On March 30th, Microsoft released the MVC (Model-View-Controller) framework for ASP.Net (see the press release). Apparently they have also just licensed the source code under MS-PL (see ScottGu's Blog post), which is an open source license (could this be an April Fool's joke?).
WebForms in ASP.Net is a decent framework for building web applications. WebForms allows you to build web applications in a manner similar to building WinForm applications. This is a powerful concept and one that has made many developers lives better. However, it comes with some cost, especially to how much control you have over the end result.
MVC is an alternative to WebForms that provides the developer more control over how content is rendered, not to mention using a well known, yet underused pattern for building applications with a user interface. One of the features of this pattern is the ability to unit test your code, which can be very difficult to do in WebForms.
Here's the description of ASP.Net MVC from the Microsoft download page:
ASP.NET MVC 1.0 provides a new Model-View-Controller (MVC) framework on top of the existing ASP.NET 3.5 runtime. This means that developers can take advantage of the MVC design patterns to create their Web Applications which includes the ability to achieve and maintain a clear separation of concerns (the UI or view from the business and application logic and backend data), as well as facilitate test driven development (TDD). The ASP.NET MVC framework defines a specific pattern to the Web Application folder structure and provides a controller base-class to handle and process requests for “actions”. Developers can take advantage of the specific Visual Studio 2008 MVC templates within this release to create their Web applications, which includes the ability to select a specific Unit Test structure to accompany their Web Application development.
The MVC framework is fully extensible at all points, allowing developers to create sophisticated structures that meet their needs, including for example Dependency Injection (DI) techniques, new view rendering engines or specialized controllers.
As the ASP.NET MVC framework is built on ASP.NET 3.5, developers can take advantage of many existing ASP.NET 3.5 features, such as localization, authorization, Profile etc.
For convenience, here are some of the resources available out there for ASP.Net MVC:
From Mix 09 (list of all videos). I haven't seen all these videos yet, but here are the ones on MVC: