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并没有死,我可以向你保证,它并没有死,没有任何事情会消失,我们从来没有这样做,我们永远也不会。
你的问题有一个模棱两可的问题需要解决。
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/