「ASP.NET MVC 3」の版間の差分
imported>Administrator |
imported>Administrator |
||
18行目: | 18行目: | ||
[[ASP.NET MVC 3]]を使うにあたって、まだ[[Mono]]では提供されていないアセンブリ(DLL)があるので、binディレクトリにコピーしておく必要がある。 | [[ASP.NET MVC 3]]を使うにあたって、まだ[[Mono]]では提供されていないアセンブリ(DLL)があるので、binディレクトリにコピーしておく必要がある。 | ||
− | Visual Studio | + | Visual Studio 2010を使っている場合は参照設定の各項目をクリックしてプロパティを表示すると「ローカルコピー」という項目があるので「True」に設定しておくとビルド時に自動でコピーされるので確実。参照設定の一覧にないアセンブリについては「参照の追加」より追加してローカルコピー設定を行う。 |
Mono公式サイトでは以下のファイルをコピーすればよいとなっている<ref>http://www.mono-project.com/Release_Notes_Mono_2.10#ASP.NET_MVC3_Support</ref>。 | Mono公式サイトでは以下のファイルをコピーすればよいとなっている<ref>http://www.mono-project.com/Release_Notes_Mono_2.10#ASP.NET_MVC3_Support</ref>。 |
2012年3月27日 (火) 08:58時点における版
ASP.NET MVC 3とは、ASP.NET MVCの第三弾。
MonoによるASP.NET MVC 3の動作は2012年3月時点では公式サポートされていないが、Windows上で作り、関連アセンブリ(DLL)ごと持って来ればほぼ動く。
目次
インストール
Windows
ASP.NET MVC 3をVisual Studio 2010などで利用するには下記からダウンロードしてインストールする必要がある。
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クラスを継承した便利クラスが追加された。
その他