O/R Mapping and .NET

First of all, for those who are wondering, O/R Mapping stands for Object-Relational mapping and is a technique for dealing with data access transparently in those cases where it is suitable. O/R Mapping makes it possible for you to focus more on your object-oriented model than your database schema and SQL. The end result is that you work with data in form of your own, custom objects rather than the generic framework objects such as the DataSet.

With that out of the way, let's get going with this blog-post. As you probably know, MS has delayed ObjectSpaces (Microsoft's O/R Mapper) again and the current plan is now that it in some reincarnation will see the light of day together with WinFS after the release of Longhorn.

A friend of mine has joked that Microsoft have delayed a lot of interesting things lately, such as ObjectSpaces, MBF, and WinFS. He says that generics might be next. This is a joke! I hope...

Back to O/R Mapping. Perhaps it's no longer a priority for MS since there are so many good O/R Mappers now/in the way? Let's have a look at a few examples, and please note that I'm not saying one is better than the other. I'm just trying to raise the interest for this segment as a whole. (Heck, I don't even have an opinion as to which is best myself... and as usual, the answer will vary depending on the context.)

A few examples, starting with some commercial offerings:
  • LLBLGen Pro had improvements in the GUI experience in the latest release. They also now support for Oracle 10g and Firerbird 1.x/Interbase 6.
  • EntityBroker 2004 is out now. EntityBroker has a special focus on remoting and distributed scenarios.
And here are a few open source examples:
  • NHibernate is a port from the very popular Hibernate in Java-land. (Currently in alpha.)
  • NPersist by Mats Helander, who previously wrote the Pragmatier O/R Mapper. Mats has also written a commercial GUI tool called ObjectMapper.
  • Neo has its roots at ThoughtWorks. It has some special features for rich clients and can work with non-database data sources.
Again, there are more! It's time to try O/R Mapping with .NET projects too!