ASP.NET MVC V2について
ASP.NET MVC V2に関する話題も既に出てきています。非常に多くの機能追加が予定されていますが、現時点でロードマップとして公開されている情報をまとめてみますので、今後の参考にしてください。
ASP.NET MVC V2の提供について
ASP.NET MVC V2はVS2010に同梱されることが開発チームのPhilさんから言及されました。また、VS2008 SP1に対してもインストーラーが提供予定なので、既存のASP.NET MVC開発者も開発環境の移行コストを意識することはほぼなさそうです。
ASP.NET MVC V2の新機能について
ASP.NET MVC V2はロードマップに沿って新機能が逐次追加されています。
現在CTPとして提供されている新機能
以下の機能が現在CodePlexからダウンロードしてすぐに試せる機能です。主に検証周りの新機能が多いです。
(1)テンプレート ヘルパー
新しく追加されたEditFor・DisplayForヘルパーメソッドは、ASP.NET Dynamic Dataのフィールドテンプレートと同種のテンプレートを持っています。Dynamic Data同様に特定の型が渡された時のユーザーコントロールを作成しておくことで、その型が渡された時に自動的に出力されます。
(2)エリア
エリアと呼ばれるグループ分けをサポート。大規模なWebアプリケーションを複数のプロジェクトに分ける手段の提供で、プロジェクト間のURLルーティング等もサポートされる予定です。
(3)データ アノテーションのサポート
検証ルールを宣言型で指定する検証機能の実装。ASP.NET MVCにASP.NET Dynamic Dataで最初に実装された機能が利用できるようになります。今回紹介したxValライクな検証を実現できます。
(4)クライアントサイドの検証
ASP.NET MVC V2では、標準でjQueryの検証プラグインjQuery.validateが含まれています。xValと同じような方法でクライアントサイドの検証が実現できます。xValとの違いは今後掲載予定のMVC V2の記事にて取り上げる予定です。
(5)モデル検証プロバイダ
検証ロジックに、モデルバインディングを検証するプロバイダの提供。既定の検証プロバイダはデータ アノテーションを使用します。
(6)メタデータプロバイダ
モデルオブジェクトのメタデータを設定するメタデータプロバイダの提供。こちらも既定の検証プロバイダはデータ アノテーションを使用します。
今後提供予定のベータで実装予定の新機能
今後提供予定のベータでは、ASP.NET V1とASP.NET V2 CTPに対するバグフィックスやコントローラー周りの新機能の追加が予定されています。
(1)その他の改善
ASP.NET MVC V1における既知の問題点のフィックスや、マイナーな新機能の他、フィードバックに基づくAPIの改善を行う予定です。
(2)非同期コントローラーアクション
コントローラーのアクション内で、Webサービスや対外サービスと非同期のやり取りができるように改善予定です。
(3)厳密な型付けによる入力ヘルパー
ASP.NET MVC V1で完全に実現できていなかった、厳密な型付けをデータ アノテーション属性を利用して行い、ヘルパー上でラムダ式を使った型付けを行うことでtypoを削減する予定。
まとめ
今回は、ASP.NET MVCの検証ツールxValの利用方法と、ASP.NET MVCとWebFormにおける互換性部分についてピックアップしました。
ASP.NET MVCが苦手としている検証をサポートするxValはASP.NET MVC V1において、検討の価値があるツールですので、評価したうえで導入していただければと思います。
また既存資産の流用ということで、前回のAJAX Control Toolkitの時にも触れましたが、一部のページ内でサーバーコントロールを利用することや、サードベンダーのコントロールも使い方さえ押さえれば利用できます。すべてのシナリオで必要になるような物ではありませんが、知っておくことで開発の手助けになる可能性もあります。
次回はひと足早いですが、ASP.NET 4.0の新機能を鳥瞰してみたいと思います。お楽しみに。