ASP.NET MVC 3 Preview 1は、まだアナウンスされていないが、フレームワークはマイクロソフトのサイトからダウンロードできるようになっている。機能の一覧には、次のものが含まれている。Dependency Injection、Razorビューエンジン、ダイナミックビューとViewModelプロパティ、そしてグローバルフィルタ。
ASP.NET MVC 3 Preview 1の新しい機能で、重要なものを以下に解説していく。
- Razorビューエンジン – このビューエンジンは、InfoQの以前の記事で紹介している。 ASP.NET MVC 3は、現在C#(.cshtmlファイル)のみサポートしているが、VB.NETも後にサポートされる予定である。
- ダイナミックビューとViewModelプロパティ– ビューは、
ViewData
オブジェクトへのシンプルなアクセスを提供する新しいダイナミックなView
プロパティを提供する。以下の例を見て欲しい。
public ActionResult Index() {ViewData["Title"] = "The Title";
ViewData["Message"] = "Hello World!";
}
<h2>View.Title</h2>
<p>View.Message</p>
Controller
クラスもまた、 ViewData
ディクショナリにアクセスしやすくするViewModel
を提供する。前の例をベースにした以下の例を見て欲しい。
public ActionResult Index() {ViewModel.Title = "The Title";
ViewModel.Message = "Hello World!";
}
- 複数のビューエンジンをサポートする[ビューの追加]ダイアログ - Visual Studioに複数のビューエンジンから選択できるビューの追加ダイアログ
- Dependency Injection – ASP.NET MVCは、次のサービスと依存性を探すIoCコンテナをサポートする。コントローラファクトリ、ViewPageを継承したビューページの型への依存、ViewUserControl、ViewMasterPage、WebViewPage、Web FormとRazorビューエンジンの両方、アクションフィルタへの依存
- グローバルフィルタ – ASP.NET MVCは、コントローラのアクションメソッドにフィルタの追加をサポートした。
- JsonValueProviderFactoryクラス –このクラスは、JSONデータの送受信を行うアクションメソッドのクライアントのテンプレートとして使用することができる。
- .NET Framework 4メタデータ属性のサポート
ASP.NET MVC 3は、ASP.NET MVC 2とサイドバイサイドで動作するため、開発者はどちらを使うかを選択することができる。また、古いプロジェクトを新しいフレームワークにアップグレードすることも可能にする。しかし、アップグレードは完全には自動化されていない。リリースノートには、次のように書かれている。
…新しいASP.NET MVC 3プロジェクトを作成し、MVC 2プロジェクトからすべてのビュー、コントローラー、コード、コンテンツファイルをコピーします。次に、古いプロジェクトと一致したアセンブリ参照を新しいプロジェクトに更新します。もし、MVC 2プロジェクトのWeb.configファイルを変更している場合、MVC 3プロジェクトのWeb.configにマージする必要があります。
ASP.NET MVC 3には、.NET 4.0とVisual Studio 2010または、Visual Web Developer Express 2010が必要である。