連載:〜ScottGu氏のブログより〜ASP.NET MVC 1.0 RC版が公開Scott Guthrie 著/Chica 訳2009/02/03 |
|
|
本日(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氏のブログより〜」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|