ASP.NET MVC

提供: MonoBook
2012年3月13日 (火) 17:10時点における111.188.69.170 (トーク)による版 (→‎MVC)
ナビゲーションに移動 検索に移動

ASP.NET MVCとは、Webアプリケーション開発のためのフレームワークである。

Monoを用いて動かす方法などについてはxspmod_monoの項目も参照。

ASP.NET と ASP.NET MVC

ASP.NET MVCは、ASP.NET(無印)と名称が非常に似ているが、まったくの別物である。

大事なことなのでもう一度言うが、ASP.NET MVCASP.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を触れないとか意味不明すぎて誰もが敬遠し、クソだクソだと口コミが広まった。

こうした批評をうけ、PHPとSmartyの組合せのようなシンプルなものを、装いも新たに実装したのがASP.NET MVCである。

Mono

ハンドラーの強制変更

詳細は「mod_mono#ASP.NET MVCを使うための設定」を参照。

ファイル名の大文字小文字

Windowsはファイル名の大文字小文字は区別しないが、Linux/Unixではファイル名の大文字小文字を区別するため、この点を考慮していないプログラムは注意。ASP.NET MVCでマスターページが見つからないというエラーではまった。

MVC

MVCとは「Model(モデル)、View(ビュー)、Controller(コントローラ)」の頭文字をとった1980年代にSmalltalkで確立されたアプリケーションのアーキテクチャパターン。 モデルはビジネスロジック(業務処理)、ビューは表示処理、コントローラはモデルとビューの操作を担当する。

モデルはビジネスロジックを記述するものだが、作り手によっては単純にデータベースとのマッピングをモデルと呼ぶひともいる。

ビューは名前の通り見た目を表す部分を記述する。ウェブアプリであればHTMLテンプレートに相当する。

コントローラは、モデルとビューを繋ぐ役割を担う。コントローラは大きくわけてページコントローラ方式とフロントコントローラ方式があり、ASP.NET MVCではフロントコントローラ方式が採用されている。


ビューヘルパー

ビューヘルパーとはデザインパターンのひとつ。 簡単に言うと「ビューの中に複雑なロジックを書くな」という掟。 ヘルパークラスに静的メソッドを用意して、複雑なロジックはそこに記述し、デザイナーなどのプログラマー以外の人も触るであろうビューでは簡潔に1行で書けるようにして、見通しを良くしておきましょうというお話。

ASP.NET MVCではよく使われるであろうビューヘルパーがあらかじめいくつか用意されている。


ルーティング


マスターページ


その他


関連項目

外部リンク