「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」の主な機能

  1. ルーティング機能
  2. フィルタ機能(認証・キャッシュ・例外処理など)
  3. バインド機能(入力データを処理)
  4. ActionResultオブジェクト(コントローラの処理結果を管理)
  5. ビューエンジン(.aspx、.ascx、.masterに対応)
  6. ビューヘルパー(ビュー生成の効率化)
  7. Scaffolding機能(アプリケーションの骨格の自動生成)

MVC方式

MVC(Model-View-Controller)は、「Model:データのアクセス・管理・操作」「View:UI・フロントエンド」「Controller:Viewから受け取ったデータをModelに渡す。Modelの処理結果をViewにフィードバック」から成り立つ。
※「データ」はDBだったりCSVだったりxmlだったりする。

フロントコントローラ方式

フロントコントローラというヤツがリクエストURLを受けて、各ページに割り振る。

どんなリクエストURLが来ても、実行されるのはフロントコントローラ。その後、各ファイルに割り振る(=ルーティング)。
これに対して、各ファイルを直接実行するってのが「ページコントローラ方式」になる。

フロントコントローラ方式とページコントローラ方式

フロントコントローラ方式 ページコントローラ方式
リクエストURL フロントコントローラーが受け、対象のページに割り振る。 対象のページを直接、実行。
サービス終了時 フロントコントローラーだけ、アクセス拒否(ファイル名を変えるとか削除とか)すれば良い。 全体のアクセスを拒否する必要あり。
その他 流行っている。 流行っていない?

その他

「単体テストが行いやすい」「サーバコントローラを使わない」「ASP.NETの知識を十分に活かせる」というのがある。

新着(ニュース関連以外)

2017-11-09
PCでプッシュ通知ってのをしたい。
2017-11-06
PHPのバージョンを上げたらwikiが壊れたっぽい。
2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。