In February 2007, Scott Guthrie (“ScottGu”) of Microsoft sketched out the core of ASP.NET MVC while flying on a plane to a conference on the East Coast of the United States. It was a simple application, containing a few hundred lines of code, but the promise and potential it offered for parts of the Microsoft web developer audience was huge. As the legend goes, at the Austin ALT.NET conference in October 2007 in Redmond, Washington, ScottGu showed a group of developers “this cool thing I wrote on a plane” and asked if they saw the need and what they thought of it. It was a hit. In fact, many people were involved with the original prototype, codenamed Scalene. Eilon Lipton e-mailed the first prototype to the team in September 2007, and he and ScottGu bounced prototypes, code, and ideas back and forth. Even before the official release, it was clear that ASP.NET MVC wasn’t your standard Microsoft product. The development cycle was highly interactive: there were nine preview releases before the official release, unit tests were made available, and the code shipped under an open source license. All of these highlighted a philosophy that placed a high value in community interaction throughout the development process. The end result was that the official MVC 1.0 release – including code and unit tests – had already been used and reviewed by the developers who would be using it. ASP.NET MVC 1.0 was released on 13 March 2009.
ASP.NET MVC 2 Overview
ASP.NETMVC 2 was released just one year later, in March 2010. Some of the main features in MVC 2 included:
UI helpers with automatic scaffolding with customizable templates
Attribute-based Model validation on both client and server
Strongly-typed HTML helpers
Improved Visual Studio tooling
there were also lots of API enhancements and “pro” features, based on feedback from developers building a variety of applications on ASP.NET MVC 1, such as:
Support for partitioning large applications into areas
Asynchronous Controllers support
Support for rendering subsections of a page/site using Html.RenderAction
Lots of new helper functions, utilities, and API enhancements
One important precedent set by the MVC 2 release was that there were very few breaking changes. think this is a testament to the architectural design of ASP.NET MVC, which allows for a lot of extensibility without requiring core changes
ASP.NET MVC 3 Overview
ASP.NET MVC 3 (generally abbreviated as MVC 3 from now on) shipped just 10 months after MVC 2, driven by the release date for Web Matrix. If MVC 3 came in a box, it might say something like this on the front:
Expressive Views including the new Razor View Engine!
.NET 4 Data Annotation Support!
Streamlined validation with improved Model validation!
Powerful hooks with Dependency Resolution and Global Action Filters!