<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>大人しい独り言 : ASP.NET MVC</title><link>http://blogs.msdn.com/mikion/archive/tags/ASP.NET+MVC/default.aspx</link><description>Tags: ASP.NET MVC</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>[ASP.NET MVC] Hello, World</title><link>http://blogs.msdn.com/mikion/archive/2008/09/05/asp-net-mvc-hello-world.aspx</link><pubDate>Thu, 04 Sep 2008 17:26:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8924475</guid><dc:creator>mikion</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mikion/comments/8924475.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mikion/commentrss.aspx?PostID=8924475</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mikion/rsscomments.aspx?PostID=8924475</wfw:comment><description>&lt;p&gt;昨日は ASP.NET MVC のインストール方法について簡単にご紹介しましたので、今後何回かに渡って ASP.NET MVC のプログラミングについてご紹介していきたいと思います。   &lt;br /&gt;&lt;font color="#808080"&gt;# 不定期になるとは思いますが。。&lt;/font&gt;    &lt;br /&gt;まずはじめは、やはり Hello, World から、ということで。    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;ではさっそく ASP.NET MVC の Hello, World アプリケーションを作っていきたいと思います。    &lt;br /&gt;なお、ASP.NET MVC は現時点での最新 CTP 版である Preview 5 を使用していますが、前 CTP バージョンの Preview 4 でも同じコードで動作します。    &lt;br /&gt;    &lt;br /&gt;Visual Studio で &amp;quot;ASP.NET MVC Web Application&amp;quot; プロジェクトテンプレートを選択し、新規プロジェクトを作成します。    &lt;br /&gt;&lt;font color="#808080"&gt;# ここでは言語は C# を使用しますが、もちろん Visual Basic .NET でも OK です。&lt;/font&gt;    &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_22.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="399" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_10.png" width="500" border="0" /&gt;&lt;/a&gt;    &lt;br /&gt;プロジェクト名はとりあえず &amp;quot;HelloMvc&amp;quot; としておきます。    &lt;br /&gt;    &lt;br /&gt;プロジェクトができますと、最初からいろいろとフォルダやファイルが作られています。    &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_24.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="413" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_11.png" width="378" border="0" /&gt;&lt;/a&gt;    &lt;br /&gt;Controllers、Models、Views フォルダは、それぞれ MVC パターンのController/Model/View に対応するソースコードを格納する場所になります。    &lt;br /&gt;プロジェクトの雛型ではあらかじめサンプルとなる実装コードがいくつか作らてた状態になっていますので、今回の実装で不要なフォルダ・ファイルを削除しておきます。    &lt;br /&gt;    &lt;br /&gt;削除するのは、以下のフォルダ・ファイルです。&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Controllers フォルダ内のファイル     &lt;br /&gt;AccountController.cs と HomeController.cs &lt;/li&gt;    &lt;li&gt;Views フォルダ内にあるフォルダ     &lt;br /&gt;Accout、Home、および Shared&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;削除した後は以下のようなプロジェクト構成になっています。   &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_26.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="311" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_12.png" width="375" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;    &lt;br /&gt;これで Hello, World のプログラミングを始められる状態になりました。    &lt;br /&gt;    &lt;br /&gt;ここからが本番です。    &lt;br /&gt;まずは MVC の C に相当する Controller を実装します。    &lt;br /&gt;    &lt;br /&gt;Controllers フォルダを右クリックして、新しい項目画面を表示します。    &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_28.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="333" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_13.png" width="400" border="0" /&gt;&lt;/a&gt;    &lt;br /&gt;そしてテンプレートで &amp;quot;MVC Controller Class&amp;quot; を選択します。    &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_30.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="360" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_14.png" width="504" border="0" /&gt;&lt;/a&gt;    &lt;br /&gt;ここでは Controller クラス名を &amp;quot;HelloContorller&amp;quot; とします。(ファイル名は HelloController.cs)    &lt;br /&gt;Controller クラスは必ず接尾子(Post-fix)を &amp;quot;Controller&amp;quot; とする必要があります。    &lt;br /&gt;ですので、ここでは &amp;quot;Hello&amp;quot; という名前の Controller を作りたいので、Controller クラス名は &amp;quot;HelloController&amp;quot; としました。    &lt;br /&gt;    &lt;br /&gt;生成された HelloController.cs を開くと、以下のようなコードが記述されています。    &lt;br /&gt;    &lt;br /&gt;HelloController.cs&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:97c9514e-5e7c-47a5-a39e-234914e0e78c" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#:nogutter:nocontrols"&gt;namespace HelloMvc.Controllers {

	public class HelloController : Controller {

		public ActionResult Index() {
			// Add action logic here
			throw new NotImplementedException();
		}

	} // End of class

} // End of namespace&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Controller クラスのメソッドは &amp;quot;アクションメソッド&amp;quot; と呼ばれ、アプリケーションがこのアクション メソッドに該当するリクエスト (アクション) を受けたときに呼び出されます。
  &lt;br /&gt;&lt;font color="#808080"&gt;# 上記コードでは Index メソッドがアクションメソッドに相当します。&lt;/font&gt;

  &lt;br /&gt;ASP.NET MVC のデフォルト設定では、例えばアプリケーションを &lt;a href="http://hoge.net/"&gt;http://hoge.net/&lt;/a&gt; でホストしているとすると、&lt;a href="http://hoge.net/Hello/World"&gt;http://hoge.net/Hello/World&lt;/a&gt; というアドレスでアクセスされた場合に、HelloController クラスの World メソッドが呼び出されることになります。

  &lt;br /&gt;

  &lt;br /&gt;アクションメソッドの中では、対応するビジネスロジックの呼び出しや View (画面) に引き渡す Model (データ) の生成・取得処理を行い、表示する View の決定を行います。

  &lt;br /&gt;また、アクションメソッドの戻り値は通常 ActionResult 型を返すようにします。

  &lt;br /&gt;&lt;font color="#808080"&gt;# ちなみに、のちのちご紹介することになると思いますが、ActionResult 型以外の値を返すことも可能ではあります。&lt;/font&gt;

  &lt;br /&gt;

  &lt;br /&gt;さて、ここでは http://ホスト/Hello/World というリクエストを受けて &amp;quot;Hello, ASP.NET MVC !&amp;quot; というメッセージを返す画面を表示させるようにしたいと思いますので、World という名前のアクションメソッドを実装します。

  &lt;br /&gt;

  &lt;br /&gt;HelloController.cs&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:3c115958-6fea-43a1-bf77-cda4cbe53a3d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#:nogutter:nocontrols"&gt;namespace HelloMvc.Controllers {

	public class HelloController : Controller {

		public ActionResult World() {
			return View( "World" ); // "World" という名前の View を表示する
		}

	} // End of class

} // End of namespace&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;World メソッドの中では View() メソッドを呼び出しています。このメソッドは View を表示される際に使用するメソッドであり、引数で表示したい View 名を指定しています。
  &lt;br /&gt;なお、View() メソッドで View 名の指定を省略した場合はアクションメソッドと同じ名前の View を表示させることになりますので、上記の World メソッドは、

  &lt;br /&gt;&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:ed7c83a2-fe52-4ccc-9547-14f5f68dbd95" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#:nogutter:nocontrols"&gt;public ActionResult World() {
	return View(); // "World" という名前の View を表示する
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
  &lt;br /&gt;と、引数を省略することができます。

  &lt;br /&gt;

  &lt;br /&gt;次にせっかくなので Model を使って View にデータを渡してみたいと思います。

  &lt;br /&gt;View には &amp;quot;Hello, ASP.NET MVC !&amp;quot; とともに現在の時刻を表示するようにしましょう。

  &lt;br /&gt;

  &lt;br /&gt;ASP.NET MVC では Model にはさまざまなタイプのオブジェクトを使用することができます。

  &lt;br /&gt;&lt;font color="#808080"&gt;# LINQ to SQL のエンティティ、ADO.NET Entity Framework のエンティティ、DataSet、あるいは POCO(=Plain Old CLR Object：ノーマルな.NET オブジェクトのことです) などなど ...&lt;/font&gt;

  &lt;br /&gt;また、Controller から View に対して Model を渡す際には、&amp;quot;型付けされた (Typed)&amp;quot;形式と&amp;quot;型付けされていない (Untyped)&amp;quot;形式の 2 つの形式を使用することができるのですが、今回は&amp;quot;型付けされていない&amp;quot;形式を使用したいと思います。

  &lt;br /&gt;この&amp;quot;型付けされていない&amp;quot;形式を使用して Controller から View に対して Model を渡すには、ViewData というそのまんまな名前の汎用の&amp;quot;入れ物&amp;quot;を使用します。

  &lt;br /&gt;

  &lt;br /&gt;HomeController.cs&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:2007192a-773f-4dbd-861e-220c2b89a66c" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#:nogutter:nocontrols"&gt;public class HelloController : Controller {

	public ActionResult World() {
		ViewData["Time"] = DateTime.Now;
		return View(); // "World" という名前の View を表示する
	}

} // End of class&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ViewData は辞書形式のコレクションですので、キーを指定して値をセットします。
  &lt;br /&gt;

  &lt;br /&gt;

  &lt;br /&gt;以上で Controller が実装できましたので、次に View を作りたいと思います。

  &lt;br /&gt;

  &lt;br /&gt;ASP.NET MVC の View は ASP.NET の通常の WebForm と同じ .aspx 拡張子をもったファイルとコードビハインドファイル (.aspx.cs) によって実装していきますが、微妙に通常の WebForm とは異なります。

  &lt;br /&gt;また、ASP.NET MVC では View のディレクトリ階層がルール化されており、Views フォルダ以下に Controller 名と同じフォルダを作成し、その中に View を配置していく必要があります。

  &lt;br /&gt;

  &lt;br /&gt;今回の例では Controller 名は &amp;quot;Hello&amp;quot; (HelloController から Controller を除いたもの) になりますので、Views フォルダの中に Hello フォルダを作成します。

  &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_32.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="333" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_15.png" width="273" border="0" /&gt;&lt;/a&gt;

  &lt;br /&gt;

  &lt;br /&gt;つづいて、作った Hello フォルダの中に ASP.NET MVC の View を追加します。

  &lt;br /&gt;Hello フォルダを右クリックして新しい項目の追加画面を表示し、テンプレートは &amp;quot;MVC View Page&amp;quot; を選択します。

  &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_34.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="356" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_16.png" width="500" border="0" /&gt;&lt;/a&gt;

  &lt;br /&gt;そして、ファイル名は &amp;quot;World.aspx&amp;quot; にします。

  &lt;br /&gt;

  &lt;br /&gt;World.aspx には &amp;quot;Hello, ASP.NET MVC !&amp;quot; というメッセージと、Controller で ViewData に入れられた現在時刻値を表示させますので、コメント以下の1行を追加します。

  &lt;br /&gt;

  &lt;br /&gt;World.aspx&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:74351226-c8dd-419d-9cd3-86fa1cb77d67" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="xml:nogutter:nocontrols"&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeBehind="World.aspx.cs" Inherits="HelloMvc.Views.Hello.World" %&amp;gt;

&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;

&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;
&amp;lt;head runat="server"&amp;gt;
    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
	&amp;lt;!-- ここにWelcomeメッセージと現在時刻を表示 --&amp;gt;
	Hello, ASP.NET MVC !&amp;lt;br /&amp;gt;Now: &amp;lt;%= ViewData["Time"] %&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&amp;lt;%= %&amp;gt; コードブロックを使用し、その中で ViewData の値を取得しています。
  &lt;br /&gt;

  &lt;br /&gt;

  &lt;br /&gt;以上で View の実装は終了です。

  &lt;br /&gt;

  &lt;br /&gt;

  &lt;br /&gt;最後に URL ルーティングのルールを少し調整します。

  &lt;br /&gt;URL ルーティングの設定がある Global.asax.cs (Global.asax のコードビハインド) を開きます。

  &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_36.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="311" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_17.png" width="270" border="0" /&gt;&lt;/a&gt;

  &lt;br /&gt;

  &lt;br /&gt;Global.asax.cs の中では、MvcApplication クラスの RegisterRoutes メソッドの中で URL ルーティングのルールの登録処理を行っています。

  &lt;br /&gt;ですので、URL のルーティングを調整したい場合にはこの RegisterRoutes メソッドの中を修正していくことになります。

  &lt;br /&gt;

  &lt;br /&gt;Global.asax.cs&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:a51e23c5-ab69-423c-a649-6a879f097518" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#:nogutter:nocontrols"&gt;	public class MvcApplication : System.Web.HttpApplication {

		public static void RegisterRoutes( RouteCollection routes ) {
			routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" );

			routes.MapRoute(
					"Default",                                              // Route name
					"{controller}/{action}/{id}",                           // URL with parameters
					new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
			);

		}

		protected void Application_Start() {
			RegisterRoutes( RouteTable.Routes );
		}

	} // End of class&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;URL ルーティングの詳細につきましては追々ご紹介していきたいと思いますが、ポイントだけ簡単に。
  &lt;br /&gt;このコードでは、routes.MapRoute() メソッドを使用して URL のルーティングルールを追加しています。

  &lt;br /&gt;1番目の引数の &amp;quot;Default&amp;quot; は登録する URL ルーティング ルールの名前です。

  &lt;br /&gt;2番目の引数が URL ルーティング ルールそのもので、このデフォルト設定では http://&lt;font color="#ff0000"&gt;ホスト&lt;/font&gt;/&lt;font color="#ff0000"&gt;Controller名&lt;/font&gt;/&lt;font color="#ff0000"&gt;アクション名&lt;/font&gt;/&lt;font color="#ff0000"&gt;ID&lt;/font&gt; というパターンで Controller ならびにそのアクションメソッドを呼び出す、というルールが設定されています。

  &lt;br /&gt;&lt;font color="#808080"&gt;# なお、最後の ID はアクションメソッド側で明示的に受け取るようになっていない場合は省略可能です。&lt;/font&gt;

  &lt;br /&gt;そして3番目の引数がデフォルト、つまり http://&lt;font color="#ff0000"&gt;ホスト&lt;/font&gt;/ という、Controller名やアクション名を省略したリクエストが来た場合の設定であり、匿名クラスを使用してURL ルーティング ルールに必要なパラメータの値を設定しています。ここでは Controller 名が &amp;quot;Home&amp;quot; でアクション名が &amp;quot;Index&amp;quot; となっています。

  &lt;br /&gt;

  &lt;br /&gt;ここでは、URL ルーティング ルール自体はこのまま使用したいと思いますが、デフォルトで呼び出される Controller名とアクション名はそれぞれ &amp;quot;Hello&amp;quot; と &amp;quot;World&amp;quot; に変更しておきたいと思います。

  &lt;br /&gt;

  &lt;br /&gt;Global.asax.cs&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:762c99cd-561c-4ef1-876a-0b803a359c75" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#:nogutter:nocontrols"&gt;		public static void RegisterRoutes( RouteCollection routes ) {
			routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" );

			routes.MapRoute(
					"Default",                                              // Route name
					"{controller}/{action}/{id}",                           // URL with parameters
					new { controller = "Hello", action = "World", id = "" }  // Parameter defaults
			);

		}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;以上ですべての実装が終わりです。
  &lt;br /&gt;

  &lt;br /&gt;さっそく実行してみましょう。

  &lt;br /&gt;Visual Studio で [F5] キーを押下し、デバッグ実行を開始します。

  &lt;br /&gt;

  &lt;br /&gt;なお、デバッグ実行した際には、こんなメッセージ

  &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_38.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="146" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_18.png" width="284" border="0" /&gt;&lt;/a&gt;

  &lt;br /&gt;や、こんなメッセージ

  &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_40.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="154" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_19.png" width="324" border="0" /&gt;&lt;/a&gt;

  &lt;br /&gt;が表示されることがありますが、それぞれのデバッグを有効にする場合にはメッセージに従ってデバッグが有効になるよう設定してください。

  &lt;br /&gt;

  &lt;br /&gt;実行した結果がこちらです。ちゃんとメッセージと時間が表示されています。

  &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_42.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="206" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_20.png" width="454" border="0" /&gt;&lt;/a&gt;

  &lt;br /&gt;

  &lt;br /&gt;先ほど URL ルーティングのデフォルト設定を変更しましたので、ルートパス &lt;a href="http://localhost:54369/"&gt;http://localhost:54369/&lt;/a&gt; の呼び出して HelloController の World アクションメソッドが実行されています。

  &lt;br /&gt;当然ですが、URL を &lt;a href="http://localhost:54369/Hello/World"&gt;http://localhost:54369/Hello/World&lt;/a&gt; とタイプして実行しますと、同じくHelloController の World アクションメソッドが実行された結果が表示されます。

  &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_44.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="202" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCHelloWorld_14903/image_thumb_21.png" width="450" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;

  &lt;br /&gt;

  &lt;br /&gt;以上が ASP.NET MVC の Hello, World アプリケーションでした。

  &lt;br /&gt;

  &lt;br /&gt;次回以降はもう少し細かいところに踏み入った話ができればと思っています。&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8924475" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mikion/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item><item><title>ASP.NET MVC Preview 5 のインストール</title><link>http://blogs.msdn.com/mikion/archive/2008/09/03/asp-net-mvc-preview-5.aspx</link><pubDate>Wed, 03 Sep 2008 12:05:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8921685</guid><dc:creator>mikion</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mikion/comments/8921685.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mikion/commentrss.aspx?PostID=8921685</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mikion/rsscomments.aspx?PostID=8921685</wfw:comment><description>&lt;p&gt;ASP.NET MVC の最新 CTP (Community Technology Preview) である Preview 5 が公開されていますので、早速インストールしてみました。   &lt;br /&gt;    &lt;br /&gt;ASP.NET MVC はまだ英語版環境での使用しか考慮されていないようで、日本語環境でちゃんと使えるようにするには、インストール後に若干作業が必要になります。    &lt;br /&gt;ですので、簡単にインストール手順をまとめておきます。    &lt;br /&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Visual Studio 2008 もしくは &lt;/strong&gt;&lt;a href="http://go.microsoft.com/?LinkId=9348305" target="_blank"&gt;&lt;strong&gt;Visual Web Developer 2008 Express Edition&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; をインストール。       &lt;br /&gt;&lt;/strong&gt;なお、Visual Studio 2008 を使用される場合は SP1 が別途提供されていますので、できれば SP1 もインストールされることをお勧めします。      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=27673C47-B3B5-4C67-BD99-84E525B5CE61&amp;amp;displaylang=ja" target="_blank"&gt;Visual Studio 2008 SP1 (iso イメージ)&lt;/a&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;ASP.NET MVC Preview 5 をダウンロード。       &lt;br /&gt;&lt;/strong&gt;以下の CodePlex サイトからダウンロードします。      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16775" target="_blank"&gt;ASP.NET MVC CodePlex Preview 5 Installer + Source&lt;/a&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="220" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_thumb.png" width="376" border="0" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;ASP.NET MVC Preview 5 をインストール。&lt;/strong&gt;      &lt;br /&gt;2. でダウンロードした AspNetMVCPreview5-setup.msi を実行します。      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="200" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_thumb_1.png" width="256" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;      &lt;br /&gt;特に指定するパラメータなどはありませんので、さくっとインストールできるかと思います。      &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;ASP.NET MVC の Visual Studio 用 項目テンプレート (ItemTemplate) のコピー。&lt;/strong&gt;      &lt;br /&gt;&lt;a href="http://codezine.jp/article/detail/2748?p=1" target="_blank"&gt;こちらの記事&lt;/a&gt;でも言及されている通り、ASP.NET MVC のインストーラでセットアップしただけですと Visual Studio の項目テンプレート (「新規アイテムの追加」ででてくるコードの雛型となる項目) が英語環境用(1033)にしかセットアップされませんので、日本語環境(1041)で ASP.NET MVC の項目テンプレートを使用できるようにするには、各プログラム言語 (C# と Visual Basic .NET) の英語環境用にインストールされた項目テンプレートを日本語環境用にコピーする必要があります。      &lt;br /&gt;      &lt;br /&gt;ASP.NET MVC の各プログラミング言語用の項目テンプレートは以下のディレクトリにインストールされています。      &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;[C#用]&lt;/strong&gt;      &lt;br /&gt;&lt;em&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC&lt;/em&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;strong&gt;[Visual Basic .NET 用]&lt;/strong&gt;      &lt;br /&gt;&lt;em&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\VisualBasic\Web\MVC&lt;/em&gt;      &lt;br /&gt;      &lt;br /&gt;      &lt;br /&gt;&amp;quot;MVC&amp;quot; フォルダの下にある英語環境用の項目テンプレートが格納されている &amp;quot;1033&amp;quot; フォルダ。      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_18.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="274" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_thumb_8.png" width="320" border="0" /&gt;&lt;/a&gt;      &lt;br /&gt;      &lt;br /&gt;&amp;quot;1033&amp;quot; フォルダの中にある項目テンプレートの ZIP ファイル。      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_14.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="95" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_thumb_6.png" width="370" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;      &lt;br /&gt;      &lt;br /&gt;ここから、日本語環境でも ASP.NET MVC の項目テンプレートが使用できるようにするため、項目テンプレートファイルをコピーします。      &lt;br /&gt;      &lt;br /&gt;以下のように&amp;quot;1041&amp;quot;フォルダ (日本語環境用フォルダ) を作成し、その中に &amp;quot;1033&amp;quot; フォルダの中身をコピーします。      &lt;br /&gt;&lt;font color="#808080"&gt;# &amp;quot;1033&amp;quot; フォルダを丸ごとコピーして &amp;quot;1041&amp;quot; にリネームしても結構です。&lt;/font&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_22.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="295" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_thumb_10.png" width="320" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;      &lt;br /&gt;このコピー作業を C# 用と Visual Basic .NET 用の2つのディレクトリともに行います。      &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;コピーした項目テンプレートを Visual Studio に反映 (インストール)&lt;/strong&gt;      &lt;br /&gt;4. でコピーしただけでは Visual Studio では項目テンプレートが認識されませんので、Visual Studio のテンプレートインストールコマンドを実行して、コピーした項目テンプレートを Visual Studio で使えるようにします。      &lt;br /&gt;      &lt;br /&gt;まず、&amp;quot;Visual Studio 2008 コマンドプロンプト&amp;quot; を起動します。Windows Vista で UAC を有効にしている場合は&amp;quot;管理者として実行&amp;quot;するのをお忘れなく。      &lt;br /&gt;&lt;font color="#808080"&gt;# Visual Studio 2008 コマンドプロンプトではなく、通常のコマンドプロンプトでも問題ありませんが、devenv.exe (Visual Studio 2008) へのパスが通っている Visual Studio 2008 コマンドプロンプトを使った方が楽なので、ここでは Visual Studio 2008 コマンドプロンプトを使用しています。&lt;/font&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="300" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_thumb_3.png" width="362" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;      &lt;br /&gt;コマンドプロンプトを起動したら、      &lt;br /&gt;      &lt;br /&gt;devenv /InstallVSTemplates      &lt;br /&gt;      &lt;br /&gt;とコマンドを実行し、4. でコピーした項目テンプレートを Visual Studio にインストールします。      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_12.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="85" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_thumb_5.png" width="407" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;      &lt;br /&gt;エラーメッセージが出なければ、項目テンプレートのインストールはバッチリ完了しているはずです。      &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;以上でインストールは終わりです。   &lt;br /&gt;    &lt;br /&gt;これで、Visual Studio 2008 で [ファイル] &amp;#8594; [新規作成] &amp;#8594; [プロジェクト] を開きますと ...    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="321" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_thumb_2.png" width="402" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;このように &amp;quot;ASP.NET MVC Web Application&amp;quot; というプロジェクト テンプレートが選択可能になり、作成した ASP.NET MVC のプロジェクトから「新規項目」を追加しようとすると ...    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_24.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="290" alt="image" src="http://blogs.msdn.com/blogfiles/mikion/WindowsLiveWriter/ASP.NETMVCPreview5_FDD4/image_thumb_11.png" width="404" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;このように ASP.NET MVC 用の各項目テンプレートが選択できるようになります。    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;ここから実際に ASP.NET MVC のプログラミングを行っていくわけですが、ASP.NET MVC Preview 5 でのプログラミングにつきましては追々こちらでご紹介していきたいと思います。&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8921685" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mikion/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item><item><title>[TechEd 2008 Yokohama] ASP.NET MVC セッションのデモ</title><link>http://blogs.msdn.com/mikion/archive/2008/09/02/teched-2008-yokohama-asp-net-mvc.aspx</link><pubDate>Tue, 02 Sep 2008 13:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8919751</guid><dc:creator>mikion</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mikion/comments/8919751.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mikion/commentrss.aspx?PostID=8919751</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mikion/rsscomments.aspx?PostID=8919751</wfw:comment><description>&lt;P&gt;こちらの Blog に複数ファイルをアタッチする方法がわからなかったため(汗)、デモのサンプルアプリケーションはこちらで公開させて頂きます。&lt;BR&gt;大したサンプルではないですが、ASP.NET MVC における Model-View-Controller の実装とLINQ to SQL と組み合わせた CRUD 処理の実装方法の基本的な部分はおわかり頂けるかと思いますので。。&lt;BR&gt;(本投稿の一番下の"&lt;STRONG&gt;Attachment(s):&lt;/STRONG&gt;" にリンクがあります)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8919751" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/mikion/attachment/8919751.ashx" length="896709" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/mikion/archive/tags/_A430D930F330C8302600_amp_3B00BB30DF30CA30FC30_/default.aspx">イベント&amp;amp;セミナー</category><category domain="http://blogs.msdn.com/mikion/archive/tags/TechEd/default.aspx">TechEd</category><category domain="http://blogs.msdn.com/mikion/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item><item><title>[TechEd 2008 Yokohama] ASP.NET MVC のセッションPPT</title><link>http://blogs.msdn.com/mikion/archive/2008/09/02/teched-2008-yokohama-asp-net-mvc-ppt-demo.aspx</link><pubDate>Tue, 02 Sep 2008 13:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8919735</guid><dc:creator>mikion</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mikion/comments/8919735.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mikion/commentrss.aspx?PostID=8919735</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mikion/rsscomments.aspx?PostID=8919735</wfw:comment><description>&lt;p&gt;大変ご無沙汰しています、マイクロソフトの中原です。&lt;br&gt;&lt;/p&gt; &lt;p&gt;先週の TechEd で「&lt;strong&gt;T2-402：ASP.NET MVC Framework 概説 ～.NET Web アプリケーション開発のパラレルワールド!?～&lt;/strong&gt;」というタイトルのセッションを担当させて頂きましたので、そちらのセッションスライドをこちらにアップさせていただきます。&lt;br&gt;(本投稿の一番下の"&lt;strong&gt;Attachment(s):&lt;/strong&gt;" にリンクがあります)&lt;br&gt;また私のセッションに参加された方におかれましては、デモがうまく動かずすみませんでした。。&lt;br&gt;この場を借りてお詫びさせて頂きます。&lt;br&gt;(準備していたときはまったく問題なく動いていたのですが。。日ごろの行いが悪かったんでしょうか。。(^^; )&lt;br&gt;&lt;/p&gt; &lt;p&gt;ASP.NET MVC は、.NET 以外の Web アプリケーション開発においては非常に一般的な開発・設計手法である MVC パターンをベースに Web アプリケーションを開発できるようにする、ASP.NET の新しいサブ フレームワーク コンポーネントです。&lt;br&gt;MVC パターンを適用していることで、WebForms に比べてコントローラ (HTML画面の遷移やビジネスロジックの呼び出し) 部分の単体テスト性が高いこと、WebForms のポストバックとは異なり URL をリンク可能なものにしやすい、などの特徴があります。&lt;br&gt;&lt;/p&gt; &lt;p&gt;ASP.NET MVC は現在 &lt;a href="http://www.asp.net/" target="_blank"&gt;ASP.NET のコミュニティサイト&lt;/a&gt;ならびに &lt;a href="http://www.codeplex.com/" target="_blank"&gt;CodePlex&lt;/a&gt; でモジュールやソースコードが公開されています。なお、先週の TechEd でお話させて頂いた時点では Preview 4 という CTP が最新バージョンでしたが、今日現在では CodePldex で公開されている Preview 5 が最新バージョンになります。&lt;br&gt;&lt;br&gt;&lt;a href="http://www.asp.net/mvc/" target="_blank"&gt;ASP.NET Community - ASP.NET MVC&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.codeplex.com/aspnet/Wiki/View.aspx?title=MVC&amp;amp;referringTitle=Home" target="_blank"&gt;CodePlex - ASP.NET MVC&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;p&gt;セッションスライドの方では日本語の情報リソースについてはまったく言及していませんでしたので、こちらで日本語の記事をいくつか紹介しておきます。&lt;br&gt;&lt;br&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/magazine/cc337884.aspx" target="_blank"&gt;ASP.NET MVC - Web フォームを使用しないで Web アプリケーションを作成する @MSDN Magazine&lt;/a&gt;&lt;br&gt;&lt;br&gt;MSDN マガジンの2008年3月号の記事です。ちょっと古いですが、全体的な雰囲気はわかるかと思われます。&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://codezine.jp/article/detail/2748" target="_blank"&gt;もう一つのASP.NET「ASP.NET MVC」を知る (前編) @CodeZine&lt;/a&gt;&lt;br&gt;&lt;a href="http://codezine.jp/article/detail/2888" target="_blank"&gt;もう一つのASP.NET「ASP.NET MVC」を知る (後編) @CodeZine&lt;/a&gt;&lt;br&gt;&lt;br&gt;ASP.NET MVP の&lt;a href="http://cs.gogo-asp.net/blogs/naoki/" target="_blank"&gt;ナオキさん&lt;/a&gt;が最近執筆された記事です。&lt;br&gt;内容は非常によくまとまっていますし、Preview 4 や Visual Studio へのアイテムテンプレートのインストール方法についても触れていますので必見です。&lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;p&gt;なお、今後こちらのBlogではASP.NET MVCについてボチボチ書いていくつもりです。&lt;br&gt;乞うご期待！？&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8919735" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/mikion/attachment/8919735.ashx" length="1374982" type="application/vnd.openxmlformats-officedocument.pres" /><category domain="http://blogs.msdn.com/mikion/archive/tags/_A430D930F330C8302600_amp_3B00BB30DF30CA30FC30_/default.aspx">イベント&amp;amp;セミナー</category><category domain="http://blogs.msdn.com/mikion/archive/tags/TechEd/default.aspx">TechEd</category><category domain="http://blogs.msdn.com/mikion/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item></channel></rss>