Yesterday, Microsoft published the long-awaited first ASP.NET 3.5 Extensions CTP (Customer Technology Preview). The extensions package includes the ASP.NET MVC Framework, AJAX improvements, Dynamic Data support, Silverlight support, and ADO.NET Data Services.
The ASP.NET 3.5 Extensions CTP ist the first community drop to include the MVC (Model-View-Controller) Framework. ASP.NET MVC has first been announced on the ALT.NET conference in Austin. Scott Guthrie has the details about the contents of the CTP:
- ASP.NET AJAX Improvements: New ASP.NET AJAX features in the ASP.NET 3.5 Extensions release include better browser history support (back/forward button integration, and server-side history management support), improved AJAX content linking support with permalinks, and additional JavaScript library improvements.
- ASP.NET MVC: This model view controller (MVC) framework for ASP.NET provides a structured model that enables a clear separation of concerns within web applications, and makes it easier to unit test your code and support a TDD workflow. It also helps provide more control over the URLs you publish in your applications, and more control over the HTML that is emitted from them.
- ASP.NET Dynamic Data Support: The ASP.NET 3.5 Extensions release delivers new features that enable faster creation of data driven web sites. It provides a rich scaffolding framework, and will enable rapid data driven site development using both ASP.NET WebForms and ASP.NET MVC.
- ASP.NET Silverlight Support: With the ASP.NET 3.5 Extensions release we'll deliver support for easily integrating Silverlight within your ASP.NET applications. Included will be new controls that make it easy to integrate Silverlight video/media and interactive content within your sites.
- ADO.NET Data Services: In parallel with the ASP.NET Extensions release we will also be releasing the ADO.NET Entity Framework. This provides a modeling framework that enables developers to define a conceptual model of a database schema that closely aligns to a real world view of the information. We will also be shipping a new set of data services (codename "Astoria") that make it easy to expose REST based API endpoints from within your ASP.NET applications.
The ASP.NET 3.5 Extensions CTP can be downloaded from the ASP.NET web site. It is accompanied by the ASP.NET MVC Toolkit, which "provides HTML rendering helpers and dynamic data support for MVC":
- Rendering helpers which make it easier to output various HTML tags in MVC Views
- Dynamic Data support: this gives ASP.NET MVC a powerful and extensible scaffolding architecture. The toolkit also adds metadata pluggability, which allows the metadata used by Dynamic Data to use alternate stores (instead of the default attribute based mechanism).
Dynamic Data support and the scaffolding architecture are explained by David Ebbo in his introductory blog post:
Dynamic Data lets you run a scaffolded web application on top of your schema. Although this scaffold has a 'standard' UI, it lets you try all CRUD operations on your tables. Furthermore, it has full support for relationships. For instance (assuming Northwind), the Products page would let you navigate to a product's category info, and editing a Product's category would show you a rich drop down with category names (instead of IDs).
Scott Hanselman put together a screencast on the ASP.NET MVC Framework, which should help you to get started developing MVC web apps. He has also got some soothing words for the community, which might be afraid to drown in a flood of new releases:
Why release extensions when we JUST released Visual Studio 2008? There's kind of a sine wave thing going on. We stagger the BIG releases of things like .NET or Visual Studio with smaller releases of things like MVC or the Ajax Framework. So, release Visual Studio 2005, then release Ajax, release Visual Studio 2008, release MVC, dynamic data, new controls, etc. It's sometimes confusing (and believe me, I'm working them) but it gets you fresh stuff sooner.
Scott recommends to visit the ASP.NET web site regularly and pay special attention to the extensions' download section "as there will be videos coming out every few days this week covering the whole release - not just MVC".
For those interested in the details Scott Guthrie published a series of articles on "a simple e-commerce store application to help illustrate how the ASP.NET MVC Framework works":
- ASP.NET MVC Framework (Part 1)
- ASP.NET MVC Framework (Part 2): URL Routing
- ASP.NET MVC Framework (Part 3): Passing ViewData from Controllers to Views
- ASP.NET MVC Framework (Part 4): Handling Form Edit and Post Scenarios
Nikhil Kothari explains how to combine ASP.NET AJAX with ASP.NET MVC. There is a special AjaxController, which should be used as a base class instead of the Controller base class. AjaxController offers special members, such as IsAjaxRequest and RenderPartial, that support rendering of different views and partial updates.