ASP.NET MVC 3
ASP.NET MVC 3とは、ASP.NET MVCの第三弾である。
MonoによるASP.NET MVC 3の動作は2012年3月時点では公式サポートされていないが、Windows上で作り、関連アセンブリ(DLL)ごと持って来ればほぼ動く。
現在ではXamarin StudioおよびMonoでも開発および利用できるようになっている。
目次
インストール編集
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公式サイトでは以下のファイルをコピーすればよいとなっている[1]。
- System.Web.Mvc.dll
- System.Web.Razor.dll
- System.Web.WebPages.Deployment.dll
- System.Web.WebPages.dll
一方、Usa*Usa日記さんによる記録では若干項目が多い[2]。同じ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
主な変更点編集
ビュー編集
ビューエンジン編集
ビューを作る際にサードパーティー製を含む複数のビューエンジンが容易に選択可能となり、Spark、NHaml、NDjangoなども手軽に扱えるようになった。
また純正ビューエンジンんとしてRazorエンジンが搭載された。
コントローラー編集
グローバルフィルター編集
グローバルフィルターという機能が搭載され、すべてのアクションに一括でフィルターをかけれるようになった。 Visual Studio 2010でASP.NET MVC 3プロジェクトを新規作成するとルーティング設定などを記述するお馴染みのGlobal.asaxに下記のようなメソッドが追加されている。
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
見ての通りfiltersにAddしてやればよい。
ViewModelプロパティ編集
従来のViewDataプロパティに加え、dynamic型のViewModelプロパティが追加された。 string型だったのがdynamic型になったからと言って特に大きな変化ではないが、ソースコードの見通しが良くなった。 なお、従来のViewDataプロパティも引き続き使える。
ActionResultの追加編集
ActionResultクラスを継承した便利クラスが追加された。
その他編集