メインメニューを開く

差分

ASP.NET MVC 3

3,059 バイト追加, 2014年3月6日 (木) 06:08
編集の要約なし
'''ASP.NET MVC 3'''とは、[[ASP.NET MVC]]の第三弾。の第三弾である。
<del>[[Mono]]によるASP.NET MVC 3の動作は2012年3月時点では公式サポートされていないが、Windows上で作り、関連アセンブリ(DLL)ごと持って来ればほぼ動く。</del> == 主な変更点 ==ビューエンジンが容易に選択可能となり、現在では[[SparkXamarin Studio]]および[[NHaml]]、[[NDjango]Mono]なども手軽に扱えるようになった。また純正ビューエンジンんとして[[Razor]]エンジンが搭載された。 {{stub}}でも開発および利用できるようになっている。
== インストール ==
* http://www.asp.net/mvc/mvc3
=== Mono ===
{{stub}}
 
== Monoでの動かし方 ==
2012年3月27日時点、CentOS6での記録です。
 
事前に[[mod_mono]]の設定が完了していることが前提条件となる。
mod_monoの設定については「[[mod_mono#ASP.NET MVCを使うための設定]]」を参照。
 
[[ASP.NET MVC 3]]を使うにあたって、まだ[[Mono]]では提供されていないアセンブリ(DLL)があるので、binディレクトリにコピーしておく必要がある。
 
Visual Studio 2010を使っている場合は参照設定の各項目をクリックしてプロパティを表示すると「ローカルコピー」という項目があるので「True」に設定しておくとビルド時に自動でコピーされるので確実。参照設定の一覧にないアセンブリについては「参照の追加」より追加してローカルコピー設定を行う。
 
Mono公式サイトでは以下のファイルをコピーすればよいとなっている<ref>http://www.mono-project.com/Release_Notes_Mono_2.10#ASP.NET_MVC3_Support</ref>。
* System.Web.Mvc.dll
* System.Web.Razor.dll
* System.Web.WebPages.Deployment.dll
* System.Web.WebPages.dll
 
一方、Usa*Usa日記さんによる記録では若干項目が多い<ref>http://d.hatena.ne.jp/machi_pon/20110503/1304411747</ref>。同じCentOS6ということで今回はこちらを採用したので公式設定は試していない。
* System.Web.Helpers.dll
* System.Web.Mvc.dll
* System.Web.Razor.dll
* System.Web.WebPages.Deployment.dll
* System.Web.WebPages.dll
* System.Web.WebPages.Razor.dll
 
== 主な変更点 ==
{{stub}}
 
=== ビュー ===
 
==== ビューエンジン ====
ビューを作る際にサードパーティー製を含む複数のビューエンジンが容易に選択可能となり、[[Spark]]、[[NHaml]]、[[NDjango]]なども手軽に扱えるようになった。
 
また純正ビューエンジンんとして[[Razor]]エンジンが搭載された。
 
=== コントローラー ===
==== グローバルフィルター ====
グローバルフィルターという機能が搭載され、すべてのアクションに一括でフィルターをかけれるようになった。
Visual Studio 2010でASP.NET MVC 3プロジェクトを新規作成するとルーティング設定などを記述するお馴染みのGlobal.asaxに下記のようなメソッドが追加されている。
<source lang="csharp">
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
</source>
見ての通りfiltersにAddしてやればよい。
 
==== ViewModelプロパティ ====
従来のViewDataプロパティに加え、dynamic型のViewModelプロパティが追加された。
string型だったのがdynamic型になったからと言って特に大きな変化ではないが、ソースコードの見通しが良くなった。
なお、従来のViewDataプロパティも引き続き使える。
 
==== ActionResultの追加 ====
[[ActionResultクラス]]を継承した便利クラスが追加された。
* [[HttpNotFoundResult]]
* [[HttpRedirectResult]]
* [[HttpStatusCodeResult]]
 
=== その他 ===
{{stub}}
== 関連項目 ==
* [[ASP.NET MVC]]
* [[WebMatrix]]
== 参考文献 ==