LINQ to SQL是死还是活?

就在我和LINQ to SQL交朋友的时候,看起来好像MS正在把它从地下拉出来。

http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx

从我的一点研究来看,EF对于简单的工作来说是过度的。 但是这个公告之后有没有继续使用LINQ to SQL呢?

除了LINQ to SQL的未来之外,这通常不会发送一个不好的信号吗? 鉴于MS正在向墙上投掷比特的速度,早期使用任何新比特是否合理? (这很好,对于LINQ to SQL来说还不算早!)。

对于我的LINQ to SQL工作,我认为我正在转向SubSonic!

更新:一些新的意见:

http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx

http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the-lines.aspx

1)他们不能“杀死”Linq-to-SQL,因为它已经是.net框架的一部分了。 他们可以做的是停止添加function。 这并不妨碍那些已经使用L2S的成千上万的开发者对其进行扩展和改进。 一些核心领域很难触摸,但它们已经很扎实, 缺less的devise特征可以很容易地被locking 。

2) PDC EF会议之一表明,他们已经从EFv1惨败中吸取了一些经验教训,现在他们正在将L2S中的许多东西复制粘贴到EF中,假装它是新的EF东西。 换句话说,L2S版本二刚刚被“重新标记”了EF。

3)LINQ(语言集成查询)是自切片冰淇淋以来的最好的东西,它可以用于除L2S之外的许多其他事物(Linq到对象,Linq到实体,Linq到XML,Linq到任何事物)。 因此,DP团体试图迫使广大的L2S采用者尝试不那么受欢迎和目前存在缺陷的entity framework是没有理由不学习Linq的。

也看到这个线程(这是我相信部分触发Tim的博客文章): http : //forums.microsoft.com/MSDN/ShowPost.aspx?PostID=4061922&SiteID=1

更新1: 2008年12月号由罗杰·詹宁斯Visual Studio杂志封面故事是一个很好的阅读主题,有些L2S与EF比较: http ://visualstudiomagazine.com/features/article.aspx?editorialsid= 2583

更新2:在“ 雷德蒙德开发人员新闻 ”( Redmond Developer News )中引用Anders Hejlsberg的话说:“ LINQ to SQL并没有死,我可以向你保证,它并没有死,没有任何事情会消失,我们从来没有这样做,我们永远也不会。

http://reddevnews.com/blogs/weblog.aspx?blog=3016

你的问题有一个模棱两可的问题需要解决。

LINQ!= LINQ to SQL

有一大堆LINQ技术和提供者:

  • Linq to SQL;
  • Linq to Entities;
  • Linq到对象;
  • Linq转XML;

…这些只是来自微软的。 也有非MS提供者,包括NHibernate。

您链接的博客post只关于Linq to SQL。

LINQ的主要优点是您可以学习和使用一种查询语法,并在多种技术中重复使用它。

鉴于此,我build议任何感觉“Linq To SQL”缺乏未来都是无关紧要的,因为您在编写LINQ Queries时获得的技能将在未来转移到其他工具中。

我们不会杀死LINQ to SQL。 我们正在为EF进行优化,但是LINQ to SQL绝对不会被杀死:)

– Scott /微软。

您不仅要学习Linq(System.Linq.Enumerable和System.Linq.Queryable),还需要学习.NET语言的编程语言增强function。

在C#3.0中,这些包括:

  • 扩展方法(在第一个参数上使用this关键字的静态方法)
  • 编译器推断types(var)
  • Lambda语法(根据上下文生成匿名方法或expression式)
  • 初始化器
  • 属性默认实现(简写)

在这里阅读更多。


在VB9.0中有一些内联的XML魔法,还有很多其他的东西(很多都和上面的C#类似)。

在这里阅读更多。

我真的不明白你读那篇文章在哪里link2sql已经死了。

在链接到它的博客文章中说:

我们正在倾听客户关于LINQ to SQL的意见,并将继续根据我们从社区获得的反馈来发展产品。

对于我来说,像LINQ to SQL这样的读取将来会被开发和支持。 我想知道你为什么认为它已经死了?

当然,我认为LINQ to SQL,LINQ to Entities和LINQ to [插入第三方ORM]之间的select提供了一个完全健康的数据访问层方法的生态系统,软件开发人员可以从中select。 NHibernate,LLBLGen甚至是Subsonic(不知道是否要提供LINQ提供商)等第三方提供商肯定会使竞争变得更好,更有趣。

话虽如此,微软放弃LINQ to SQL将是一件非常可悲的事情,尤其是因为它具有良好的关注度,甚至包含StackOverflow。

有趣的博客文章。 和一些相关的信息Stackoverflow的post 。

基本要点似乎是在ado.net博客上发表的评论,声明entity framework是获得Visual Studio 2010和Dot Net 4主要开发人员时间的唯一方法。

我的回答是 – DUH。 我们都知道这一点。 微软在PDC 2007上公开表示说,LINQ to SQL是SQL Server的一个短期版本,因为在SQL Server中没有其他的LINQ故事。 它只适用于SQL Server。 你不能写一个LINQ to SQL提供程序 – 没有它的模型。 这是一种技术,不可扩展。

entity framework是微软构buildLINQ提供程序的唯一途径。 entity framework已经变得相当悲观,但我认为这部分是由于LINQ to SQL在今天具有更好的程序员体验。 Entity Framework将会赶上并超越LINQ to SQL,因为它是来自Microsoft未来的ORM / Mapping工具。

编辑 – 我只是在我的博客做了一个稍微更详细的logging

EDIT2 – IQueryable提供者 – 与LINQ to SQL提供者不同。 你可以写你自己的IQueryable提供程序,你喜欢的任何东西。 您不会获得devise师支持或模型生成。 我不知道LINQ to SQL模型生成的GUIdevise模型。

我想我并不是真的在这里看到这个问题。 从你已经链接的文章:

我们正在倾听客户关于LINQ to SQL的意见,并将继续根据我们从社区获得的反馈来发展产品。

我错过了什么吗? 什么给LINQ to SQL印象到来了死?

Scott Guthrie告诉我,他们不会杀死LINQ to SQL:

在LINQDev.com发布

任何人都记得VB6? 无论你个人喜欢它还是喜欢它,微软都销售了数百万的拷贝,而企业花费了数百万美元来编写数百万行的VB6。 接下来发生了什么?

  • 那么,微软仍然支持VB6 (种类不是IDE)。
  • 而且微软还说 ,即使是现在( 09年9月 )他们也在听VB6的用户。
  • 但VB6客户是否开心? 不是自2002年以来 ,VB6推出4年后。
  • 为什么不? 代码投资到替代技术VB.Net的升级途径非常昂贵 。

所以只要考虑这个教训。 对我来说,似乎LinqToSQL的支持将是相当勉强。 他们有义务支持它,因为它在当前的.NET框架中。 但是,将在.NET 5,6,7 …? 只要想一想对你有多重要(我知道,对你来说根本不重要)。

也许你不应该麻烦学习Linq到SQL,但是他们仍然会保留Linq实体。

显而易见的是,2个ORM在微软的工具箱中是一对多的,但对我来说,似乎是错误的框架被select了所有错误的原因。 事实上,C#团队完成ADO.NET团队应该在更短的时间内完成的工作,并且更好地完成了工作,这对ado.net团队来说是难以接受的。 不是我知道2框架的内部工作,但我认为将linq2sql的缺点升级到entity framework会快很多。

似乎有太多的政治参与,我认为这实际上会伤害asp.net的声誉,因为我不相信那个entity framework会给我们一个像Linq2sql一样的用户友好的体验。 ado.net团队也可以从asp.net mvc团队学习一些沟通技巧,因为对问题的澄清最好是模糊的。

学习Scott Gu和他的MVC团队将会很有趣,因为他们大多数的例子都使用Linq2Sql。

Linq 2 Sql和Entity Framework有很大的重叠区域,这总是有点奇怪。 我认为L2S只有在.NET 3.5发行版中才有的唯一原因是因为人们有很大的疑问,EF会看到白天的光芒。 现在EF1出来了,所有这一切都是非常粗糙的v1,不再需要L2S了。

(不,StingyJack,LINQ to SQL不使用entity framework)

无论如何,我不会担心。 Tim表示,他们正在倾听客户对于LINQ to SQL的看法。 从我看到的L2S的热情来看,客户(这就是我们)会说出自己的想法。

正如KristoferA所指出的那样,他们实际上不能“杀死”L2S,只能冻结L2S。 而L2S,一旦打磨,并不需要太多的进一步发展。 有了L2S提供者,任何在LINQ上的进步都应该在L2S中提供。 所以select仍然是我们的。

Windows Phone 7的下一个版本,代号为Mango,包含一个可通过Linq访问的SQL Server精简版到SQL http://jesseliberty.com/2011/05/10/coming-in-mangosql-server-ce/