Last night at DevEvening we had on ORM showdown. 6 people each gave a 15-20 minute presentation on a different ORM.
I went first and gave a quick overview of SubSonic. There are some screencasts which are similar to the demos I gave on the SubSonic site.
Next up was Dave Hawes who spoke about LLBLGen Pro.
This struck me as a cross between SubSonic version 2 and Entity Framework. I was impressed to see Access & Azure support. It's a commercial product and so offers a level of support. If I was looking for an ORM similar to SubSonic but with commercial support I would look at this.
Before we broke for food, Jeremy Skinner presented NHibernate.
I'm aware of NHibernate being very popular so was keen to get a look at it. It's clearly powerful but seems to require a massive amount of configuration via XML files. The fluent version means that the configuration can be in code, but it's still a lot of configuration, even if the model and schema are the same. The prospect of using a bespoke query language (either HQL or criteria) doesn't appeal either.
I still don't see the benefits of using NHibernate yet compared with the other tools avaialble.
After the break for food and an advert for Azure, Andy Pike presented Castle ActiveRecord.
This is an attempt to build implement Martin Fowlers Active Record pattern, based on top of NHibernate and apparently influenced by Ruby on Rails.
Andy claimed that a plus to AR was the lack of code generation. There was still a need to write a lot of configuration code to be able to use it though so I don't buy this argument.
I certainly found this more appealing than working with NHibernate directly and was particularly impressed by the validation functionality. Easy integration with other Castle tools is also an appealing factor.
Nick Haslam enlightened us on Telerik OpenAccess.
The price of this means that I'll probably never use it but I was very curious about it's built in caching and disconnected API functionality. Maybe the Express version, which works with SQLServer Express & Oracle Express, may be a way I may use it. If you're a fan of drag and drop development I can see this being appealing.
And finally, Howard Richards covered LINQ to SQL.
This is SQL Server only and "de-emphasised" in place of Entity Framework. As such it is no longer being developed. From that respect I don't think I'd consider using it. If I wanted a designer based way of interacting with an ORM without the expense of the Telerik solution this could be the answer.
As a short bonus at the end Jez gave us a quick overview of something, he'd written himself, which he uses rather than an ORM. While interesting, the general consensus of the room seemed to be that while we'd just spent the last 2 and a bit hours learning about some of the solutions which already exist, the prospect of spending any time and effort doing the same ourselves didn't seem worth the effort.
I can't see a good reason not to use an ORM. At the very least they have the potential to save lots of time.