BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース MVC Scaffolding - 設定の可能な ASP.NET MVC 用コード生成ツール

MVC Scaffolding - 設定の可能な ASP.NET MVC 用コード生成ツール

ブックマーク

原文(投稿日:2011/04/08)へのリンク

Steve Sanderson 氏が先日,ASP.NET MVC 3 用のコード生成ツール MVC Scaffolding を発表した。シンプルなコマンドラインインターフェースを備えた,カスタマイズ可能なテンプレートベースのコード自動生成ツールだ。添付の標準テンプレートで View や Action,あるいは Unit Test スタブなどといった,数多くの汎用的要素の自動生成を実現している。

現在ベータ版 が,NuGet パッケージ管理ツール を通じて無償公開されている。インストールには,パッケージマネージャのコンソールウィンドウから Install Package MvcScaffolding と入力すればよい。インストールが完了すれば,Get-Scaffolder コマンドで使用可能な scaffolder がすべて表示される。scaffolder というのは PowerShell スクリプトに,コードの生成方法を定義する T4 テンプレート のセットを組み合わせたものだ。Set-DefaultScaffolder と Get-DefaultScaffolder コマンドを使えば, scaffolder 名称のエイリアスを設定あるいは参照することができる。

"Controller" scaffolder は,モデルの生成(Create),参照(Read),更新(Update),削除(Delete) ビューと,付属するコントローラおよびコンテキストを自動生成する。 また "View" scaffolder には,webforms 用と Razor ビューエンジン用が用意されている。基本的なバリデーション処理も含まれているので,生成されたビューには NULL 設定不可なタイプのフィールドが必要だ。リポジトリの生成を行うこともできる。-Repository オプションフラグを指定すれば,モデルに基づいたレポジトリクラスとインターフェース,およびそのインターフェースでのみ動作するコントローラが生成される。その他パラメータには ControllerName, ModelType,Project, CodeLanguage, DbContextType, Area, Layout, Force, NoChildItems などがある。

Action の生成も可能だ。Scaffold Action コマンドが,指定されたコントローラにアクション用のメソッドを追加する。アクションのビューも同時に生成される。WithViewModel スイッチを使用すれば,アクションに対応した ViewModel クラスが生成されて,コントローラと生成されたビューの内部に接続される。Post フラグを指定すれば,アクションからの HTTP POST を処理するメソッドスタブが生成される。

Scaffild UnitTest コマンドは,Action と後処理(post-handling) Action 両方のテストスタブを生成するものだ。WithViewModel や ViewModel などのオプションパラメータで,テストスタブが特定のモデルタイプを使用するような設定もできる。"ActionWithUnitTest" scaffoler は,この Action と UnitTest 2つの Scaffolder を,単一のコマンドにまとめたものだ。

ビュー,データベースコンテキスト,アクション,レポジトリ,そして Unit Test などのにも,それぞれ scaffolder が用意されている。今後の開発で,さらに多くのものが追加される予定だ。

"CustomTemplate" scaffolder を使って,テンプレートをオーバーライドすることもできる。これを使用すると,CustomTemplate フォルダに編集可能な T4 テンプレートが生成される。このフォルダにあるテンプレートが,同じ名称の標準テンプレートよりも常に優先的に選択される,という仕組みだ。

ASP.NET MVC 3 は,Model-View-Controller パターンを使用して Web アプリケーション構築するための .NET フレームワークである。このパターンでは Model がデータを,View がモデル特有の表示形式を表現し,Controller がユーザの入力に基づいた Model と View の調整役を果たす。必要なだけのデータをビューに渡すために,ViewModel が導入される場合もある。

この記事に星をつける

おすすめ度
スタイル

BT