The NHibernate team has released version 1.0 of its excellent object-relational mapping (ORM) framework. NHibernate is a .NET port of the popular Hibernate framework seen in many Java projects. For those of you unfamiliar with ORM, you describe the mapping of your object model to your database using a meta-model, which for NHibernate is stored in XML. Once you’ve got the meta-model in place, you simply ask NHibernate to fetch a Customer. NHibernate crafts up the appropriate SQL (including any required joins) to fetch the data, populates the customer object, and returns it back to you. (NHibernate can do a lot more than this for you including ensuring that commits of multiple objects are done transactionally.) You might be worried about the SQL that NHibernate creates, but it is efficient. One of the developers has asked that if people encounter inefficient SQL, send it to the team and they will try to resolve it.
Congrats to the entire NHibernate team on reaching such a momentus milestone in your project!