ASP.NET MVC Framework
Encyclopedia
The ASP.NET MVC Framework is a web application framework
that implements the model-view-controller
(MVC) pattern. Based on ASP.NET
, it allows software developers to build a Web application
as a composition of three roles: Model, View and Controller. A model represents the state of a particular aspect of the application. Frequently, a model maps to a database table with the entries in the table representing the state of the application. A controller handles interactions and updates the model to reflect a change in state of the application, and then passes information to the view. A view accepts necessary information from the controller and renders a user interface to display that.
In April 2009, the ASP.NET MVC source code was released under the Microsoft Public License (MS-PL).
The ASP.NET MVC Framework couples the models, views, and controllers using interface
-based contracts, thereby allowing each component to be easily tested independently.
and the Web Forms view engine. Both view engines are part of the MVC 3 framework. By default, the view engine in the MVC framework uses Razor
model, any interactions are routed to the controllers using the ASP.NET Routing
mechanism. Views can be mapped to REST
-friendly URL
s.
Other view engines:
Web application framework
A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities performed in Web development...
that implements the model-view-controller
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...
(MVC) pattern. Based on ASP.NET
ASP.NET
ASP.NET is a Web application framework developed and marketed by Microsoft to allow programmers to build dynamic Web sites, Web applications and Web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor to Microsoft's Active Server Pages ...
, it allows software developers to build a Web application
Web application
A web application is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language and reliant on a common web browser to render the application executable.Web applications are...
as a composition of three roles: Model, View and Controller. A model represents the state of a particular aspect of the application. Frequently, a model maps to a database table with the entries in the table representing the state of the application. A controller handles interactions and updates the model to reflect a change in state of the application, and then passes information to the view. A view accepts necessary information from the controller and renders a user interface to display that.
In April 2009, the ASP.NET MVC source code was released under the Microsoft Public License (MS-PL).
The ASP.NET MVC Framework couples the models, views, and controllers using interface
Interface (computer science)
In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...
-based contracts, thereby allowing each component to be easily tested independently.
Release history
Date | Version |
---|---|
10 December 2007 | ASP.NET MVC CTP |
13 March 2009 | ASP.NET MVC 1.0 |
10 March 2010 | ASP.NET MVC 2.0 |
13 January 2011 | ASP.NET MVC 3.0 |
20 September 2011 | ASP.NET MVC 4.0 Developer Preview |
View engines
The view engines used in the ASP.NET MVC 3 Framework are the Razor View EngineMicrosoft ASP.NET Razor View Engine
Razor is an ASP.NET programming syntax used to create dynamic web pages with the C# or Visual Basic programming languages. Razor was in development in June 2010 and was released for Microsoft Visual Studio 2010 in January 2011...
and the Web Forms view engine. Both view engines are part of the MVC 3 framework. By default, the view engine in the MVC framework uses Razor
.cshtml
and .vbhtml
, 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 postbackPostback
The term postback has three meanings, depending on the context, one in relation to eCommerce as a web service, another in relation to web development, and one in relation to open-source software.-In eCommerce:...
model, any interactions are routed to the controllers using the ASP.NET Routing
Rewrite engine
A rewrite engine is software that modifies a web URL's appearance . Rewritten URLs are used to provide shorter and more relevant-looking links to web pages...
mechanism. Views can be mapped to REST
Representational State Transfer
Representational state transfer is a style of software architecture for distributed hypermedia systems such as the World Wide Web. The term representational state transfer was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation...
-friendly URL
Uniform Resource Locator
In computing, a uniform resource locator or universal resource locator is a specific character string that constitutes a reference to an Internet resource....
s.
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 popular Java Templating engine, StringTemplate.
- Spark is a view engine for the ASP.NET MVC (and the Castle Project MonoRail) frameworks.
- NDjango is a port of the popular Django templating engine to .NET. It is written in F# and comes with Visual Studio extension including full Intellisense support
- Naked Objects MVCNaked Objects MVCNaked Objects MVC is a software framework that builds upon the Microsoft ASP.NET MVC Framework.As the name suggests, the framework synthesises two architectural patterns: naked objects and Model-view-controller . These two patterns have been considered as antithetical...
- an implementation of the naked objectsNaked objectsNaked objects is an architectural pattern used in software engineering.-Definition:The naked objects pattern is defined by three principles:...
pattern using ASP.NET MVC - Razor is a view-engine developed by Microsoft and released with MVC 3 that is optimized around HTMLHTMLHyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
generation using a code-focused templating approach.
Further reading
- Jon Galloway, Phil Haack, Brad Wilson, and K. Scott Allen, Professional ASP.NET MVC 3, Wrox, 2011, ISBN 1118076583
- Jeffrey Palermo, Ben Scheirman, Jimmy Bogard, and Eric Hexter, ASP.NET MVC 2 in Action, Manning Publications, 2010, ISBN 193518279X
- Steven Sanderson, Adam Freeman, Pro ASP.NET MVC 3 Framework, Second Edition, Apress, 2011, ISBN 1430234040
- Jonathan McCracken, Test-Drive ASP.NET MVC, Pragmatic Bookshelf, 2010, ISBN 1934356530
- Stephen Walther, ASP.NET MVC Framework Unleashed, Sam's, 2009, ISBN 0672329980
Open-source projects
- ASP.NET MVC Project Awesome a rich set of helpers for building interactive Ajax-enabled Web applications.
- ASP.NET MVC SiteMap Provider SiteMapProvider implementation for the ASP.NET MVC framework.
- ASP.NET MVC Controls Toolkit A complete set of server controls for ASP.NET MVC.
- jQuery ASP.NET MVC Controls A pack of ASP.Net MVC compatible controls based on jQueryJQueryjQuery is a cross-browser JavaScript library designed to simplify the client-side scripting of HTML. It was released in January 2006 at BarCamp NYC by John Resig...
and jqGrid - Dev Magic Fake A Framework to TDD Test Driven Development and simulate the underline layers of the MVC projects without writing code
Sample projects
- EFMVC - ASP.NET MVC 3 and Entity Framework 4.1 Code First Demo web app using ASP.NET MVC 3 RTM, Razor, EF Code First and Autofac
- ProDinner - ASP.NET MVC EF4 Code First DDD jQuery Sample App shows the usage of DDD, EF4 Code First and jQuery in asp.net mvc, it also has Multi-Language UI (using resource files) and very rich and responsive UI
- Mvc Music Store a sample store which sells albums online, demonstrating ASP.NET MVC's productivity features and data access via Entity Framework 4.
- NerdDinner shows the very basics of ASP.NET MVC also the usage of OpenID, Bing Maps, Twitter Integration etc.