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月、 スコット・ガスリーはブログで、Microsoftがオープンソースライセンス（Apache License 2.0）に基づきWebスタックの一部（ASP.NET MVC、 Razor 、およびWeb APIを含む）をリリースしたことを発表した。 

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

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

リリース履歴

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

関連項目 

 Model-View-ViewModel
 Model-View-Adapter
 Model-View-Presenter
 Observer パターン
 Presentation–Abstraction–Control
 Hierarchical Model–View–Controller

脚注

参考文献 

 Jon Galloway, Phil Haack, Brad Wilson, and K. Scott Allen, Professional ASP.NET MVC 3, Wrox, 2011, 
 Jeffrey Palermo, Jimmy Bogard, Eric Hexter, Matthew Hinze, and Jeremy Skinner, ASP.NET MVC 4 in Action, Manning Publications, 2012, 
 Steven Sanderson, Adam Freeman, Pro ASP.NET MVC 3 Framework, Second Edition, Apress, 2011, 
 Jonathan McCracken, Test-Drive ASP.NET MVC, Pragmatic Bookshelf, 2010, 
 Stephen Walther, ASP.NET MVC Framework Unleashed, Sam's, 2009, 
 Arnaud Weil, Learn ASP.NET MVC, 2015, 
 Andrew Lock, ASP.NET Core in Action, Manning Publications, 2018,

外部リンク 

 

マイクロソフトのフリーソフト
ウェブアプリケーションフレームワーク
Apache Licenseのソフトウェア
MVC Framework
.NET Framework
C Sharpでプログラムされたフリーソフトウェア