orbifold think. visualize. understand.

Linq To Sql or Entity Framework?

The whole story around Linq To Sql (L2S) and the Entity Framework (EF) is rather disturbing. On a personal level, lots of people have asked me why I did not use the EF in my Northwind factory. So, here are my five cents on the subject.

It seems Microsoft had the intention to ship the EF with VS2008 but a lack of time forced them to drop it and it's now planned for SP1. Still even at this SP1-beta stage it's somehow unacceptable that the multi-tiered solution, which should be there out of the box, is not present. Neither in L2S nor in the EF. It's unacceptable for me in the sense that the whole world is now gravitating around multi-layered applications and any ORM or DAL system should enable this scenario (No out-of-the-box story!).

There are some rumours that Microsoft is abandoning L2S... This post also highlights some political issues related to L2S which make frown but, well, the world is about money and power. I just hope they don't drop it in favor of Astoria and yet even bigger convolutions.

LINQ to SQL was actually designed to be host to more types of back-ends than just SQL server. It had a provider model targeted for RTM, but was disabled before the release. Don’t ask me why. Be satisfied to know that is was not a technical reason. Internally, it still behaves that way. The trick is to find out how to swap in a new one when everything from the language to the runtime wants to keep you from doing it. [Emphasis added.]
I was suprised to see my Northwind Factory sample advertised as an early all-in-one showcase. Hmmm, lovely, but it makes me wonder how well L2S has been adopted in the industry. Tell me.

The Data Programmability Team never owned LinQ to SQL, it was owned by the C# team. That's why we have two O/R mappers, both teams wanted to ship theirs.
Now, how does Materialise cope with all this? I don't see a problem in replacing L2S by EF or even some non-MS system. To me L2S is the implementation of an idea, as much as WCF is the implementation of the 'service' idea. Especially in a web-world, technologies come and go. L2S will be old-fashioned in a year from now. So, as an enterprise architect, I don't pay too much attention to the whole discussion (though I hope Microsoft settles with a beautiful and uniform solution in the future). I know our developers get nervous and there is a big appeal in using L2S or EF; the idea that one can create a whole data access layer through some drag-drop is indeed rather pleasing in comparison to all the plumbing of the past decade. It all depends on which level you look at things.