ASP.NET MVC Framework

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パターンの実装である。