ASP.NET MVCは、マイクロソフトによって開発されたWebアプリケーションフレームワークであり、 Model View Controller (MVC)パターンを実装している。新規の開発はすでに停止している。 プロプライエタリソフトウェアであるASP.NET Web Formsとは分離されており、ASP.NET MVCはオープンソースソフトウェアとなっている。

その後、ASP.NET Coreがリリースされ、ASP.NET、ASP.NET MVC、ASP.NET Web API、ASP.NET Web Pages (Razorページのみを使用するプラットフォーム)が統合された。 MVC 6はCoreのために放棄され、リリース予定はない。Coreは現在、「.NET 5」に統合予定である。

## 背景

ASP.NETをベースとしているASP.NET MVCを使用すると、ソフトウェア開発者は、モデル、ビュー、コントローラーの3つの役割の組み合わせでWebアプリケーションを構築できる。 MVCモデルは、次の3つの論理層でWebアプリケーションを定義する。

- モデル(ビジネス層)
- ビュー(表示レイヤー)
- コントローラー(入力制御)

モデルは、アプリケーションの特定の側面の状態を表す。コントローラーは相互作用を処理し、アプリケーションの状態の変化を反映するようにモデルを更新してから、情報をビューに渡す。ビューは、コントローラーから必要な情報を受け取り、その情報を表示するためのユーザインタフェースを描画する。

2009年4月、ASP.NET MVCソースコードは、 Microsoft Public License (MS-PL) の下でリリースされた。

「ASP.NET MVCフレームワークは、既存のASP.NETの機能と統合された、軽量で高度にテスト可能なプレゼンテーションフレームワークである。これらの統合された機能のいくつかは、マスターページとメンバーシップベースの認証を使う。 MVCフレームワークはSystem.Web.Mvcアセンブリで定義されている。」

ASP.NET MVCフレームワークは、インタフェースベースのコントラクトを使用してモデル、ビュー、およびコントローラーを結合し、それによって各コンポーネントを個別にテストできるようにする。

### Apache License2.0リリース

2012年3月、 スコット・ガスリーはブログで、マイクロソフトがオープンソースライセンス(Apache License 2.0)に基づきWebスタックの一部(ASP.NET MVC、 Razor 、およびWeb APIを含む)をリリースしたことを発表した。

ガスリーは次のように述べた。「そうすることで、コミュニティの全員がコードチェックイン、バグ修正、新機能の開発に関与してフィードバックを提供し、ソースコードとテストの最新バージョンの製品を毎日使用してビルドおよびテストできる、よりオープンな開発モデルが可能になる。」

ソースコードはCodePlexで公開されている。 ASP.NET Web Formsは、さまざまな理由でこのイニシアチブに含まれていない。

## リリース履歴

リリース履歴

| 日付 | バージョン |
| --- | --- |
| 2007年12月10日 | ASP.NET MVC CTP |
| 2009年3月13日 | ASP.NET MVC 1.0 |
| 2009年12月16日 | ASP.NET MVC 2 RC |
| 2010年2月4日 | ASP.NET MVC 2 RC 2 |
| 2010年3月10日 | ASP.NET MVC 2 |
| 2010年10月6日 | ASP.NET MVC3ベータ版 |
| 2010年11月9日 | ASP.NET MVC 3 RC |
| 2010年12月10日 | ASP.NET MVC 3 RC 2 |
| 2011年1月13日 | ASP.NET MVC 3 |
| 2011年9月20日 | ASP.NET MVC4開発者プレビュー |
| 2012年2月15日 | ASP.NET MVC4ベータ版 |
| 2012年5月31日 | ASP.NET MVC 4 RC |
| 2012年8月15日 | ASP.NET MVC 4 |
| 2013年5月30日 | ASP.NET MVC 4 4.0.30506.0 |
| 2013年6月26日 | ASP.NET MVC5プレビュー |
| 2013年8月23日 | ASP.NET MVC 5 RC 1 |
| 2013年10月17日 | ASP.NET MVC 5 |
| 2014年1月17日 | ASP.NET MVC 5.1 |
| 2014年2月10日 | ASP.NET MVC 5.1.1 |
| 2014年4月4日 | ASP.NET MVC 5.1.2 |
| 2014年6月22日 | ASP.NET MVC 5.1.3 |
| 2014年7月1日 | ASP.NET MVC 5.2.0 |
| 2014年8月28日 | ASP.NET MVC 5.2.2 |
| 2015年2月9日 | ASP.NET MVC 5.2.3 |
| 2018年2月12日 | ASP.NET MVC 5.2.4 |
| 2018年5月2日 | ASP.NET MVC 5.2.5 |
| 2018年5月11日 | ASP.NET MVC 5.2.6 |
| 2018年11月29日 | ASP.NET MVC 5.2.7 |
|

ASP.NET Core MVC-リリース履歴

| 日付 | バージョン |
| --- | --- |
| 2016年5月17日 | ASP.NET Core MVC 1.0.0-rc2 |
| 2016年8月12日 | ASP.NET Core MVC 1.0.0 |
| 2016年8月17日 | ASP.NET Core MVC 1.0.1 |
| 2016年11月17日 | ASP.NET Core MVC 1.0.2 |
| 2017年3月6日 | ASP.NET Core MVC 1.0.3 |
| 2017年5月9日 | ASP.NET Core MVC 1.0.4 |
| 2017年9月20日 | ASP.NET Core MVC 1.0.5 |
| 2016年11月14日 | ASP.NET Core MVC 1.0.6 |
| 2016年11月16日 | ASP.NET Core MVC 1.1.0 |
| 2017年1月27日 | ASP.NET Core MVC 1.1.1 |
| 2017年3月6日 | ASP.NET Core MVC 1.1.2 |
| 2017年5月9日 | ASP.NET Core MVC 1.1.3 |
| 2017年9月20日 | ASP.NET Core MVC 1.1.4 |
| 2017年11月14日 | ASP.NET Core MVC 1.1.5 |
| 2017年12月12日 | ASP.NET Core MVC 1.1.6 |
| 2018年3月13日 | ASP.NET Core MVC 1.1.7 |
| 2017年8月11日 | ASP.NET Core MVC 2.0.0 |
| 2017年11月14日 | ASP.NET Core MVC 2.0.1 |
| 2018年1月9日 | ASP.NET Core MVC 2.0.2 |
| 2018年3月13日 | ASP.NET Core MVC 2.0.3 |
| 2018年5月30日 | ASP.NET Core MVC 2.1.0 |
| 2018年6月18日 | ASP.NET Core MVC 2.1.1 |
| 2018年12月4日 | ASP.NET Core MVC 2.2.0 |
| 2019年9月29日 | ASP.NET Core MVC 3.0.0 |
| 2019年12月3日 | ASP.NET Core MVC 3.1.0 |
| 2020年1月14日 | ASP.NET Core MVC 3.1.1 |

## ビューエンジン

ASP.NET MVC3およびMVC4フレームワークで使用されるビューエンジンは、 RazorとWeb Formsである。 両方のビューエンジンともMVC3フレームワークの一部である。デフォルトでは、MVCフレームワークのビューエンジンは、Razor `.cshtml`と`.vbhtml` 、またはWeb Formsの`.aspx`ページを使用して、データを構成するユーザインタフェースページのレイアウトを設計する。異なるビューエンジンも使用できる。 さらに、デフォルトのASP.NET Web Formsのポストバックモデルの替わりに、すべての対話はASP.NET ルーティングメカニズムを通じてコントローラーにルーティングされる。ビューは異なるURLにマップできる。

その他のビューエンジン:

- MVCContribライブラリには、Brail、NDjango、NHaml、NVelocity、SharpTiles、Spark、StringTemplate、XSLTの8つの代替ビューエンジンが含まれる。
- StringTemplate View Engineは.NETにポートされたJavaテンプレートエンジンであるStringTemplateを利用する 。
- SparkはASP.NET MVC(およびCastle Project MonoRail)フレームワークのビューエンジンである。
- NDjangoはDjango Webフレームワークのテンプレート言語の.NETへのポートであえる。 F#で記述されており、IntelliSenseの完全サポートを含むVisual Studio拡張機能が付属している。
- Naked Objects for .NETは、ASP.NET MVCを使用したNaked Objectsパターンの実装である。