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.
On the SA1101 rule in the source analysis tool which seems to have a problem with 'this'.
Read more
I think L2S and EF have potential but knowing Microsoft’s past history of highlighting a solution/technology for a year and then moving on to something else isn’t new. EF or L2S isn’t first try by Microsoft to create an ORM solution. In my view it is important for an ORM solution to make it easier for developers to get their work done. But a high majority of the solutions simply make it more complex and require developers to learn a large set of new techniques/terms and ways of doing things. That was our keen focus when we developed Quick Objects and I truly believe that we do offer the best combination of Code Reuse and Code Generation. The flexibility and support for WCF and disconnected scenarios is unmatched combined with built in validation and lightweight design.
In my view, Entity Framework is bent on providing all possible features that anyone has ever blogged about but that does not necessarily make EF any easier to use. For example being able to map a conceptual object schema to database schema is cool but the effort involved in maintaining that multiple level of mapping requires a lot of time and of course failure to do so will result in tons of runtime errors.
On the other hand, I do like LINQ and its extensibility so I believe that is a nice addition to .NET but I am little scepticle on the EF acceptance.
In any case third party ORM frameworks and tools will continue to provide a good source of alternative just like there are tons of alternatives for UI components.
Ish
By Ish Singh June 4, 2008 - 2:59 am