ASP.NET MVC Framework

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はインターフェースベースのコントラクトを採用しており、モデル、ビュー、コントローラーを疎結合にすることで、各コンポーネントを個別にテストできるようになっています。

Apache License 2.0でのリリース



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、NDjango、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

外部リンク



* 公式ウェブサイト

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。