Scaffolding(スキャフォールディング)とは
Scaffolding(スキャフォールディング)とは、データモデルとなる型を元に、いわゆるCRUD(Create/Read/Upadate/Delete)と呼ばれる追加、読込、変更、削除を行う画面とそのコードを自動で生成する機能のことです(図1)。Scaffoldingを和訳すると「足場」という言葉であり、その名のとおり少ない手間でアプリケーションの「足場」となる大枠の構造を作ることを目的としています。従って、Scaffoldingは完全なアプリケーションを作るための機能ではない、ということは認識しておく必要があります。
使いどころとしては、ほかのマスタとの関連がないシンプルなマスタメンテナンス機能の生成や、多少複雑な画面の「スケルトン」として使うといったものが考えられます。
ちなみに、ScaffoldingはASP.NET MVCでは初期のころからおなじみの機能でした。その機能をWebフォームアプリケーションでも使えるようにしようと、現在も開発が進められています。その成果の一部が、Visual Studio 2012向けの拡張機能として2013年2月にプレリリースされており、本稿ではこのバージョンのScaffolding機能について説明していきます。従って、正式にリリースされる機能とは一部異なる可能性があることを、あらかじめご了承ください。
また、今回は拡張機能を使用することから、「Visual Studio Express 2012 for Web」は対象外です。Professional以上のVisual Studioを持っていない方は、下記のページより90日評価版をダウンロードしてインストールしてみてください。
本稿で使用するScaffolding機能はプレリリースということもあって、いくつか制限事項があります。主なものを以下に示します。
- 関連付のデータモデル未サポート:会議室予約システムで言えば、MeetingRoomクラスの中にLocation型のフィールドを定義していますが、こういった他のデータモデルへの関連があるデータモデルについては、プレリリースでは対応していないということです。
- .NET 4.0およびVisual Basicプロジェクト未サポート:Scaffoldingを利用するには、必ず.NET 4.5のC#のプロジェクトである必要があります。
その他、詳しい情報は以下のblogエントリを参照ください。
なお、2013年10月17日にリリースされた最新のVisual Studio 2013には、WebフォームのScaffolding機能は付属していません。現在Visual Studio 2013 Update 1をターゲットとして、開発が進められているようです。以下のblogエントリより引用します。
"We removed WebForm Scaffolding from this release because it's not ready yet. We’ll put the new bits in future release, possibly targeting update 1."
(抄訳)まだ準備できていないため、Webフォームスキャフォールディングについては、今回のリリースから除外しました。我々は、将来のリリースで(おそらくUpdate 1をターゲットとして)その新機能を追加します。