ASP.NET MVC
ASP.NET MVC(読み:えーえすぴーどっとねっと・えむぶいしー)とは、Webアプリケーションを開発するためのフレームワークである。名称にMVCとあるようにMVCパターンとなっている。
2012年3月27日に、RazorやJSONなどの実装を含むASP.NET MVCおよび関連ライブラリのほぼ全てがApache License 2.0のもとでオープンソース化され[1]、翌日にはMonoへの取込が始まった[2]。
目次
ASP.NET と ASP.NET MVC編集
ASP.NET MVCは、ASP.NET(無印)と名称が非常に似ているが、まったくの別物である。 どちらかというとASP.NET MVCは元祖ASP(.NETが付く前)に近い。
大事なことなのでもう一度言うが、ASP.NET MVCとASP.NETはまったくの別物である。
このようなクソな名称を採用したマイクロソフトのセンスの無さには驚愕する。
ASP.NET(無印)とASP.NET MVCの唯一の共通点は、ASP.NET MVCで用いるデフォルトのビューエンジン(PHPでいうSmarty、RubyのeRuby/erbに相当)で用いるテンプレートファイルの拡張子がaspxである点くらいである。拡張子は同じだが、ASP.NET(無印)のaspxファイルは人間が直接触ることを想定していないのに対して、ASP.NET MVCでは至って普通のHTMLテンプレートファイルであり、本当に共通点は拡張子だけある。
しかもASP.NET MVC 3からはRazorという新型ビューエンジンが導入され、HTMLテンプレートファイルの拡張子も.cshtmlまたは.vbhtmlとなってしまったため、拡張子という共通点すら無くなった。
概要編集
従来のASP.NETでは、Windowsアプリケーションに近い開発スタイルが取られており、HTMLを気にせず、ビジュアル・デザイナーでGUIアプリケーションを作るような感じで開発を行うというものであった。逆を言えばHTMLは実行時に自動生成されるものであり、人間が直接編集するものではないという独特のシステムであった。
一方でWebアプリケーション開発で主力であるPHPやPerl、Pythonの開発者から見ると、HTMLを触れないとか意味不明すぎて誰もが敬遠し、またSEO的にも良くないなど、クソだクソだと口コミが広まった。
こうした批評をうけ、PHPとSmartyの組合せのようなシンプルなものを、装いも新たに実装したのがASP.NET MVCである。
Mono編集
ASP.NET MVCをMonoで利用に関しての特記事項を記載する。 その他にも色々あるだろうが、個人的にはまった部分について記載しておく。
Monoを用いてASP.NET MVCを使ったアプリケーションを動かす方法などについてはxspやmod_monoの項目も参照。
ハンドラーの強制変更編集
詳細は「mod_mono#ASP.NET MVCを使うための設定」を参照。
ファイル名の大文字小文字編集
Windowsはファイル名の大文字小文字は区別しないが、Linux/Unixではファイル名の大文字小文字を区別するため、この点を考慮していないウェブアプリは注意する必要がある。個人的にはASP.NET MVCで「マスターページが見つからない」というエラーではまった。
ルーティング編集
アクション編集
マスターページ編集
ウェブサイトを作るうえで、ヘッダやフッタなどの大枠のデザインは統一されるのが一般的ということで、大枠部分をテンプレート化しておける機能(テンプレートファイル)をマスターページという。便利。
ビューヘルパー編集
「ビューヘルパー」を参照。
その他編集
ASP.NET MVCの主なバージョン編集
関連項目編集
- MonoRail - ASP.NET(無印)上にRuby on RailsのActionPackっぽい独自MVCを実装しているオープンソースプロジェクト。
- MvcContrib - ASP.NET MVC向けの独自ライブラリ群を作っているオープンソースプロジェクト。主要メンバーにはMonoRailsの中の人もいる。
- xsp - ASP.NET系のフレームワークを使ったウェブアプリをLinuxやMac上で動かすためのWebサーバー。JavaでいうApache Tomcatのようなもの。
- mod_mono - xspをApacheモジュール化したもの。