連載:〜ScottGu氏のブログより〜

ASP.NET MVC 1.0 RC版が公開

Scott Guthrie 著/Chica
2009/02/03
Page1 Page2 Page3 Page4

 本記事は、Microsoftの本社副社長であり、ASP.NETやSilverlightなどの開発チームを率いるScott Guthrie氏のブログを翻訳したものです。氏の許可を得て転載しています。
【元記事】 ASP.NET MVC 1.0 Release Candidate Now Available (2009/01/19)

 本日(2009年1月27日)、ASP.NET MVC 1.0 Release Candidate(RC)を出荷しました。ダウンロードはここをクリックしてください(注:このリンクは公開したばかりですので、もし動作しない場合は、数分間お待ちのうえ更新ボタンを押してください)。これはVisual Studio 2008およびVisual Web Developer 2008(無償)のどちらでも動作します。

 本日のRCは最終の“1.0”リリース前に出荷する、ASP.NET MVC最後のパブリック・リリースになります。

 バグ修正に加えて、本日のビルドにはいくつかの新機能が含まれています。またいくつかの既存機能もお客さまのフィードバックに基づいて更新されています。ASP.NET MVCのダウンロードに関するすべての変更については、リリース・ノートをお読みください。リリース・ノートには、ASP.NET MVCベータ版で構築した既存のアプリケーションをRC版へアップグレードする詳細な方法も含まれています。

Visual Studioのツール改善

 RC版にはVisual Studioの新しいツール機能が含まれています(ベータですでにサポートされているものは除きます。またそれらについては、ここでは触れません)。これらの機能には以下のものがあります。

■コントローラの追加コマンド

 ASP.NET MVCプロジェクト内で、[Ctrl]+[M]、[Ctrl]+[C]キーを押す、もしくはControllerフォルダ上で右クリックして、コンテキスト・メニューの項目から[Add]−[Controller]を選択すると、コントローラ・クラスを新規作成できます(図1)。


図1

 これにより[Add Controller]ダイアログが表示され、新規作成するコントローラの名前を指定することができ、オプションとして、自動で共通CRUDメソッドを“スキャフォールド”するかどうかも指定できます(図2)。


図2

 [Add]ボタンをクリックすると、コントローラ・クラスがプロジェクトに新規作成され、追加されます(図3)。


図3

■ビューの追加コマンド

 コントローラのアクション・メソッド上で、[Ctrl]+[M]、[Ctrl]+[V]キーを押す、もしくは、そのアクション・メソッド上で右クリックして、コンテキスト・メニューの項目から[Add View]を選択すると、ビューのテンプレートを新規作成できます(図4)。


図4

 これにより[Add View]ダイアログが表示され、名前を指定して新規ビューを作成することができます(コンベンション・ベースのオプションにより、前もってひも付けされています)。これは、“空の”ビュー・テンプレートを新規作成、もしくはコントローラのアクション・メソッドによりビューへ引き渡されたオブジェクトの型に基づいたビュー・テンプレートを自動生成/スキャフォールドすることができます。スキャフォールド基盤は、ビュー・テンプレートが作成されたときに、リフレクションを使用します。そうすることで、それに引き渡されたすべてのPOCO(Plain Old CLR Object)に基づいた新しいテンプレートをスキャフォールドできます。特別なORMやデータ実装に依存しません。

 例えば、以下では上記のアクション・メソッドから引き渡された一連のProductオブジェクトに基づいた“一覧”のビュー・テンプレートをスキャフォールドしたいことを示しています。


図5

 [Add]ボタンをクリックすると、デフォルトの“スキャフォールド”の実装により、\Views\Products\ディレクトリ内にビュー・テンプレートが作成されます(図6)。


図6

 その後アプリケーションを実行させ、/products URLをブラウザ内で要求すると、検索された製品の一覧を見ることができます(図7)。


図7

 RC版はビルトインされた数多くのスキャフォールド・テンプレート(“空”、“一覧”、“詳細”、“編集”、“新規作成”)とともに出荷されます(固有のスキャフォールド・テンプレートを追加することもできます)。

 例えば、製品の編集サポートを有効にする場合、以下のようにProductコントローラ上で“Edit”アクション・メソッドのHTTP-GET版を実装して、[Add View]コマンドを動作させることができます(図8)。


図8

 [Add View]ダイアログ内で“Product”オブジェクトをビューへ引き渡すことを指定し、それをスキャフォールドするために“編集”テンプレート・オプションを選択できます(図9)。


図9

 [Add]ボタンをクリックすると、\Views\Products\ディレクトリ内に、デフォルトの“スキャフォールド”が実装された編集用のビュー・テンプレートが作成されます(図10)。


図10

 その後アプリケーションを実行させ、/products/edit/1 URLをブラウザ内で要求すると、製品の詳細を編集できます(図11)。


図11

 編集した変更を保存するために、Productコントローラ上で“Edit”アクション・メソッドのHTTP-POST版を実装できます(図12)。


図12

 エラーが発生した場合(例:数値に対して誤った文字列が入力された場合)に、ビューを再表示させる方法を上記コードでご確認ください。“編集”、“新規作成”のスキャフォールド・テンプレートには、このエラーが発生したときに、ユーザーの入力値を保存して、無効な入力要素に赤い印を付けるために必要なHTML検証ヘルパー・メソッドが含まれています。


図13

 まったくそのままの状態でスキャフォールド・テンプレートを使用することはなく、結局完全に入れ替えることになるケースがほとんどだと思います。しかし、あらかじめ実装されていて、素早く実行でき、簡単に編集できる、最初のビュー・テンプレートがあることは非常に便利なことです。

 スキャフォールド基盤はすべての単純な古いCLRオブジェクト(=POCO)に対して、スキャフォールド・ビューをサポートしているため、ドメイン・モデル・オブジェクト(LINQ to SQL、LINQ to Entities、nHibernate、LLBLGen Pro、SubSonic、そのほかポピュラーなORM実装などでマッピングされたものを含む)とともにそれを使用したり、また独自のプレゼンテーション・モデル/ビュー・モデル・クラスでスキャフォールドを新規作成したりすることができます。

 

 INDEX
  〜ScottGu氏のブログより〜
  ASP.NET MVC 1.0 RC版が公開
  1.Visual Studioのツール改善(1)
    2.Visual Studioのツール改善(2)
    3.ビューの改善/フォーム送信の改善
    4.単体テストの改善/ファイル処理の改善/AJAXの改善
 
インデックス・ページヘ  「〜ScottGu氏のブログより〜」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間