I think this is a good book for developers that want to learn ASP.NET MVC. And I think today every .NET Web Developer should learn MVC. Learning MVC will help you understand basic web concepts and even when you are developing WebForms applications you can profit a lot from that.
I like the book, because it looks a bit further than just ASP.NET MVC as it comes out of the box. With chapters about full system testing, AutoMapper, MvcContrib and NHibernate it deals with advanced topics that are neglected in most other books about MVC. The authors give a somewhat more opinionated overview how modern web applications should be created. This makes the book stand out among typical MVC books.
What I miss in the book is primarily the integration of MVC with the EntityFramework. The book only focuses on NHibernate. This was the right thing to do with the first version of MVC, however today the EntityFramework has made a lot of progress, and in my opinion it should be considered the default choice for ASP.NET MVC.
If you are already familiar with ASP.NET MVC or have even read a previous version of the book, don't expect to learn too much about the new features of MVC 4. Only the last two chapters of the book deal with specifics of the fourth release of the framework (probably the book was initially planned for MVC 3, but the fast release cycle of the MVC team made the authors skip directly to MVC 4).
Nevertheless, for developers that want to learn MVC, I think this book should be a must-read.
Why should EF be the default choice for MVC?
ReplyDelete@Jef
ReplyDeleteI personally still prefer to use NHibernate because I have quite a lot of experience with NHibernate.
But I think Microsoft has made big progress with EF and is continuing to do so.
I think integrating MVC with EF is just easier and a more seamless experience than integrating MVC with NHibernate. (partly because of the tooling and documentation that MS provides, but also because there is less accidental complexity involved in my opinion).
And EF is really starting to provide neat features with code-first, data-annotations and migrations ... of course you can get the same with NHibernate, but you have to get much more involved while the result is not necessarily better...