normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

ASP.NET MVC3 Preview on Windows Azure をしてみる

ASP.NET MVC3 RTM がリリースされたので、最新のセットアップ情報は id:waritohutsu:20110115:1295083973 を参照してほしい
TechEd 2010とコミケが終わると夏が終わったなぁと実感する今日この頃、皆様も順調にTechEdで学んだ技術の咀嚼をされているだろうか。Windows Azure を主体とした「現実解としてのクラウド」が今回のメインテーマだったわけだが、「すべてがクラウドに」でなく「業務や用途に応じてクラウドを導入する*1」が正しいクラウドとの付き合い方だということが周知されたなら幸いだ。
さて、TechEdの振り返りはさておき、今回は Windows Azure 上で ASP.NET MVCの最新バージョン(2010年9月1日現在)を動作する方法について紹介する。

ASP.NET MVC3 Previewについて

注目を浴びているWindows Azure以外にも、2010/07/27にASP.NET MVC3 Previewがリリースされている。詳細な情報は @IT 連載:〜ScottGu氏のブログより〜 ASP.NET MVC 3の紹介(プレビュー1)を参照して頂きたいが、主な変更点として以下を取り上げてみた。是非自分の目でも確認して頂きたい*2

  • Razor記法
  • 動的ViewModel
  • グローバル・フィルタ
  • HttpNotFoundResult等の新しいActionResult

是非こちらからASP.NET MVC3 Previewのインストーラを入手し、インストールを実施して頂きたい。

Windows Azureでの取り扱い

ASP.NET MVC3 PreviewのプロジェクトをWindows Azure上のWebロールとして取り扱うためには、以下の二点に注意する必要がある。

  1. Windows AzureのWebロールテンプレートとしては登録されていないため、直にWebロール・プロジェクトとして登録できない
    • 「ASP.NET MVC3 プロジェクトをWebロール・プロジェクトとして登録する」必要がある
  2. Windows Azure稼働環境では、dllの構成が異なる
    • 「System.Web.Mvc.dllをローカル・コピーにする」必要がある

こららの点に注意してASP.NET MVC3のプロジェクトを登録する必要がある。

ASP.NET MVC3 プロジェクトをWebロール・プロジェクトとして登録する

素直にWebロール・プロジェクトとしては登録できないASP.NET MVC3 プロジェクトだが、以下の手順を踏むことで登録可能だ。
1. ファイル(F) > 新規作成(N) > プロジェクト(P) > Cloud > 「Windows Azureクラウドサービス」ソリューションの作成
2. 「ASP.NET MVC3 Web Application (XXXX)*3」プロジェクトを当該ソリューションに追加

3. 作成した ASP.NET MVC3 Web Application プロジェクトを、Webロールプロジェクトとして登録

4. ASP.NET MVC3 PreviewをWebロール・プロジェクトとして登録完了

System.Web.Mvc.dllをローカル・コピーにする

Windows Azureポータルサイトにデプロイした経験にある方はよくご存じだと思うが、サードパーティ製のdllを利用する場合は「ローカル コピー」を True にする必要がある。
しかし、ASP.NET MVC3 Preview版は、当然ながら正式版としてリリースされたわけではない。そのため、Windows Azure稼働環境に当該dllは配置されていないので、「ローカル コピー」を True にする必要がある。
以下のスナップショットを参考にして、System.Web.Mvc.dllに対しての設定を実施して欲しい。

本番環境での稼働

とりあえずで稼働確認はとれた。Razor、ASPXの両方でASP.NET MVC3 Previewアプリケーションの稼働確認を行った。皆様も安心してアプリケーション開発に勤しんで頂きたい!

*1:検討結果が「すべてがクラウドに」も十分あり得る

*2:DIはどうでもいいや

*3:RazorでもASPXでも可