OR/M Madness in Microsoft

time to read 3 min | 530 words

It looks like someone in Microsoft is loving OR/M even more than I do. They are going to release two competing OR/M frameworks. DLinq (now Linq for SQL) and Linq for Entities.

I guess that no one in microsoft has read In Search of Stupidity: Over 20 Years of High-Tech Marketing Disasters. It is going to Windows 9x vs Windows NT all over again.

  • How are you going to explain to a customer what is the difference between the two?
  • How are they going to choose?
  • What is the upgrade path between the two?
  • Which customer exactly is going to use the "simple but limited" framework?
  • What about future development of DLinq? Will it try to reach feature parity with Linq For Entities?

Someone needs their head examined, I think.

I have no problem whatsoever with giving different levels of abstraction for different problems (see NHibernate & Active Record, for instance) but those are two different framework from the same vendor to do the same thing.

Imagine the architecture talks:

  • Now we will talk about the data access. We have decided to use Microsoft's OR/M.
  • Which Microsoft OR/M ? There is Linq for SQL and Linq for Entities.
  • Huh? What is the difference?
  • No one know for sure. They say that Linq for SQL is for simple stuff, and Linq for Entities is for complex things.
  • We are not build simple software, we will use Linq for Entities. But if they need to offer a second framework, just to make us use their OR/M, maybe this Linq for Entities is too hard to use?