更新された機能
このバージョンで最も重要なことは、更新されたASP.NET MVC検証システムです。 この記事でイノベーションについて詳しく読むことができますが、ここでは簡単な説明のみを行います。 以前は、ASP.NET MVCの検証はフォームで機能していました。つまり、サーバーに送信されたフィールドのみがサーバー検証の対象でした。 この動作は開発者には透過的ではありませんでした。多くの人は、モデルフィールドの検証ルールを定義すると、モデル全体が常に検証されると考えていました。 しかし、これはそうではありませんでした。 現在、検証メカニズムはモデルによって反発されているため、どのモデルデータがフォームから取得されたかは関係ありません;データがバインドされると、検証はモデルのすべての要素に適用されます。
この革新により、サーバー検証動作は開発者にとってより透明になりますが、すべてのセキュリティ問題が完全に解決されるわけではありません。 これらのセキュリティ問題の詳細については、私の記事をご覧ください 。
その他の修正
ASP.NET MVC 2 RCの新しいバージョンには、かなり多数の小さな変更があります。
- MicrosoftAjax.jsファイルはプロジェクトで更新され、そのバージョンはASP.NET 4に含まれるASP.NET Ajaxの最新バージョンに対応し、 ASP.NET 3.5 SP1もサポートされています。
- フレームワークの多くの場所でパフォーマンスが向上しました。
- TempDataDictionaryに Peekメソッドが含まれるようになりました。これにより、コレクションから削除せずにデータを取得できます。
- 現在、デフォルトでは、 Html.EditorForおよびHtml.DisplayForフォームマークアップは単純なデータに対してのみ、複雑なデータに対しては独自のテンプレートを作成することが提案されています。
- コンテキストメニューの[ビューの追加]コマンドを使用して、データを削除するビューを作成できるようになり、既存のリストビューにリストアイテムを削除するリンクが含まれるようになりました。
- ヘルパー検証メソッドは、レンダリング時にid属性にform0プレフィックスを追加しなくなりました。
- 入力フィールドをレンダリングするヘルパーメソッドは、レンダラーがコレクションまたは配列要素である場合、 name属性の正しい値を生成するようになりました。
- ルーティング後、コントローラーメソッドを呼び出す前に、MVCのルーティングメカニズム( MvcHandler )がRouteData.Valuesパラメーターコレクションからこのパラメーターを削除できるように、ルートパラメーターに割り当てることができるOptionalプロパティのみを持つUrlParameterタイプを追加しました。 これにより、ルートパラメータ名とモデル名の競合を回避できます。 このイノベーションは、 ASP.NET MVC 2 Webアプリケーションプロジェクトですでに使用されています 。
- スタイル付きの小さなファイルが空のMVCプロジェクトに追加され、デフォルトで補助検証メソッドで使用されます。
- T4テンプレートは、生成されたファイルの拡張子を指定できるようになりました。
バグ修正
このリリースでは、いくつかのバグが修正されています。
- TempStateにデータがない場合、 SessionStateTemDataProviderはセッションのTempData値を保存しなくなりました 。
- FormCollectionクラスのGetValueメソッドは、パラメータの空行を取得できるようになりました(これが必要なときにすぐに言うのは難しいと思います)。
- これで、 送信ボタンのクライアント検証をプログラムで無効にできるようになりました。以前は、 送信入力要素にname属性が含まれている必要がありました。
- 失敗した場合のクライアント検証により、フォームからのAjax要求が阻止されるようになりました。
おわりに
ご覧のとおり、修正のリストは膨大です。 多くの修正はマイナーであるか、ほとんど影響しませんが、重要な役割を果たす修正があり、ASP.NET MVC開発者から知ることが非常に望ましいです。 この記事がASP.NET MVC 2の新しいバージョンを理解し、基本的な理解を得るのに役立つことを願っています。
以前のいくつかのASP.NET MVC 2テストリリースと同様に、このリリースはVisual Studio 2010 (ベータ2以前)と互換性がありません。 VS2010があるシステムへのインストールはサポートされていません。 まもなく登場するVS2010 RCには、ASP.NET MVC 2の最終バージョンが含まれることが予想されます。仕事でVisual Studio 2010を使用する人は、それを待つことをお勧めします。
このページからASP.NET MVC 2 RC2をダウンロードできます。リリースノート(.doc)もあります。
ASP.NET MVC 2のこのバージョンのソースコードはこちらからダウンロードできます。MVCFuturesのソースコードもあります。