Earlier I had compared NHibernate and SubSonic and chose SubSonic because it had migrations. I’ve done two projects, one using SubSonic and the other using NHibernate and I can now compare the features a little better.
NHibernate is documented better than I originally thought if you look at nhforge.com, not at the hibernate site. It also does some nice schema generation based on your mapping. You still have to go through “XML Hell” to map the site, unless you use another mapper or FluentNHibernate (which does the mapping for you in code) or another tool. As an ORM SubSonic feals cleaner and quicker since it generates the ORM classes from the database, where-as NHibernate generates the Schema from your mappings and ORM classes.
Generating the schema in NHibernate, even with Fluent-NHibernate, seems to take more work than generating the classes in SubSonic took. However, it’s still quite simple.
Better support for Oracle was one of the primary drivers for me using NHibernate for this project, but after making the switch I’ve found a lot more interesting stuff, including an exciting ecosystem of NHibernate addins, plugins and updates. I think it really appeals to the gadget geek in me.
The other thing that kept me thinking about NHibernate is the sheer number of other blogger / developers out there are using NHibernate! After I started looking I was surprised to see how many blogging developers actually used NHibernate for their projects. So not only do I feel like I’m in good company right now, but there are also a lot of people out there with good advice on best practices.
So, I’m taking another look at NHibernate right now, and I might post on it again later!