ASP.NETでMVCプログラミング

近い将来、Visual Studio上でMVCモデルを使ったASP.NET Webアプリケーションの開発ができるようになります。今現在、すでにVisual Studio 2008とASP.NET3.5 Extensions Previewによりその基礎技術を知ることができます。今回はその概要についてのお話しをいたします。

MVCプログラミングの概要

MVCとは、Model, View, Controllerの頭文字をとって作られた造語で、複数のウィンドウが集まってひとつの系を成すようなプログラムを開発するための方法論です。Mode, View, Controllerと3つに分類されたオブジェクトが相互に情報をやり取りして動作します。

Modelは、画面に表示したいオブジェクトそのもので、データ管理だけを専門に行います。

Viewは、表示を引き受けるオブジェクトで、Modelオブジェクトを「どのように表示するか」を知っています。出力関連の処理を受け持つオブジェクトと考えることができます。また、1つのModelに対して複数のViewを作成することもでき、このときには同じModelの情報を異なった方法で表示することができるようになります。

Controllerは、ユーザーからの要求を受け付け、ModelやViewを操作します。入力関連の処理を受け持つオブジェクトと考えることができます。

MVCプログラミング手法は、おもにデスクトップアプリケーションの開発で使われているのですが、ASP.NETの環境でもMVCでプログラミングできるようになります。

開発環境

ASP.NETでMVCプログラミングを行うためには以下の環境が必要です。

OS: Windows Server 2003、Windows VistaまたはWindows XP

Framework: .NET Framework 3.5

DevEnv: 英語版Visual Studio 2008または英語版Visual Web Developer 2008 Express Edition

Etc: ASP.NET 3.5 Extensions Preview(※下記参照)

※以下のWeb Siteから「ASP.NET 3.5 Extensions Preview」をDownloadすることができます。

http://www.microsoft.com/downloads/details.aspx?FamilyId=A9C6BC06-B894-4B11-8300-35BD2F8FC908&displaylang=en

(私が確認したところ、日本語版Visual Studio 2008または日本語版Visual Web Developer 2008 Express Editionがインストールされた環境にASP.NET 3.5 Extensions Previewをインストールしても正しく動作しませんでした。具体的には、Web Project Template内に”ASP.NET MVC Web Application”が追加されませんでしたので、ASP.NET MVC Application Projectを作成することはできません。)

ASP.NET MVCアプリケーションの作成

上記開発環境が整いましたら、さっそくASP.NET MVC Webアプリケーションを作ってみましょう。Visual Studioプロジェクトテンプレートに”ASP.NET MVC Web Application”が追加されてますのでこのテンプレートを選択し、あたらしいMVCフレームワークを使ったWebアプリケーションを作成します。

ASP.NET MVCアプリケーションのデフォルトのディレクトリ構造には、/Model, /View, /Controllersの3つのディレクトリが作られ、Modelのコードは/Modelディレクトリの下、Viewのコードは/Viewディレクトリの下、Controllerのコードは/Controllerディレクトリの下にそれぞれ保存します。

MVCオブジェクトの依存関係

今までのASP.NET Webプログラミングでは、入ってくるURLに対応するWeb Formが必ず存在し、ここでHTTPリクエストを処理していました。たとえば、/WebApplication1/Default.aspx URLが送られてきたときには、WebApplication1/Default.aspx Web FormがこのHTTPリクエストを処理します。

MVCフレームワークでは、URLをControllerクラスに直接マップします。その為、各URLに対応したWeb Formは存在しません。Controllerクラスでは、入ってくるHTTPリクエストの処理、ユーザーの入力処理を行い、Modelオブジェクトにユーザー入力を通知し、Viewオブジェクトを呼び出し、それらのリクエストに対するHTML出力の生成を促します。

 

 

終わりに

ほんとに概要だけになってしまいました。

実は、ASP.NET 3.5 Extensions Previewには、ASP.NET MVCの他に、以下の機能が含まれております。

ASP.NET Dynamic Data

ASP.NET AJAX

ADO.NET Entity Framework

ADO.NET Data Services

Silverlight Controls for ASP.NET

もしこれらの機能に興味がありましたら、下記「ASP.NET 3.5 Extensions Previewに関するドキュメント」Web Siteをご覧になってください。

参考資料Web Site

ASP.NET 3.5 Extensions Previewに関するドキュメント

http://asp.net/downloads/3.5-extensions/

ASP.NET 3.5 Extensions PreviewのReadme

http://asp.net/downloads/3.5-extensions/readme/

ASP.NET 3.5 Extensions Preview QuickStart

http://quickstarts.asp.net/3-5-extensions/

ASP.NET MVC Toolkit

http://asp.net/downloads/3.5-extensions/MVCToolkit.zip

ScottGuさんのブログ

http://weblogs.asp.net/scottgu/archive/2007/12/09/asp-net-3-5-extensions-ctp-preview-released.aspx

http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx

http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx

http://weblogs.asp.net/scottgu/archive/2007/12/06/asp-net-mvc-framework-part-3-passing-viewdata-from-controllers-to-views.aspx

http://weblogs.asp.net/scottgu/archive/2007/12/09/asp-net-mvc-framework-part-4-handling-form-edit-and-post-scenarios.aspx