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.