Writing this book review feels kind of weird because it hasn't actually hit the shelves yet. It is accessible however through the Manning Early Access Program. This book provides a clear insight of using NHibernate as the data access layer of your applications and beyond.
The excessive amount of NHibernate features isn't the only thing that is written down. There is also a good coverage of OO principles and Domain-Driven Design, although it isn't the primary objective of the book of course. This is especially true for the first and the last three chapters. If you've already read the nominal books DDD and you are familiar with Persistence Ignorance, then you can safely skim through these chapters unless you want to see the interpretation of the authors when it comes to these principles. If you are new to these concepts, then these chapters are of great value to wet your appetite.
Although this book covers a lot of ground, I would certainly recommend it when you're rather new to NHibernate and ORM's in general. I guess this still includes me, although I've been using NHibernate for quite some time now. If you already have some experience with NHibernate, then this book probably doesn't teach you that much. Still, it can quickly get you up to speed when you want to use a particular feature that you haven't used before.
The only minor thing about this book is that I'm afraid that it will soon be out-of-date. The book only covers NHibernate 1.2.x and no features from the upcoming 2.0 release, which adds a lot of new and interesting features. It would be nice if the book already covered some of these features as most of them are ported from Hibernate itself, which is the original Java version.
On the other hand, this book provides an in-depth view of the basic features of NHibernate, which aren't necessarily going to change that much over time anyway.
Let me round off this post by saying that I'm really impressed by the list of books that Manning is going to release the next couple of months. These are the ones that I'm particularly interested in:
- Building Domain Specific Languages in Boo
- ASP.NET MVC in Action
- Brownfield Application Development in .NET
- IronRuby in Action
I already bought LINQ in Action and also read a lot of good things about C# in Depth, which I'm going to pick up soon.