Author: Jeffrey Palermo, Ben Scheirman & Jimmy Bogard
Publisher: Manning, 2009
Aimed at: Advanced programmers
Cons: Difficult to read
Reviewed by: Ian Elliot
This book covers the ASP .NET MVC V1.0 Framework and an edition covering V2.0 is in preparation. The book attempts to be a practical introduction to MVC as used by ASP .NET but it actually casts its net a bit wider and can't help but mention other technologies and implementations of MVC. This is all great if you are an expert but if you are trying to get to grips with what is going on it really doesn't help.
It also has a tendency to tell you advanced things while introducing you to the basics. The result is that in the main this book is heavy going because its difficult to read. However, it does cover the ground.
After a general introduction to MVC and the ASP .NET implementation in particular it tackles each of the three components in turn starting with the Model. Here, instead of getting on and explaining how the Model works and the range of data access methods you might use it dives into domain driven design - i.e. lots of theory before practice.As a result you might have trouble seeing the workings of the model because of the size of the example and the distracting asides - do you really want to know about the Rhino Mocks library while trying to figure out how MVC works?
The book then moves on to the Controller and the View in depth and again the problem is that rather than get on with explaining the plain and simple workings of these components things are complicated by other issued such as inversion of control, dependency injection - relevant but much better left until later.
From here we move into routing which continues the "let's bring everything we can into the story" approach. For example, why do we need to have a URL explained using a Unix command (curl) which to use you have to download the Cygwin shell? This is like speaking in a foreign language just to prove that you can and are cultured.
The next chapter deals with extending the ASP .NET MVC framework and again the opportunity to go off and explore strange new places (for a .NET programmer) cannot be resisted with Spring, Castle Windsor and Structure Map making an appearance. If you want to use Inversion of Control with MVC then perhaps this is a good thing - but only after you have mastered MCV.
Chapter Seven considers the scaling properties of MVC and this is a useful look at the problem and some of the solutions. Chapter Eight looks at making use of traditional ASP .NET facilities - components, caching, sessions and so on. A chapter on Ajax method follows and it to introduces a lot of additional theory and the jQuery library.
Finally the book draws to a close with "Hosting and Deployment" which considers the problems of having to host MVC applications on a range of possible servers. Chapter Eleven goes deeper into other MVC implementations including MonoRail and Ruby on Rails - why this is included in a book on ASP .NET MVC isn't entirely clear but itis always good to look over the fence. Chapter 12 deals with best practices and the final chapter presents some recipes for us to examine. These are fairly off the main track - jQuery autocomplete text box, using NHibernate and Integrating with the Spark view engine - not really ASP .NET MVC recipes as you would find in other cookbooks.
Overall this book is really only suitable for the advanced MVC programmer who wants to extend what they know into the use of more broadly based technologies. The big problem with the book is that it is difficult to read and jumps all over the place offering you clever bits of information which mostly just confuse the beginner. If you are looking for a simple and focused guide to ASP .NET MVC then this book isn't for you.