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
The latest edition of Dino Esposito's book on ASP.NET MVC has been brought up-to-date and even includes something on the very latest Web API.
ASP.NET MVC was the way to create websites using Microsoft technology only a short time ago but now it is just one of an ever-growing number of technologies that Microsoft offers to help you "active" web sites.
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.
Author of this book, Dino Esposito was one of the vigorous proponents of ASP.NET web forms and he too has had to work hard to convert to the new religion. He says in his introduction to the 3rd edition:
Today, more than ten years later, ASP.NET is showing signs of age, and may started even questioning the real necessity of having web frameworks at all.
Switching to ASP.NET MVC is more than ever the natural follow-up for ASP.NET developers.
However, you can't help but feel Esposito isn't entirely convinced by his own arguments.
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 5.0.
Part 1 of the book, four chapters in total, covers the fundamentals and naturally this has hardly changed in structure from the previous edition.
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.
Part II is titled MVC Software Design and it deals with a collection of practical topics - error handling, localization, security, designing controllers and testing, This is mostly about the practical details of getting an MVC web site to live in the real world and covers details such as SEO, implementing a secure membership server and customizing controllers.
A new chapter at the end of Part II - An Executive Guide To Web API - introduces, at a very introductory level Microsoft's latest web technology. You can once again tell that the author doesn't entirely believe that this is an necessary technology:
"In this regard, Web API is at least the latest attempt - and hopefully the last and truly definitive one - to provide an ideal framework for web services over HTTP."
The chapter goes on to explain that Web API is really the successor to the overly complex WCF and this is true - but it would be good if Microsoft also understood this idea and stopped claiming that it was a general purpose way to write a web site and an alternative to every flavour of ASP.NET.
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. The new chapters added in this edition aren't really core to MVC and they are more a reaction to current events but they are useful.
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.