This review is part of a series of book reviews I have agreed to do for Packt Publishing. I am not being paid for this review, although I did receive a free copy of the book. I do not work for either Packt Publishing or Microsoft.
ASP.NET MVC 1.0 Quickly was written by Maarten Balliauw and published in early 2009. The book caught my eye as I’m currently working on a project using ASP.NET MVC and I decided I could probably benefit from reading this book.
Who This Book is For
This book is intended for “ASP.NET developers who want a fast-paced guide to building powerful web applications using the ASP.NET MVC framework.” I’ve been using .NET for a few years now, though admittedly I never learned Webforms. Although I consider that a blessing, a knowledge of Webforms is somewhat assumed in this book. All of the code examples are written in C# so you should be familiar with that as well.
Beginners may want to shy away from this book until they’re really familiar with web development concepts and know their way around Visual Studio.
Let’s Dig In

Chapter 1 discusses what MVC (model-view-controller) architecture actually is and dives into reasons why a developer may want to choose ASP.NET MVC over traditional ASP.NET Webforms. My only complaint about this chapter is that the author gives any reason to use Webforms. Yes, Webforms have a lot of built-in controls and event handlers – but let’s be honest, they’re not really very good tools. As a JavaScript guy, I’ll be the first to point out that you can develop data-driven solutions with frameworks like ExtJS that are cross-browser compatible and W3C compliant… plus your application will simply look better out-of-the-box.
Chapter 2 has the reader create a new MVC Application. Maarten shows us what a new MVC project contains by default (he calls it “inside the box”), which is a rather helpful introduction to ASP.NET MVC as it’s complete with screenshots from Visual Studio. I particularly like the “Employee” example, and Maarten does a good job showing the reader how the model/view/controller interact with one another. That being said, the author changes things in each class as the chapter progresses without highlighting or bolding the code sections which have changed – which makes it a bit hard to follow. Maarten also shows us how to build a Unit Test but doesn’t tell us how to run the tests.
The Train Runs off the Tracks
When I got into the third chapter, I have to say that I very quickly became frustrated with the author. Maarten says the following phrase at least 4 times in this chapter: “The examples in this section… can be found in the sample code for this book.” Translation: Go and download the code if you want to follow along, because I’m not going to explain what happens next very well. The book is less than 200 pages (not counting the appendices), and I really wish Maarten had simply pasted the code samples into the book.
I also felt like the author used too many customized examples (extending a built-in class to do X, Y or Z). I’ll agree that this kind of information is useful, but this approach forces the user to endure tangent after tangent. All I wanted was to learn how the MVC framework works – but the use of advanced examples prevents the reader from learning ASP.NET MVC 1.0 “quickly”.
Lastly, Maarten doesn’t talk about unit tests (one of the best reasons to use an MVC framework…) for most of the book. It’s mentioned in Chapter 2, but then we don’t hear about it again until Chapter 9. Personally, I think the author should have asked the reader to build a unit test for every example in the book – but maybe that’s just me.
Some Things I Did Like
Chapter 5 (Routing) had some useful information in there, specifically with regards to creating route patterns. I also enjoyed Chapter 7 (Using Existing ASP.NET Features), where Maarten explains how to use built-in ASP.NET features (like security, globalization, etc.) into an MVC application.
I’m mildly impressed that the author took the time to write Chapter 8 (AJAX and ASP.NET MVC) using jQuery in addition to ASP.NET AJAX. Good concepts, though Maarten again failed to tie any of this back into the previous 7 chapters.
Final Thoughts
I did get some good information from this book, and it’s probably worth reading if you want to learn ASP.NET MVC. I say “probably” only because I don’t know of any books which explain the concept more clearly or in a more organized fashion.
In my opinion, it would have been much smarter to have had the reader build a single application – adding features and parts as each chapter introduced a new concept. But Maarten Balliauw didn’t do that, and I think it really hurts the book. The reader is forced to jump from concept to concept, and not all of the examples follow the “best practice” for an MVC application – to separate functionality into complimentary models, controllers and views.
For example, Chapter 3 has a “Contact” model which interacts with the “Home” controller. There is no “Contact” controller in the author’s example, and we never actually create a view. (I take that back… it might be there in the book’s sample code – but I, like many readers, will never bother to download it.)
The biggest problem for this book is that it reads like a college textbook. It’s full of good information, but students want to learn by doing rather than memorizing definitions and abstract concepts.
Overall, I’d give the book a 3 out of 5 stars. Not terrible, but far from great.