Just when I make friends with LINQ to SQL, it appears as though MS is pulling the rug out from under it.
From my little bit of research, EF is way overkill for simple work. But after this announcement is there a point in continuing to use LINQ to SQL?
Beyond the future for LINQ to SQL, doesn't this just generally send a bad signal? Given the speed with which MS is throwing bits against the wall, is it rational to use any of the new bits early? (and that's being kind, it's hardly early for LINQ to SQL!).
For my LINQ to SQL work, I think I'm headed to SubSonic!
Update: A couple of new opinions:
http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx
See also http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx and the the comments there
It was always a bit weird that with Linq 2 Sql and Entity Framework there was large areas of overlap. I think the only reason L2S only ever made it into the .NET 3.5 release was because there was a large doubt that EF would ever see the light of day. Now that EF1 is out, all be it a very rough v1, there was no need for L2S anymore.
Scott Guthrie told me they would not kill LINQ to SQL:
Post at LINQDev.com
Anyone remember VB6? Whether you personally loathe it or love it, Microsoft sold millions of copies, and businesses spent millions of dollars writing millions of lines of VB6. What happened next?
So just consider that lesson. To me, it seems LinqToSQL support will be rather grudging. They are obliged to support it because it is in the current .NET framework. But will it be in .NET 5, 6, 7...? Just think about how much that matters to you (for all I know, it doesn't matter to you at all).
Not only should you learn Linq (System.Linq.Enumerable and System.Linq.Queryable), you will need to learn the programming language enhancements for your .net language.
In C# 3.0 these include:
Read more here.
In VB 9.0 there's some inline XML magic, and many other things (many are similar to the above list for C#).
Read more here.
There's an ambiguity to your question that needs to be resolved.
LINQ != LINQ to SQL
There are a whole bunch of LINQ technologies and providers:
... and those are just the ones from Microsoft. There are non-MS providers too, including NHibernate.
The blog post you linked talks only about Linq to SQL.
The key advantage to LINQ is that you can learn and use one query syntax and reuse it across multiple technologies.
Given this, I'd suggest that any perceived lack of a future for "Linq To SQL" is irrelevant, as skills you gain in writing LINQ Queries will be transferrable to other tools in the future.