preface

For as long as I’ve been interested in software development, the most challenging and fun aspect has always been problem solving: from the business level to more technical levels, I’ve routinely spent countless hours thinking about the best solution to my current problem.

After discovering the .NET framework, I investigated how to write business applications. I was particularly worried about how I would load and store information in a database. I tested the then-popular DataSet approach and the low-level ADO.NET API. Although this API was easy to set up, it turned out to be inefficient and inflexible, and it simply felt wrong. Anybody who has written countless plumbing code and SQL queries would understand what I mean. Therefore, I did some research and discovered object/relational mapping (ORM) tools. This was exactly what I was looking for: a non-intrusive, object-oriented persistence approach supporting relational databases. I chose NHibernate after testing numerous alternatives because it fitted that description the best.

I remember downloading and testing NHibernate 0.4. It was surprisingly stable and provided the basic features I needed. More than that, it came with a wonderful community of open source developers. Being able to share my thoughts and having developers willing to help each other was one of my best learning experiences. I eventually shipped my first commercial application using NHibernate 0.7. I’ve used it in countless other projects, and I think I’ll continue to use it in the years to come.

When Manning Publications approached Tobin and me about writing a book on NHibernate, we already had an interest in writing tutorials and helping people on the NHibernate forum. Nonetheless, writing a book was an intimidating challenge! We learned to write in a simple and readable way for the benefit of the reader. It turned out to be an experience that we recommend anyone try at least once.

Although Java developers have used ORM and written about it for years, this technology is still quite obscure to .NET developers. This book explains not only how to use and extend NHibernate but also the theory behind it. We hope that this book will help enlighten you regarding an indispensable technology that’s not so simple to learn.

Pierre Henri Kuate