Paul Gielens:ThoughtsService

another Endpoint to my thoughts

News

Syndication

Ads


Favorites

Projects

Best Decision to Kill LINQ to SQL

I fully agree with Tim Mallalieu to recommend LINQ to Entities as the data access solution for your application. Sure, for an object-oriented view of the database LINQ to SQL was somewhat useful but in essence this is a scenario that the Entity Framework supports as well. Yes, in some ways the Entity Framework does add a bit of complexity but then again creating a direct mapping with the Entity Framework isn't much more difficult then it would be with LINQ to SQL. Apart from the fact that Microsoft shouldn't have released LINQ to SQL as a product I was quit surprised about the wave of people adopting this piece of technology. A tool for direct mappings misused as an object-relational mapper felt awkward from the start. I hoped for a little while that LINQ to SQL would evolve in a fully fledged object-relational mapper, but the Entity Framework with it's EDM investment had more potential from the start.

We've spend a good amount of time talking with Tim (@PDC) on the future of the Entity Framework. The team is working hard on better POCO and TDD support and to deliver stories that support Domain-Driven Design over the next two releases. Most scenarios Alex and I explained to Tim have been thought through thoroughly and despite certain design choice which are arguable seen in isolation make perfect sense in a broader scope and the vision for the Entity Framework platform.

I'm looking forward to V2 and V3 with input from the dp advisory council... and can't wait to taste mEntity. To bad since I was looking forward to another technology deathmatch with Alex.

Comments

Peter said:

That's the dumbest thing they could have done. Firstly, the L2S adoption is way higher than EF. People have invested a lot of time and effort into developing solutions with L2S. As of this moment, as far as the LINQ part, L2S is better than EF -- more complete. It's also  lighter and faster, not to mention less complicated. With a little bit of TLC it could kick EF butt for a long time.

What people like you don't seem to understand is that not everybody needs those "advanced" features. For most of us those get in the way rather than help.

I won't even go into the loss of credibility that MS inflicted upon itself with this decision. Who is to say that a year from now EF won't be dumped for something new?

They're talking about bringing new features out in the next version of EF that made L2S popular. When is that going to happen, for another year? In the meantime you have people who were happy with L2S but now are looking to switch to something else -- and most likely it won't be EF, once bitten, twice shy -- and those who were looking to start with L2S but now won't.

Strictly from a PR point of view this is a major screw up. From a technical point of view is an even bigger screw up because it shows that they don't have a long term plan, while they expect us to follow their lead. Sad sad sad...

# November 3, 2008 5:27 PM

p.gielens said:

Peter, I can't say I disagree with you while trying to look at it from your perspective. Good thing is that L2S isn't completely being abandoned. It still makes sense for the RAD use cases and provides a nice object-oriented view of the database. I disagree its architecture would be suitable for advanced mapping scenarios and I argue that the current bits would suit the Olso initiative.

I hope MS will publish additional information on how they plan to move the EF forward in a direction that also appeals to current L2S users.

# November 3, 2008 5:58 PM

| Zhang's Blog said:

Pingback from  | Zhang's Blog

# November 3, 2008 10:13 PM

Dennis van der Stelt said:

I think they can co-exist. I think a lot of people are still using datasets and the migration to LINQ-to-SQL is pretty easy. Not thinking about entities, etc. just fetching data from the database.

Hundreds of products are being developed the "easy way" (datasets, drag & drop, RAD, etc) and they also work. Maybe not as maintainable, maybe not architecturally correct to most, but they work and they even have happy customers!

Maybe Microsoft didn't position L2S correctly. Maybe with EF they do, or at least try to. But L2S has its good things as well and it's easy to use for a lot of people.

I think it'd be a shame if they stopped development on L2S completely.

# November 4, 2008 2:42 AM

kamii47 said:

Agreed with Peter.All the efforts of learning it now seemed doomed.

# November 4, 2008 2:57 AM

FransBouma said:

There's a dutch saying: "Don't throw away old shoes before you've bought new ones". EF is currently not a framework which is mature enough to be useful. It lasts till 2010 before a new version is released. Till that time, people will use Linq to Sql (and are already doing that), if they want to buy in MS' offerings for ORM.

By cutting off Linq to Sql's future roadmap now, they made a very bad PR move: people will now be wondering what to do:

a) invest in EF, which is currently immature and hard to work with

b) keep using Linq to sql, which will not be updated with a lot of new features

c) use a 3rd party toolkit perhaps.

So effectively, they threw away their old shoes (linq to sql) before they got new ones (EF v2).

MS might think that the EF is clearly on the road to victory but I have my doubts: Oracle still hasn't released any plan to support it, and has clearly stated they need changes in the EF to get the performance they'd like to see. I think it's crucial for MS that Oracle and other big players have solid providers for the EF, but do they really? No.

Another sign that things aren't going so well is that after the EF futures presentation of Tim at the PDC (I watched it over the internet) they couldn't answer fundamental questions about shortcomings with 'Yes, it's in v2'. They had to fall back on 'we'll look into that' and similar phrases. Which is MS lingo for 'nope, not today, not tomorrow, perhaps in a future version'.

Future will tell what the EF will become, but at the moment, I'm a little sceptical about the optimism they're having.

# November 4, 2008 4:29 AM

Paul Gielens said:

I think it's good to challenge MS in a way that's beneficial for customers. No reasons for holy wars on my end. I like both technologies although I must say L2S has a somewhat limited feature set (in terms of mappings) for the domain in which I do most of my work. The next version of the EF will come with the .NET 4.0 bits somewhere next year. Anyway, I'm glad that they pulled the rabbit out of the hat sooner then later.

# November 4, 2008 11:57 AM

FransBouma said:

You expect .NET 4.0 next year? Isn't it released with vs.net 2010?

# November 5, 2008 3:52 AM

Eric said:

Why doesn't anyone listen to Frans?  :)

He's like a broken record.

A broken record that is usually right on the money...  ;)

Would it really hurt Microsoft to develop both L2S and the EF at the same time?  They have the money.  Why not give us alternatives?  They have ASP.NET web forms and ASP.NET MVC.  Heck, rename L2S to EF:Lite if you want to.  I've run the L2S assembly through Reflector and I'm almost positive it wouldn't be that difficult to add in support for other database 'providers'.  

Meanwhile Microsoft will play ORM catchup.  There are plenty of existing tools out there.  Nhibernate for example.

Oh well... sort of disappointing to see L2S go.  :(

# November 5, 2008 12:43 PM

Simon B said:

Eric, there's lots of reasons why L2S is discontinued,  but overriding ones were business reasons rather than technical. Matt Warren states that it's trivial for them to implement support for other providers, but that the MS marketing team decided they should lock it down to SQL Server.

Problem is that as far as I've looked into the EF, it's fundamentally different from L2S and allows much greater flexibility and versatility regarding complex O/R mapping etc. The two are just not compatible and there's no real reason to continue to support a tool that does half the job and another that does the full job.

It's all well and good to say L2S is fine for my application today because my app only needs 1:1 table to class mapping. But how about tomorrow, when you need to do a refactoring on your database or use ADO.NET Data Services, reporting, OSLO or other EDM consumers, or maybe a use case arises where you would actually want to introduce a more complicated mapping, perhaps a multi-table to class denormalization or filtered conditional mapping, or TPT inheritance hierarchy, or effective dated lookup etc. In L2S you've suddenly hit a brick wall.

# January 28, 2009 11:28 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)