As some of you know, I’m not a web developer. I had a short affair with webforms, which ended… quickly leaving bad taste in my mouth. However it’s hard to ignore positive buzz around Microsoft’s “other” framework for building web applications – namely ASP.NET MVC. Especially it’s hard to ignore that the buzz comes from people I know, respect and hope they know what they’re talking about. I was quite happy to see that some of these people wrote a book about this framework so I decided to pick it up. I was expecting a great book, and a great book I got.
ASP.NET MVC in Action, judging from the title has a clear purpose – bringing you up to speed with the said framework. Most ‘framework’ (or language) books take an easy approach to the task – you get basically annotated specification with few better or worse samples and you’re left with figuring out (based on your own mistakes most of the time), which elements to use, and which not, how to use the framework/language in broader context of application and how to leverage its strengths to build testable, maintainable application that you ship and hopefully make money on. So is this book like that – no, and that’s its single greatest feature.
While the book does a good job at teaching you how to use the framework, it’s as much about the framework as about principles. I didn’t count but in the first chapter alone, I think word ‘testable’ appears more time than the word ‘MVC’. You get to learn about maintainability as much as about view helpers, onion architecture, as much as about controller actions… I think you get the idea.
But wait – there’s more. ASP.NET MVC is not a lonely island, it enters an existing (and growing) ecosystem of other tools and frameworks. The authors acknowledge that fact, and take full advantage of it. As as result of that you’ll learn as much about the framework’s API, as about how to plug it with extending projects (MVCContrib) how to use it in conjunction with IoC containers, persistence frameworks etc. All that while still keeping an eye on maintainability and proven practices. And to help you choose wisely, it contains an entire chapters dedicated to direct competitors of ASP.NET MVC – Castle Monorail, and Ruby on Rails.
While no book can make you a better developer by itself, they can be a great help in pointing you into right directions, guiding you to avoid pitfalls and common mistakes, and this by all means is such a book.