I recently read ASP.NET MVC in Action by Jeffrey Palermo, Ben Scheirman, and Jimmy Bogard. The publication is an excellent introduction to the the ASP.NET MVC framework. The authors provide excellent background on the problems facing the MS development community and the solutions that ASP.NET MVC has offered to these problems. These problems include the general ineptitude of the view engines with which traditional ASP development and even webforms development were driven.

ASP.NET MVC is the clear answer to seperation of concerns that webforms attempted to give us with the code-behind files. The introductory chapter will get the beginner up-and-running quickly. The diagrams illustrate the points that the concise text makes. Even those without any experience with an MVC framework will find the directions and explanations well-thought-out and easy to follow.

Beyond the introductory content, I was genuinely impressed with the depth that the authors dove into the community and the framework. Phil Haack's route debugger, a piece of code intimately familiar to those of us who have been following the development of the framework since its early days, is mentioned and code based upon it is provided. The authors discuss such advanced techniques as creating a custom controller factory, a must for those of us who employ dependency injection.

Each new concept is introduced with illustrative code examples. I was particularlly impressed with Chatper 9: Ajax in ASP.NET MVC. A note on unobrusive javascript reads:

You might notice throughout this chapter that I prefer unobtrusive Javascript. This means that the functionality of the page degrades gracefully in the absence of Javascript.

This shows careful attention by the authors to provide guidance on best practices. You will find this type of detail throughout the book. This is very refreshing because the Microsoft development community has lagged behind other communities in following wise guidelines and setting sensible best-practices.

The new Microsfot embrace of open-source is also made obvious as the authors present jQuery code in the AJAX chapter.

Chapter 10, hosting and deplpoyment, is a testament to the thoroughness with which the framework is covered. Deploying on IIS6 and earlier, something that can be quite tricky, is covered well. The configuration option of using .aspx extensions as well as the option to use URL rewriting are covered. URL rewriting can be quite difficult, but the authors provide examples to bring it all together.

The ASP.NET MVC framework is a breath of fresh-air for the Microsoft development world. It is a sensible, logical framework that allows extensability. ASP.NET MVC and WCF are the two best frameworks that Microsoft has ever produced in my opinion.

ASP.NET MVC in Action will guide you from your first project through advanced topics such as AJAX and deploying on suboptimal (read IIS6) hosting environments. The writing style is clear and concise. Diagrams and code examples are abundant. I recommend it for anyone looking for a great resource for learning about or becoming a better user of the ASP.NET MVC framework.