「ASP.NET MVC」について
2012/03/15
「ASP.NET MVC」と「ASP.NET」
「ASP.NET」上で動くWebアプリケーションフレームワークが「ASP.NET MVC」。
「ASP.NET」は「.NET Framework」のWebアプリケーションフレームワーク。
※後述のMVCのうち「M」は「ASP.NET」が提供してくれており、「VC」は「ASP.NET MVC」が提供してくれる。ってことは、「ASP.NET」に「MVC」の「VC」を追加したのが「ASP.NET MVC」ってことか。
「ASP.NET MVC」の主な機能
- ルーティング機能
- フィルタ機能(認証・キャッシュ・例外処理など)
- バインド機能(入力データを処理)
- ActionResultオブジェクト(コントローラの処理結果を管理)
- ビューエンジン(.aspx、.ascx、.masterに対応)
- ビューヘルパー(ビュー生成の効率化)
- Scaffolding機能(アプリケーションの骨格の自動生成)
MVC方式
MVC(Model-View-Controller)は、「Model:データのアクセス・管理・操作」「View:UI・フロントエンド」「Controller:Viewから受け取ったデータをModelに渡す。Modelの処理結果をViewにフィードバック」から成り立つ。
※「データ」はDBだったりCSVだったりxmlだったりする。
フロントコントローラ方式
フロントコントローラというヤツがリクエストURLを受けて、各ページに割り振る。
どんなリクエストURLが来ても、実行されるのはフロントコントローラ。その後、各ファイルに割り振る(=ルーティング)。
これに対して、各ファイルを直接実行するってのが「ページコントローラ方式」になる。
フロントコントローラ方式とページコントローラ方式
フロントコントローラ方式 | ページコントローラ方式 | |
---|---|---|
リクエストURL | フロントコントローラーが受け、対象のページに割り振る。 | 対象のページを直接、実行。 |
サービス終了時 | フロントコントローラーだけ、アクセス拒否(ファイル名を変えるとか削除とか)すれば良い。 | 全体のアクセスを拒否する必要あり。 |
その他 | 流行っている。 | 流行っていない? |
その他
「単体テストが行いやすい」「サーバコントローラを使わない」「ASP.NETの知識を十分に活かせる」というのがある。