Since I wrote the foreword to the first edition of this book, a lot has happened with ASP.NET MVC. In 2011, Microsoft released ASP.NET MVC...twice. The first time included lots of great improvements to the framework, but one of the most noticeable improvements was the new Razor view engine. Razor removes all the syntactic cruft involved in writing views via a streamlined clean syntax. More importantly, it’s very flexible and can be used outside of ASP.NET.

The second time they shipped ASP.NET MVC, the release was ASP.NET MVC Tools Update. The ASP.NET MVC runtime did not change at all. In fact, it was the same exact runtime installer. But wow did the tooling change! ASP.NET MVC included scaffolding based on the Entity Framework Code First model. This provided all the code needed for a simple CRUD interface over a set of entities. Also included in that release was NuGet 1.0 RTM. NuGet is a package manager that makes it easy to discover and install libraries (in the form of NuGet packages) into a Visual Studio project. In fact, many of the third-party libraries included in ASP.NET MVC were shipped this way. The benefit of this approach is that even after a project is created, it’s very easy to discover and install updates to these third-party dependencies as new versions ship.

Microsoft recently deployed the NuGet Gallery written using ASP.NET MVC. It was probably my first real-world web application built using the framework I’ve spent the last four years working on. And I am most certainly biased when I say this, but I believe it’s the truth: it was a joy to work on. I certainly found some pain points, but overall, it was a good experience. I hope you feel the same way as this book guides you through the inner workings of ASP.NET MVC and you too build some web applications with it.

Phil Haack