I read Programming ASP.NET MVC 4, Developing Real-World Applications with ASP.NET MVC, as part of the O'Reilly Blogger Review Program. This is the first ASP.NET MVC 4 book I have read thus far and it contains a lot of information on ASP.NET MVC and the new features in ASP.NET MVC 4. It not only discusses ASP.NET MVC, but discusses best practices, design patterns, and various programming principles.
Programming ASP.NET MVC 4
It's been awhile since I have read a book on ASP.NET MVC. When it first came out, I read about 4 or 5 books and had a really good handle on which books you should read depending on your skill level and what you wanted from a book. I was also a technical reviewer on a couple, like Pro ASP.NET MVC Framework and ASP.NET MVC in Action. This not only helped me form an opinion on the books, but also helped me teach the new features to those attending my Tampa ASP.NET MVC Developer Group where I taught ASP.NET MVC from scratch to over 200+ members. Unfortunately, I can't provide an educated opinion on which books are the "best" anymore, but I can give you some insight to Programming ASP.NET MVC 4.
First thing I noticed about this book is that it's pretty thorough in terms on topics mentioned. It not only hits the topics of MVC, but it attempts to teach you best practices, design patterns, and programming principles along the way. It does do this while sacrificing hand-holding and depth in many cases. You will find that topics mentioned in the table of contents can often be a page or two and chapters can sometimes be only 5 or 6 pages. I rather enjoyed the short, to-the-point topics with short examples since I am already familiar with the information, but those completely new to ASP.NET MVC and certain topics may find the coverage a little terse.
The book takes you through all the appropriate ASP.NET MVC topics and then some, which not only helps you get up to speed on ASP.NET MVC, but also AJAX, various design patterns and principles, EF Code First, logging and health monitoring, security concerns, mobile development, testing and build automation, performance considerations, etc. Like I said, it is pretty thorough (but short and to-the-point) and covers a lot more than just ASP.NET MVC. For those interested in the new features in ASP.NET MVC 4, you are introduced to features like Asynchronous Controllers, Display Modes, Bundling and Minification, and Web API. As an FYI, I mentioned some of the new features in ASP.NET MVC 4 as part of my ASP.NET MVC 4 Tutorials.
I enjoy books that create real-world example when discussing topics, and Programming ASP.NET MVC 4 does this by creating an online auction site, called Ebuy. I checked out the source code on GitHub and calling it "real-world" is stretching it. There really isn't that much to the code other than boilerplace ASP.NET MVC, an AuctionsController, Auction Model, and a short example of an actionfilter, modelbinder, actionresult, etc. The code sample doesn't really do the book justice as the book really hits a lot of nice features and you can't find most of it in the Ebuy Application on GitHub (which I did not run, just browsed). I hope the developers make the application a bit more feature-rich and use more new features in ASP.NET MVC 4, etc.
The appendixes are a nice collection of useful tidbits on ASP.NET MVC WebForms and MVC Integration, Nuget, and a list of best practices when developing ASP.NET MVC Web Applications. If you are a seasoned MVC developer you will enjoy the handy reference list, and new MVC developers will appreciate the fact that these best practices (although brief) will help you avoid mistakes that others have learned over the years.
Overall, Programming ASP.NET MVC 4 is a solid book that touches on quite a few subjects and compacts them into short descriptions and samples. I wouldn't suggest it as a first book for those new to ASP.NET MVC, but rather those developers with some experience and looking for best practices, an overview of the new features in ASP.NET MVC 4, and information on a breadth of topics and technologies closely related to ASP.NET MVC. The book is a bit terse and to-the-point, so if you are looking for more depth, explanations, and hand-holding, you may want to choose another book. If you are looking for a robust amount of companion code on GitHub associated with Ebuy and samples in the book, you will be greatly disappointed at this time. Hopefully the authors will remedy that situation.
Learn more about Programming ASP.NET MVC 4 on the O'Reilly Website.