SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Scott Guthrie氏 Blog翻訳

ASP.NET MVC 3 (リリース候補版 2)のお知らせ

連載:ScottGu's Blog翻訳


  • 出力キャッシュの改善

     ASP.NET MVC 3の出力キャッシュシステムでは、コントローラのアクションメソッド上で[OutputCache]属性を宣言した時に、VaryByParamを指定する必要がなくなりました。MVC3は、アクションメソッド上に明示的なパラメータを持つ場合、自動的に出力キャッシュのエントリーを変化させ、以下のようなコードを使用して、アクション上の出力キャッシュをクリーンに有効化できます。

    caption

     ページ全体の出力キャッシュに加え、ASP.NET MVC 3はパーシャルページのキャッシュもサポートしているため、ある出力領域をキャッシュし、複数のリクエストまたはコントローラで再利用できます。パーシャルページのキャッシュに対する[OutputCache]ビヘイビアはRC2で更新され、トップレベルのリクエストのURL構造とは逆に、入力パラメータに基づいてサブコンテンツのキャッシュエントリが変化します。これにより、以前のRCでのビヘイビアに比べ、キャッシュのシナリオがより簡単で強力なものになります。

  • @model宣言は空白スペースを追加しない

     以前のプレビューでは、Razorビューのトップにある強く型付けされた@model宣言は、描画されたHTMLの出力へ空白行を追加しました。これは修正されたので、宣言により空白スペースは挿入されません。

  • 最初の利用価値のあるエラーメッセージを表示させるために"Html.ValidationMessage"メソッドを変更

     Html.ValidationMessageヘルパーのビヘイビアは更新され、最初のエラーをただ表示するのではなく、最初の利用価値のあるエラーメッセージを表示するように更新されました。

     モデルバインディングの間、ModelState辞書は、プロパティについてのエラーメッセージを持つ複数のソースから紐づけることができます。例えば、そのモデル自体(それがIValidatableObjectを実装している場合)、プロパティに適用された検証属性、またプロパティがアクセスされている間に投げられた例外などからです。

     Html.ValidationMessageメソッドが検証メッセージを表示している時、例外が含まれるモデル状態のエントリをスキップするようになりました。これは、それらのエントリが、通常エンドユーザに向けたものではないからです。その代わり、このメソッドは、例外に関連の無い最初の検証メッセージを探して、それを表示します。もしメッセージが見つからない場合は、最初の例外に関連づいている一般的なエラーメッセージをデフォルトとします。

  • RemoteAttribute 『Fields』から『AdditionalFields』

     ASP.NET MVC 3には、検証構造にビルトインのリモート検証サポートが追加されました。つまり、ユーザーが編集したフォームの入力要素が本当に有効なのかどうかを検証するために、ASP.NET MVC 3が使用したクライアントサイドの検証スクリプトライブラリが、サーバー上に公開しているコントローラへ自動的に呼び戻せるということです(リアルタイムで検証の更新ができるようになります)。

     これを行うには、モデル/ビューモデルのプロパティに[Remote]属性を添付します。これは、リモートで検証するために呼び出されるコントローラ/アクションを指定します。RCでは、この属性には『Fields』プロパティがあり、検証ロジックをサポートするために、クライアントからサーバーへ送られる入力要素を追加する時に使用します。このプロパティを分かりやすくするために、本日のRC2リリースで、『AdditionalFields』に名前変更しました。

  • ViewResult.ModelおよびViewResult.ViewBagプロパティ

     ViewResultクラスは、『Model』および『ViewBag』というプロパティを公開するようになりました。これにより、ビューを返すコントローラの単体テストがより簡単になり、ViewResult.ViewData.Modelプロパティを通じてモデルにアクセスせずによくなります。

インストレーション・ノート

 ASP.NET MVC 3 RC2ビルド版は、ここからダウンロードしてインストールできます。これは、以前のASP.NET MVC 3 RCリリース版上にインストールできます(セットアップの一部としてモジュールを少し入れ替えるだけになります)。

 上記のセットアップで更新されないコンポーネント(既にインストールされている場合)は、NuGetパッケージ・マネージャーです。既に、NuGetがインストールされている場合、Visual Studioエクステンションマネージャー([ツール]-[エクステンションマネージャー]のメニューオプション)を開いて[Update]タブをクリックしてください。その一覧に、NuGetがあるはずなので、横にある[Update]ボタンをクリックすると、本日のリリースにエクステンションが更新されます。

 NuGetがインストールされていない場合(またASP.NET MVC RCビルド版をインストールしていない場合)、NuGetはASP.NET MVC 3のセットアップでインストールされますので、他に何も手順はありません。

まとめ

 ASP.NET MVC 3の最終リリースにかなり近付いており、来月最終の『RTM』ビルド版を届ける予定です。ASP.NET MVC 2が出荷されてから、約7ヶ月しかたっていないのですが、チームがこのリリース版に追加してきた非常に多くの新機能や改善点(Razor、Unobtrusive JavaScript、NuGet、Dependency Injection、出力キャッシュなどなど)には本当に驚いています。これらについての詳細は、今後数週間に渡り、ブログ投稿していく予定です。

 Hope this helps,

 Scott

 P.S. ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Scott Guthrie氏 Blog翻訳連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト Chica(チカ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Guthrie(Scott Guthrie)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5664 2011/01/24 17:11

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー