ASP
.NET MVCは、
マイクロソフトが開発した
Webアプリケーションフレームワークであり、Model-View-Controller(MVC)パターンを実装しています。このフレームワークは、Webアプリケーションをより効率的に開発するための構造を提供していました。しかし、新規の開発は既に停止しており、その役割は後継のASP
.NET Coreに引き継がれています。
元々、
プロプライエタリソフトウェアであったASP
.NET Web Formsとは異なり、ASP
.NET MVCは
オープンソースソフトウェアとして公開されました。この変更は、コミュニティによる貢献と透明性を高める上で重要な一歩でした。
その後、ASP
.NET Coreがリリースされ、ASP
.NET、ASP
.NET MVC、ASP
.NET Web API、ASP
.NET Web Pagesが統合されました。これにより、開発者はより統一されたプラットフォームでWebアプリケーションを構築できるようになりました。ASP
.NET MVC 6の開発は、ASP
.NET Coreの登場により中止され、その機能はCoreに統合されました。
ASP.NET MVCの背景
ASP
.NETを基盤とするASP
.NET MVCは、
ソフトウェア開発者がモデル、ビュー、コントローラーという3つの要素を組み合わせてWebアプリケーションを構築できるように設計されています。MVCモデルは、Webアプリケーションを以下の3つの論理層に分割します。
モデル (ビジネス層): アプリケーションのデータやビジネスロジックを管理します。
ビュー (表示レイヤー): ユーザーインターフェースを構成し、データを表示します。
コントローラー (入力制御): ユーザーからの入力を受け取り、モデルを更新し、ビューを選択します。
モデルは、アプリケーションの状態を表します。コントローラーは、ユーザーとのインタラクションを処理し、アプリケーションの状態の変化をモデルに反映させ、必要な情報をビューに渡します。ビューは、コントローラーから受け取った情報を元に、ユーザーインターフェースを表示します。
2009年4月、ASP
.NET MVCのソースコードは、Microsoft Public License (MS-PL) の下で公開されました。この
ライセンスにより、開発者は自由にコードを利用し、変更できるようになりました。
ASP
.NET MVCフレームワークは、既存のASP
.NET機能と統合された、軽量でテストが容易なプレゼンテーションフレームワークです。マスターページやメンバーシップベースの認証など、ASP
.NETの既存の機能を利用できます。MVCフレームワークは`System.Web.Mvc`アセンブリで定義されています。
また、ASP
.NET MVCはインターフェースベースのコントラクトを採用しており、モデル、ビュー、コントローラーを疎結合にすることで、各コンポーネントを個別にテストできるようになっています。
2012年3月、
マイクロソフトはWebスタックの一部を
Apache License 2.0のオープンソース
ライセンスでリリースしました。これには、ASP
.NET MVC、Razor、Web APIが含まれています。この動きは、コミュニティがコードのチェックイン、バグ修正、新機能の開発に参加し、フィードバックを提供することで、開発プロセスをよりオープンにするためのものでした。
ソースコードは
CodePlexで公開されました。ただし、ASP
.NET Web Formsは、さまざまな理由からこのイニシアチブには含まれませんでした。
リリース履歴
ASP
.NET MVCは、複数回バージョンアップされ、機能が拡張されてきました。
ビューエンジン
ASP
.NET MVC3およびMVC4フレームワークで使用されるビューエンジンは、RazorとWeb Formsの2種類でした。どちらのビューエンジンもMVC3フレームワークの一部であり、デフォルトではRazor (.cshtmlと.vbhtml) またはWeb Forms (.aspx) ページを使用して、ユーザーインターフェースのレイアウトを設計します。
ビューエンジンは交換可能であり、複数の代替エンジンが存在します。MVCContribライブラリには、Brail、N
Django、NHaml、NVelocity、SharpTiles、Spark、StringTemplate、XSLTなど、8つの代替ビューエンジンが含まれています。
StringTemplate View Engine: JavaテンプレートエンジンであるStringTemplateの
.NET移植版を利用します。
Spark: ASP
.NET MVC(およびCastle Project MonoRail)フレームワーク向けのビューエンジンです。
NDjango: Django Webフレームワークのテンプレート言語の
.NET移植版です。F#で記述されており、IntelliSenseの完全サポートを含むVisual Studio拡張機能が付属しています。
Naked Objects for .NET: ASP
.NET MVCを使用したNaked Objectsパターンの実装です。
ASP
.NET MVCでは、デフォルトのASP
.NET Web Formsのポストバックモデルの代わりに、すべてのインタラクションがASP
.NETルーティングメカニズムを介してコントローラーにルーティングされます。ビューは、異なるURLにマップすることもできます。
関連事項
以下はASP
.NET MVCと関連する概念やパターンです。
Model-View-ViewModel (MVVM)
Model-View-Adapter (MVA)
Model-View-Presenter (MVP)
Observer パターン
Presentation–Abstraction–Control (PAC)
Hierarchical Model–View–Controller (HMVC)
参考資料
Jon Galloway, Phil Haack, Brad Wilson, and K. Scott Allen, Professional ASP
.NET MVC 3, Wrox, 2011,
ISBN 1-118-07658-3
Jeffrey Palermo, Jimmy Bogard, Eric Hexter, Matthew Hinze, and Jeremy Skinner, ASP
.NET MVC 4 in Action, Manning Publications, 2012,
ISBN 978-1617-29041-1
Steven Sanderson, Adam Freeman, Pro ASP
.NET MVC 3 Framework, Second Edition, Apress, 2011,
ISBN 1-4302-3404-0
Jonathan McCracken, Test-Drive ASP
.NET MVC, Pragmatic Bookshelf, 2010,
ISBN 1-934356-53-0
Stephen Walther, ASP
.NET MVC Framework Unleashed, Sam's, 2009,
ISBN 0-672-32998-0
Arnaud Weil, Learn ASP
.NET MVC, 2015,
ISBN 1-32648303-X
Andrew Lock, ASP
.NET Core in Action, Manning Publications, 2018,
ISBN 978-1617-29461-7
外部リンク
*
公式ウェブサイト