Author: Dino Esposito
Publisher: Microsoft Press
Aimed at: ASP.NET Web Forms programmers
Pros: Pragmatic introduction
Cons: Not suitable for the complete beginner
Reviewed by: Alex Armstrong
ASP.NET MVC is the new way to create websites using Microsoft technology. The original ASP.NET, now called Web Forms to distinguish if from MVC, was a major technology that from the day it was introduced had important flaws. However, if you were a Microsoft web programmer you spent time learning about its principles and later about ways around its limitations. Overall it was a good scheme that allowed the programmer to use many of the approaches that worked well for desktop apps.
One of the vigorous proponents of ASP.NET web forms was the author of this book and he too has had to work hard to convert to the new religion. To quote from the introduction:
"From what I can see, most people using Web forms are maintaining applications written for ASP.NET 2.0 and topped with some Ajax extensions. Web Forms will continue to exist for legacy projects. I'm not really sure that for new projects the small changes we had in ASP.NET 4.0 and those slated for ASP.NET 5.0 will really make a difference. The real big change is switching to ASP.NET MVC. Again that's just a natural follow up for ASP.NET developers."
So ASP.NET web forms is dead as a future technology and its is time to learn a new way. This book attempts to provide an easier transition to ASP.NET MVC 3.0.
Part 1 of the book, four chapters in total, covers the fundamentals. Rather than hammering home the whole MVC idea as abstract theory, the book focuses on the routing idea. This is really what ASP.NET MVC is all about and getting this idea across to existing web forms programmers is the main challenge the book takes up. This part of the book works well unless you are coming to ASP.NET MVC from a traditional HTML background, when you might well wonder what the fuss is all about. From routing the book move on to Views, Model-binding and input-forms. The approach overall is pragmatic rather than "patterns-dominated". The book describes MVC as it actually is and reflects the way it is implemented, which in the main is only a partial or very weak reflection of a true MVC architecture. Don't let this put you off - although it is bound to annoy many a purist.
Overall, this is a book that will help the ASP.NET web forms programmer make sense of the new MVC approach. It doesn't force any particular design philosophy on the reader and it is a realistic account of what the new approach to building Microsoft websites is all about. It presents short examples which are enough to let you see how things are working. You might criticise it for not having any big examples that take your from the start of a website to something realistic, but this isn't a step-by-step book - it is about ideas. As such it isn't suitable for the complete beginner in need of a more gradual approach - that would take a much thicker book.
If you know classic ASP.NET then this is a good and compact approach to the new MVC way of doing things, but don't expect it to deliver a complete website - that's up to you.