ASP.NET MVC
The ASP.NET MVC is a discontinued web application framework developed by Microsoft, which implements the model–view–controller pattern. It is open-source software, apart from the ASP.NET Web Forms component which is proprietary.
ASP.NET Core has since been released, which unified ASP.NET, ASP.NET MVC, ASP.NET Web API, and ASP.NET Web Pages. MVC 6 was abandoned due to Core and is not expected to be released. Core is currently planned to merge into “.NET 5”.
Background
Based on ASP.NET, ASP.NET MVC allows software developers to build a web application as a composition of three roles: Model, View and Controller.The MVC model defines web applications with 3 logic layers:
- Model
- View
- Controller
In April 2009, the ASP.NET MVC source code was released under the Microsoft Public License.
"ASP.NET MVC framework is a lightweight, highly testable presentation framework that is integrated with existing ASP.NET features. Some of these integrated features are master pages and membership-based authentication. The MVC framework is defined in the System.Web.Mvc assembly."
The ASP.NET MVC framework couples the models, views, and controllers using interface-based contracts, thereby allowing each component to be tested independently.
Apache License 2.0 release
In March 2012, Scott Guthrie announced on his blog that Microsoft had released part of its web stack under an open source license.Guthrie wrote that "Doing so will enable a more open development model where everyone in the community will be able to engage and provide feedback on code checkins, bug-fixes, new feature development, and build and test the products on a daily basis using the most up-to-date version of the source code and tests."
The source code now resides on CodePlex. ASP.NET Web Forms was not included in this initiative for various reasons.
Release history
Date | Version |
17 May 2016 | ASP.NET Core MVC 1.0.0-rc2 |
12 August 2016 | ASP.NET Core MVC 1.0.0 |
17 August 2016 | ASP.NET Core MVC 1.0.1 |
17 November 2016 | ASP.NET Core MVC 1.0.2 |
6 March 2017 | ASP.NET Core MVC 1.0.3 |
9 May 2017 | ASP.NET Core MVC 1.0.4 |
20 September 2017 | ASP.NET Core MVC 1.0.5 |
14 November 2016 | ASP.NET Core MVC 1.0.6 |
16 November 2016 | ASP.NET Core MVC 1.1.0 |
27 January 2017 | ASP.NET Core MVC 1.1.1 |
6 March 2017 | ASP.NET Core MVC 1.1.2 |
9 May 2017 | ASP.NET Core MVC 1.1.3 |
20 September 2017 | ASP.NET Core MVC 1.1.4 |
14 November 2017 | ASP.NET Core MVC 1.1.5 |
12 December 2017 | ASP.NET Core MVC 1.1.6 |
13 March 2018 | ASP.NET Core MVC 1.1.7 |
11 August 2017 | ASP.NET Core MVC 2.0.0 |
14 November 2017 | ASP.NET Core MVC 2.0.1 |
9 January 2018 | ASP.NET Core MVC 2.0.2 |
13 March 2018 | ASP.NET Core MVC 2.0.3 |
30 May 2018 | ASP.NET Core MVC 2.1.0 |
18 June 2018 | ASP.NET Core MVC 2.1.1 |
4 December 2018 | ASP.NET Core MVC 2.2.0 |
29 September 2019 | ASP.NET Core MVC 3.0.0 |
3 December 2019 | ASP.NET Core MVC 3.1.0 |
14 January 2020 | ASP.NET Core MVC 3.1.1 |
View engines
The view engines used in the ASP.NET MVC 3 and MVC 4 frameworks are Razor and the Web Forms. Both view engines are part of the MVC 3 framework. By default, the view engine in the MVC framework uses Razor.cshtml
and .vbhtml
, or Web Forms .aspx
pages to design the layout of the user interface pages onto which the data is composed. However, different view engines can be used. Additionally, rather than the default ASP.NET Web Forms postback model, any interactions are routed to the controllers using the ASP.NET Routing mechanism. Views can be mapped to different URLs.Other view engines:
- The MVCContrib library contains 8 alternate view engines. Brail, NDjango, NHaml, NVelocity, SharpTiles, Spark, StringTemplate and XSLT.
- The StringTemplate View Engine utilizes a.NET port of the Java templating engine, StringTemplate.
- Spark is a view engine for the ASP.NET MVC frameworks.
- NDjango is a port of the Django web framework's templating language to.NET. It is written in F# and comes with Visual Studio extension including full Intellisense support
- Naked Objects for.NET is an implementation of the naked objects pattern using ASP.NET MVC