不得不为LINQ说几句话,驳“LINQ已死”论

起因

近日不断看到有关“LINQ已死”,“LINQ玩完了吧”的言论,甚至于更有牛人说出“程序开发最终会回到本机代码上”,暂不说这些言论是否正确,且先来看看各位的惊人言论,下面仅摘录部分:

言论1

我看园子里还有蛮多人学习和用Linq to SQL 还写了一系列文章
哎~~ 程序员的悲哀呢
被他们牵着鼻子走

言论2

玩LINQ的人傻了吧

言论3

又是一次证明跟着微软是浪费青春的,小心C#喔,各位,
我发现程序开发最终会回到本机代码上来,而不是托管的

言论4

Linq 是 Anders 最失败的一个作品, 看来当年的牛人真的老了。
linq将程序的复杂性提高了一个数量级,强迫程序员在两个语法体系间跳跃,却本质性提高开发效率
linq is dead!

言论5

废弃了好 这样的垃圾不该存活,搞得程序员劳命伤财的学习!
垃圾啊!
幸亏我拒绝LINQ

以上言论,我仅摘取了部分,其实通过这些,我只想说几个问题:

请认清事实真相

首先根本没有“LINQ已死”的说法,也没有“LINQ to SQL已死”的说法,关于“LINQ已死”的言论完全来自于社区,而起因则是ADO.NET团队的一篇《Update on LINQ to SQL and LINQ to Entities Roadmap》,文章最后说到

作为.NET 4.0的一部分,实体框架是我们推荐的在关系场景中针对LINQ的数据访问解决方案,我们聆听了客户关于LINQ to SQL的反馈,并将整合在社区收到的反馈,继续开发和改善该产品。

于是社区中就猜测微软将会放弃LINQ to SQL,请注意,ADO.NET团队只是说推荐使用ADO.NET Entity Framework,将会加大对它的投入,而并没有没有什么“废弃”言论,“已死”更无从谈起!退一步讲,就算微软不再开发LINQ to SQL,这跟LINQ又有何关系呢?LINQ to SQL只是LINQ家族中众多Providers中的一个而已,没了LINQ to SQL,不是还有LINQ to Object、LINQ to XML、LINQ to Entities的吗?况且LINQ to SQL还没死,它也不会死,作为一个轻量级的ORM框架,LINQ to SQL在中小项目以及快速开发中的优势还是非常明显的,这一点,如果你没有用过LINQ to SQL,就不要再说它是多么多么的垃圾!

投入小不等于放弃,就算微软不再开发LINQ to SQL,LINQ to SQL现在的功能已经能够大部分开发的需要,再加上它灵活的可扩展性,完全可以通过自定义一些扩展来满足自己开发的需要。

再强调一遍:请停止“LINQ已死”或者“LINQ to SQL已死”的荒谬言论吧!

请区分清概念

作为“专业的开发人员”,请在了解了某个技术之后,再对其发表见解吧,最起码你得知道这个技术是怎么回事吧?如别人说“LINQ to SQL已死”,然后就有人跟着说“幸好我没用LINQ”,这又关LINQ啥事了。博客园老赵曾经在6月份写过一篇文章《觉得有必要来澄清几组重要概念》,其中介绍了LINQ以及LINQ to SQL的区别,但是很遗憾,社区中不能正确区分LINQ和LINQ to SQL的朋友太多了,看到这些言论,让我们为老赵这篇文章默哀一分钟吧。

再强调一遍:LINQ to SQL只是LINQ家族中众多Providers中的一个而已,这是真的,请不要怀疑,不要把LINQ等同于LINQ to SQL,如果觉的LINQ to SQL字母太多了,可以使用L2S来代替,但请不要使用LINQ来代替LINQ to SQL。

请收起LINQ无用论

“LINQ很垃圾”,“拒绝LINQ”,看到这些,真的有些悲哀,LINQ仅仅是一个语言特性,它能够让我们在编写代码时使用内置的查询语法对于数据集合进行操作,提高我们的开发效率,仅此而已。当然如果你的数据集合来源不同,会对应不同的Providers。既然拒绝LINQ,为何不干脆连泛型、数组以及.NET Framework中内置的基础类库等等一起拒绝,甚至于拒绝C#语言,而回到所谓的“本机代码”上去呢,直接编写二进制的“01101100”程序是不是比C#语言更方便,更快速?如果是,请原谅,我错了,我道歉。

再强调一遍:LINQ仅仅是一个语言特性而已,请收起LINQ无用论。

后记

写下本篇文章,其实不是想针对某个人,只是看到大家都在误解LINQ,甚至有些初学者因为看到“LINQ已死”的谬论,都不敢去学习,去使用了。所以忍不住站出来说几句话,如有得罪您的地方,请见谅!

相关文章:

微软决定废弃两个框架

作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
标签: LINQ, LINQ to SQL
posted @ 2009-01-05 01:31 TerryLee 阅读(32779) 评论(328) 编辑 收藏

评论共4页: 上一页 1 2 3 4 
 回复 引用   
#229楼 2009-01-06 00:03 DDasdasd[未注册用户]
无所谓嘛,天天争论这个意义何在,不管它是生是死,能在工作中减轻你的负担就OK啦,博主也没必要去争论,澄清。无所谓。。。
 回复 引用 查看   
#230楼[楼主] 2009-01-06 00:05 TerryLee      
@Ma Hongwei
嗯,多讨论总归有进步:)

 回复 引用 查看   
#231楼[楼主] 2009-01-06 00:05 TerryLee      
@Mahon
感动中,呵呵,多谢支持:)

 回复 引用 查看   
#232楼[楼主] 2009-01-06 00:06 TerryLee      
--引用--------------------------------------------------
Mahon: 网络论坛上,最容易引发众多讨论并且最容易撩拨民粹情绪的帖子,莫如侈言语言的优劣和前途。在Java, C# 相继进入原本C++ 擅专的领域之後,这样的讨论不时可见,日复一日。在一个容许并承认多元价值的世界里,这类口水之争实在没有意义,冗长而踊跃的发言涵盖不了本质的苍白。并非语言的比较没有价值,而是语言的价值没得比较。

想到侯捷的一句话

--------------------------------------------------------
是啊,口水战的确没意思,但是有时候还是需要澄清一些事实的:P

 回复 引用 查看   
#233楼[楼主] 2009-01-06 00:09 TerryLee      
@无流猴
嗯,宗派之争确实没意思。

 回复 引用 查看   
#234楼[楼主] 2009-01-06 00:11 TerryLee      
--引用--------------------------------------------------
DDasdasd: 无所谓嘛,天天争论这个意义何在,不管它是生是死,能在工作中减轻你的负担就OK啦,博主也没必要去争论,澄清。无所谓。。。
--------------------------------------------------------
其实我想澄清的是LINQ和LINQ to SQL之间的概念,已经澄清所谓的“LINQ已死论”,否则这会误导很多初学者:)

 回复 引用 查看   
#235楼 2009-01-06 10:20 南疯      
--引用--------------------------------------------------
TerryLee: --引用--------------------------------------------------
Anders Cui: @南疯
原来你也一直在园子里混啊!
--------------------------------------------------------
你俩现在才认识?:)
--------------------------------------------------------
哈哈,我早就知道了,我们还有几个我都认识,我们公司三楼还有一个MVP呢。
只是我几年不研究技术,净作管理,Anders的最有价值开发者称号被他捂着捏着,我知道之后,狠狠的表扬了他一番!还share给公司管理层了。
他是看了我今天这个留言,才知道我的帐号的!哈哈哈!

 回复 引用 查看   
#236楼 2009-01-06 11:33 老三      
博主说得好,说得好
 回复 引用   
#237楼 2009-01-06 11:55 Rain。shan[未注册用户]
本人已死,如有需要,请重新New。
呵呵,灌下水。经常来这里。

 回复 引用   
#238楼 2009-01-06 16:19 peak2007[未注册用户]
有必要说清楚一下,谢谢李老师!
 回复 引用   
#239楼 2009-01-06 18:26 mrjou[未注册用户]
这个定义在C#里通不过,大家帮我看看呢:char[] separators = { '?', '\', '"' };该怎么定义啊?
 回复 引用 查看   
#240楼[楼主] 2009-01-06 18:32 TerryLee      
@老三
谢谢支持:)

 回复 引用 查看   
#241楼[楼主] 2009-01-06 18:32 TerryLee      
@Rain。shan
欢迎常来,呵呵

 回复 引用 查看   
#242楼[楼主] 2009-01-06 18:33 TerryLee      
@peak2007
不用客气,呵呵:)

 回复 引用 查看   
#243楼[楼主] 2009-01-06 18:33 TerryLee      
@mrjou
建议学习一下C#中的“转义”。
char[] separators = { '?', '\\', '"' };

 回复 引用 查看   
#244楼 2009-01-07 10:41 ztotem      
--引用--------------------------------------------------
TerryLee: @南疯
呵呵,有空我们可以交流一下,讨论如何进行时间的安排这个话题:)
--------------------------------------------------------
希望能分享到TerryLee关于学习时间安排的经验:)

 回复 引用   
#245楼 2009-01-07 12:04 lalala[未注册用户]
@brightwang
那是用起来相当爽啊~~

 回复 引用   
#246楼 2009-01-07 20:24 姚志安[未注册用户]
许久没关注.Net了,当时用的时候linq to sql刚推出,
linq to xml还没有发布。感觉不爽的地方就是不能跨库。
但好像linq的语法已经整合到C#3.0中了。
不知道现在linq的发展怎么样了

 回复 引用   
#247楼 2009-01-07 21:48 zhefu[未注册用户]
老大,你的博客用的是什么模板?比较清爽,能不能发给我一份.
 回复 引用   
#248楼 2009-01-09 14:03 啊啊啊[未注册用户]
个人觉得自2.0后的点奈特,都基本上属于一种技术产品了,不是纯代码级别的。
 回复 引用 查看   
#249楼 2009-01-09 20:39 ξ箫音ξ      
支持小李子兄弟!
 回复 引用 查看   
#250楼 2009-01-10 09:59 魏琼东      
讨论这些无聊的话问题有个啥用。。。

你们争去,我们还是继续在.net 2.0上开发

希望微软好好的把他的.net 运行性能提升一下我们就谢天谢地了


 回复 引用 查看   
#251楼[楼主] 2009-01-12 11:03 TerryLee      
@姚志安
LINQ在.NET 3.5中发布以后,现在由于没有新的.NET版本发布,所以还没有任何更新。

 回复 引用 查看   
#252楼[楼主] 2009-01-12 11:03 TerryLee      
@zhefu
服了,你都不留下任何联系方式,我怎么发给你??

 回复 引用 查看   
#253楼[楼主] 2009-01-12 11:04 TerryLee      
@啊啊啊
为啥这么说呢?

 回复 引用 查看   
#254楼[楼主] 2009-01-12 11:11 TerryLee      
@ξ箫音ξ
呵呵,谢谢萧老大支持:)

 回复 引用 查看   
#255楼[楼主] 2009-01-12 11:12 TerryLee      
@魏琼东
这个话题很无聊吗?最起码的概念都没有搞清楚,怎能说是无聊呢?

 回复 引用 查看   
#256楼 2009-01-12 17:24 菩提树下的杨过      
我都用了大半年linq了,感觉还不错啊,真不明白为什么会有这么多人,人云亦云!个人感觉linq是轻量型的orm,比nhibernate之类的要好用得多,ide也能很好的支持,bs那些连尝试都不敢的伪技术人士,不深入的应用,又怎能知道好或是不好?现在的少数程序员,感觉很浮躁
 回复 引用   
#257楼 2009-01-12 23:52 zhefu[未注册用户]
x--引用--------------------------------------------------
TerryLee: @zhefu
服了,你都不留下任何联系方式,我怎么发给你??
--------------------------------------------------------
首先谢谢老大的回复.
我填写信息时,好像有一栏叫Email,后面还有一个小括号,说"博主才能看见".
我以为....
呵呵
重申一下:LiYunQi埃特hotmail到特com

 回复 引用 查看   
#258楼 2009-01-15 14:54 莫耶      
这园子混混太多
看jeffery文章提到的
“怎么在updatepannel里搞ajax?“
都笑抽了~
这种一辈子只会用控件的人
哪谈得上分清楚概念

 回复 引用   
#259楼 2009-01-16 15:06 来来来[未注册用户]
--引用--------------------------------------------------
莫耶: 这园子混混太多
看jeffery文章提到的
“怎么在updatepannel里搞ajax?“
都笑抽了~
这种一辈子只会用控件的人
哪谈得上分清楚概念
--------------------------------------------------------
那请问你现在又是用什么?纯c?

 回复 引用 查看   
#260楼 2009-01-16 15:37 澍可      
太热闹了吧~~~~~~
支持213楼

 回复 引用 查看   
#261楼 2009-01-19 16:59 BlackPhoenix      
飘过,目前我还在用.net 2.0,等考上研究生之后直接进入4.0开发吧。虽然不了解LINQ,但还是信任MS的作品的
 回复 引用   
#262楼 2009-01-20 13:35 梵高[未注册用户]
--引用--------------------------------------------------
xiao_p: linq 没有想象中的那么好,也没有想象中的那么差,如此而已!

linq 最大的卖点无非是在 将 查询集成在 “语言层”, 集成在 clr 层面罢了。

很多orm 也可以做到这样,只是,linq to sql和语言结合的更紧密罢了。但是就这个卖点还不足以让linq to sql大火!

目前看来,linq to sql 不过就是个微软的轻量级orm罢了,同时,又和ADO.net entity framework 有重复的地方,使用起来也没有远超同类框架的优点,所以,它的死亡也是理所当然的!

最后,查询的时候,最好多写lamda,少用 select的 查询方式,那东西将来迟早被淘汰。
--------------------------------------------------------
狗屁不通。

 回复 引用   
#263楼 2009-01-20 14:26 梵高[未注册用户]
LINQ(Language Integrated Query) 是C#3.0 .NET3.5 中最重要的新功能,集成了C#编程语言中的查询语法,可以用相同的语法访问不同的数据源(SQL、XML、Objects 甚至第三方的MySQL、SharePoint 等等),于是产生了LINQ to SQL、LINQ to XML、LINQ to Objects 、LINQ to MySQL、LINQ to SharePoint 等等名词术语,有什么死活之说呢?跟ORM又能扯上什么关系?
无知不可怕,可怕的是无知到用你一知半解的东西唬人。

 回复 引用   
#264楼 2009-01-21 16:56 无聊至极[未注册用户]
在这争来争去的有意思吗,.NET只是一个工具而已,用什么,怎么用看自己的需要了。VB5.0不是还有很多人在用吗,而且用的很好,那些人就是小菜吗!!!!!!!!!!!
 回复 引用 查看   
#265楼 2009-02-04 15:00 H2O、winnerzone      
我觉得这个东西很好,没有什么死不死只说。为什么要好东西死掉呢?而且我在程序中就已经应用了,而且开发效率提高了不少。微软出来的东西总有许多微黑去说的,他们就像姚黑说姚明一样,看看乐子就行了。不必太在意他们。
看了博主的固执认真劲,快笑抽了,闲的蛋疼
 回复 引用   
#267楼 2009-02-05 13:52 che[未注册用户]
拜读你的设计模式系列文章,感觉真不错。
回到linq上,我觉得link to sql正如博主说的对于中小项目真是太好不过了,可以大大提高开发效率,而且在代码中使用linq可以很方便的处理诸如list,collection的东西,只不过对于初学者在使用linq update数据的时候要格外小心,多看看相关文章。

 回复 引用 查看   
#268楼 2009-02-06 14:44 thomaschen      
Linq 跟linq to sql 的关系是怎样的呢
不能说等于 我想 linq to = 90% linq 吧
想学习下 发现网上全是 linq to sql

 回复 引用   
#269楼 2009-02-11 00:37 加菲[未注册用户]
@it has a soap in stockings
悲哀的你!!!

 回复 引用 查看   
#270楼 2009-02-25 10:29 Prewin      
虽说老李年纪不小了,不过感觉心态上还是有年轻人的气息,但更加成熟稳重,是一个很理智的有学习活力的IT人。

感谢你的文章。

 回复 引用 查看   
#271楼 2009-03-03 09:21 Gnie      
这么多年来,微软也走过弯路,不过感觉微软对自己的产品乃至是客户都是很尽心的。做软件最终也是为了客户,至于使用什么技术人各有志。
 回复 引用   
#272楼 2009-03-05 21:47 陈自立[未注册用户]
我支持新技术,人要学习向前看,虽然前进去会碰到挫折,但趋势是前进的。
再说LINQ又不真的完了,而是前景大好。

 回复 引用 查看   
#273楼 2009-03-18 12:30 管涛      
TerryLee最近忙什么去了,好久没有更新博客了...
 回复 引用 查看   
#274楼 2009-03-18 19:49 Kellven      
--引用--------------------------------------------------
Doolo: 如果 哪天 你喊 sina yahoo 163 qq 网站 用这样的东西 去做查询去
他们 会愿意 猪都笑了
--------------------------------------------------------
说的好像全球就这几个网站似的,你也不想想一般人有机会碰到那种大项目么??

 回复 引用 查看   
#275楼 2009-03-29 17:36 木只八刀      
从LINQ TO SQL 到 LINQ TO Entities实在是一种历史的倒退,真想不通为什么微软要放弃LINQ TO SQL 这么好的语法形式,唉~~
 回复 引用 查看   
#276楼 2009-03-30 14:24 奇拉      
To:说LINQ已死的人
居然有人说已死,你哪个眼睛看到死了,你什么都要语言效率,开发效率你看不? 再说的简单点,你什么都学最好的,最好的要用10年来证明,你是不是考虑10年后再开始学?(估计有的技术也快淘汰了,没淘汰也要更新版本了,估计你就一被淘汰的人,上炕都费劲你)

 回复 引用   
#277楼 2009-04-01 16:22 whyxxx[未注册用户]
现在有很多文章说到LINQ已死,语言这东西很怪,你看c语言死了吗?某种意义上被先进的东东代替,就可以说是死了。
 回复 引用 查看   
#278楼 2009-04-14 16:56 阿瑞--16hi      
口水不能当饭吃 累不累啊~~ 自己觉得适合自己就行了 何必要强求别人呢~~
TerryLee虽然我很崇拜你,但这时不得不说话了
Linq 性能过低是不争的事实,园子里老朱早就都对它进行过测试:
http://www.cnblogs.com/zhuweisky/archive/2007/08/03/841977.html
如果不考虑性能,不考虑学习成本,不考虑项目风险用什么都无所谓。但理性的衡量后,明显Linq2SQL太弱势,而Linq和Linq2SQL纯文字游戏,Linq2object之类的东西明显是大炮轰小鸟的东西,说Linq已死我想完全是正常.如果VS2010还主推Linq,我抽自己嘴巴. 如果都换成实体框架了,那不是已死是什么?搞技术还是站在事实的角度上论事情,不要玩感情色彩和文字游戏,没意思的,毛主席你都可以说没死,永远活在我们心中。

 回复 引用   
#280楼 2009-04-17 15:49 Linq不死[未注册用户]
我靠,争了半天,279楼还没有搞清Linq与Linq To Sql的差别。
这么笨的怎么能做程序员?

我操,280楼,我玩Linq时,你还在玩泥巴。你个垃圾,人家拉屎说香你都吃两口,没资格跟我说话滚!
 回复 引用 查看   
#282楼 2009-04-17 15:55 菩提树下的杨过      
可以结贴关闭评论了,省得大家在这里打口水仗,不喜欢linq/linq to ...的人,大可对它敬而远之,喜欢linq/linq to ...的人,可以继续发扬光大,MS没逼着大家一定用windows,更不会逼着大家一定要用什么技术,高手一根筷子也能杀人,何必又太在意用什么兵器?
280不要让我在Terry失去风度,我为人很低调,拒绝口水战,如果VS2010推Linq我给不死族的人倒洗脚水,喊爹!如果推实体框架,那么大喊Linq不死的给我倒洗脚水 Terry做证,来不来赌啊!
任何技术都是守破离三个境界,也都是一个过程,现在都还有人用WIN98,也没看见死啊,这个字只是指软件生命周期结束罢了。

 回复 引用   
#284楼 2009-05-01 00:28 枫之剑[未注册用户]
LINQ to SQL 适合中小项目快速开发
而 Entity Framework 似乎 学习曲线相对陡一些

比起Nhibernate LINQ to SQL 更亲切一些。。。。。。
建议熟悉Java的还是继续Spring.Net 和 Nhibernate这条路线
.Net 继续使用LINQ to SQL

反正那个上手快用哪个!! 毕竟我们都做应用的,速度+效果=领导满意啊




 回复 引用 查看   
#285楼 2009-05-12 11:14 李晓强      
@TerryLee
赞成,以前用学java发现那才叫个慢,但是用java的人少么?正如C#虽然慢,但是开发效率高,运行稳定就OK了,我们是做应用开发的,只要逻辑上不出问题,我想性能差别的那一点点根本不是问题,何况现在性能的瓶颈大多在与数据服务器,而不是应用服务器.--车的有点远了....

 回复 引用 查看   
#286楼 2009-05-12 11:15 李晓强      
@Linq就是已死
如果同时推Linq和EF呢?

我實際有導入Linq進入專案,第一次是在2008年下半,很多人似乎對Linq有很大誤解,把他和Providers之一的Linq to Sql搞混在一起(Entity當時還沒正式出來),不過這是很正常的,畢竟LINQ就算目前來看也是很新的語言產品(從正式對外發行來算),很多人誤解LINQ是資料庫存取技術,事實上LINQ是微軟最新一代的資料堆疊技術,注意"堆疊技術"四個字,資料庫存取只是應用之一。Linq確實對資料堆疊的操作的開發速度確實有革命性的提升,省下的時間絕對遠超過你學習他的時間(當然也要看學到什麼程度),投資報酬率不差,一些比較有技術情結的人,我建議可以把學Linq當作在學套裝軟體那樣。

其實很遺憾的是ADO.NET小組確實已經婉轉的宣布Linq to SQL這個Providers的死亡了,雖然暫時也不會從VS中廢除他,愛用者不用自我安慰了,往前看才能柳暗花明,我自己也用過,自認這樣說算中懇的,直接換用Entity就是了,而且觀念多可以套過去,不會浪費太多學過的東西,籠統一點甚至可以把Entity看成Linq to SQL的企業加強版,我甚至有一個小專案改沒十行就全部切到Entity。至於Linq本身更不用說了,沒有任何東西是白學的,所以事實上不是Linq已死,是熱潮才剛降臨。

在專案太小的情況下,其實 Linq to Sql並不會比T-SQL傳統方法省多少時間,相信很多人也和我一樣,都有自己封裝T-SQL的一套獨門Lib在用(T-SQL確實不好除錯,要封裝起來避免,其實這個動作就實做了簡單的linq理念),但如果你做的是企業級的大專案,我覺得Linq就值得投入學習,Linq是堆疊技術,不光能加速你資料庫互動部分開發,各種物件的繁雜操作也都可以大量節省下來。也許有人會說自己封裝不就好了幹嘛學Linq,我相信,微軟實做的Lib品質,絕對不是一般人或一班公司搞得出來的,而且你一個人寫的只有幾個人會用,除非你想製造獨特的門檻,否則學一套較為通用的東西是比較好的做法。

不過說真的,搞不懂泛型這個概念的人,確實就不要碰Linq了,反而會浪費大量時間無意義摸索,無法學到什麼。

 回复 引用   
#288楼 2009-06-02 17:32 linq[未注册用户]
小项目适合用ORM么?
不适合。所以,作为轻量级的ORM,LINQ TO SQL当然也不适合用。
大项目就更不用说了。
大小项目都不用它,它还有嘛用。
(我是指LINQ TO SQL)

 回复 引用 查看   
#289楼[楼主] 2009-06-02 17:41 TerryLee      
@linq
小项目为什么不适合用ORM呢?说说你的理由,而不是一句话给出结论,没任何论据。

 回复 引用   
#290楼 2009-06-02 18:06 linq[未注册用户]
小项目直接写sql不更方便么?
可能是我不习惯。
一个小项目,而公司偏要用IBatisNet做。开发、维护都多花了一层功夫。

 回复 引用 查看   
#291楼 2009-06-09 10:58 用爱用心追梦      
@linq
除非在特别讲究性能的地方,要不是直接写sql改动起来还是特别的大。各有各的好处!!!

--引用--------------------------------------------------
linq: 小项目适合用ORM么?
不适合。所以,作为轻量级的ORM,LINQ TO SQL当然也不适合用。
大项目就更不用说了。
大小项目都不用它,它还有嘛用。
(我是指LINQ TO SQL)
--------------------------------------------------------
看來你還是沒搞懂,不要把LINQ和ORM畫上等號。LINQ是資料堆疊技術,只是微軟的一些ORM工具用了LINQ語法。我現在新寫的C#專案中,和資料庫無關的部分也是一堆LINQ語法,處理重複性的資料堆疊問題LINQ就是省時。

ORM是雞生蛋的問題,任何東西一定要投入學習時間成本不可能避免。如果你熟ORM事實上專案越小越好用,因為ORM天生的通病就是專案越大越難用,事實上至今也沒有一套ORM可以描述所有需求,最終只得保留非自動化程式碼的部分給設計者。因此反而專案越小需求越單純ORM越是能快速解決,我懷疑你根本不熟ORM才會有這樣的感覺,其實各家ORM思維大同小異,摸熟一套,換別套也不會學太久。

你說輕量級的LINQ To SQL沒甚麼用我同意(我要再次強調,這和LINQ無關,事實上有評估過後才投入去學LINQ的人,幾乎都不是為了這個),因為現階段我也會推薦直接學MS Entity,LINQ to SQL說白點就是一個白老鼠,完成了階段性任務後,Entity才是正式的產品,不過Entity架構複雜很多,入門ORM想體驗ORM快感玩玩Linq to Sql還是不錯的。

 回复 引用   
#293楼 2009-06-16 21:49 longteng.ws
Simple network opportunities = 简单的网路机会
Income for life 终身保障收入= http://longteng.ws
欢迎来我的博客参观参观喔! 谢谢罗!
我的经营日记:http://longteng.ws/blog

天天开心喔! ^_^

 回复 引用 查看   
#294楼 2009-06-19 11:25 发条橙子      
@我是實際有運用LINQ做專案的
你说的比较中肯

 回复 引用   
#295楼 2009-06-30 11:34 访客[未注册用户]
请各位大帅,集体去microsoft去证实一下就OK了,口水都一哈喇子啦。这年头无所谓用哪个技术,哪个技术好不好,扩展性维护性好,满足功能性能需要就OK,犯得着为技术争论吗?现在都面向抽象,抽象的最高级就是原始需求,混口饭吃,何必呢,嘿嘿,跑路!~
 回复 引用 查看   
#296楼 2009-07-06 23:27 sztiger      
看看都有道理,争论也很好.MVP也好,普通程序员也好,都是在MS下混饭吃,个人认为,技术是为应用服务,所以没有先进与否,不过确实好的东西可以提高效率,但是前提是一个好的架构之下,否则都是白搭。我写管理、控制程序很多年了,到现在还认为VB或DELPHI很好,虽然迫于实际客户的感觉而不用了,其实VB写的代码足够他们使用了,甚至说比WEB的更好,但是谈项目时(申明:基本都是2百万以下项目,非大型)如果要这么说你就没戏了。所以开发工具先进一点就够了,让客户觉得先进,呵呵,也算是无奈,同时呢,选用你最熟悉的开发平台来做吧,所以2.0与3.0目前我是感觉不到差异的,要说能提高很大的效率,那么至少在管理类一块看不出来,因为如果这样,我还不如采用全新的设计方式:应用搭配,而不是开发,两者的效率相差几十几百倍;讨论一下这样技术也不错,至少让大家都了解一下,看了看那么语法,头都大了,总认为语言应该让程序员越来越好用,而不是今天换个语法明天又来一个(本质上都无什么大变化,变化的只是让程序员头大),累啊,最好有一天能让程序员失业,这个领域只留下天才人物就可以了,感兴趣的除外。进入这个领域不一定是好事。网上技术牛的人不少,只是好像缺乏创意型的(可能有只是我还没接触到罢了),看看网络小说就觉得哪些作家很有创意,而IT技术人员中很少看到亮点。与其争论这些东西,还不如多花点时间去探讨如何去把这些技术应用到实际软件中,让用户更好用,让开发人员更简单,人工智能可能是条方向,我倒是很希望国内有这方面的牛人,那么最后我要失业了也高兴









 回复 引用 查看   
#297楼 2009-08-12 17:11 GWPBrian      
 回复 引用   
#298楼 2009-08-16 10:03 kkp[未注册用户]
哇,好火爆哦.
 回复 引用 查看   
#299楼 2009-08-21 15:48 Gieno      
LINQ是为了对应语言级搜索の需求而创建的,只要开发者还有这种需求,LINQ就不会消失~
C# 4.0会增加更多动态语言的特性(就像Python,Ruby...),换句话说,会更加依赖托管。所谓的“程序开发最终会回到本机代码上来,而不是托管”的言论基本上就是不写CODE的人没事乱说的~

 回复 引用 查看   
#300楼 2009-08-27 13:31 gaussen      
RP, 哥来说一句,为了争当别人的狗,还吵个脸红。。。

没有什么好不好的,工具是拿来用的。但用别人的工具,出来混总要还得。

很喜欢金山。

 回复 引用 查看   
#301楼 2009-08-28 16:11 都说大哥好      
无所谓·· 技术是为更好工作服务· 在牛逼的技术 用不了 扯蛋!
 回复 引用 查看   
#302楼 2009-09-01 15:24 ★海戰鷹      
对linq只了解点皮毛,至于是否深入研究,还在观望中
 回复 引用   
#303楼 2009-09-15 15:14 MIMIMAMA[未注册用户]
应该死的是SQL,多少年来没有什么改变,为什么不出个面向对象的SQL?历史问题吧,太多的数据都死气沉沉的放在老旧的箱子里,要改变这个确实很难。
 回复 引用   
#304楼 2009-09-17 23:40 过路的[未注册用户]


被微软放弃的东西多了去了,被微软玩弄的程序员多了去了,被微软忽悠的人更多了去了,还有为微软传教的人也是举不胜举.......


LINQ是什么,.NET是什么?说实话,这些还是忽悠人的东西!


楼主或许研究了.NET挺透彻,是一个合格的传教士,但更希望你能透过技术看到更多一点、更远一点……

 回复 引用 查看   
#305楼 2009-09-22 12:19 jacob Lai      
哈哈。。看了你这文章让我终于觉得我算是一个有些深度的.net高手了。这也是我一直在笑那些人的原因。linq是新语法,linq to sql是针对sql的linq,搞清楚。希望初学的朋都看看这篇文章。别给人误导了。

http://funsl.com

 回复 引用   
#306楼 2009-09-22 14:42 Heretic[未注册用户]
引用过路的:

被微软放弃的东西多了去了,被微软玩弄的程序员多了去了,被微软忽悠的人更多了去了,还有为微软传教的人也是举不胜举.......


LINQ是什么,.NET是什么?说实话,这些还是忽悠人的东西!


楼主或许研究了.NET挺透彻,是一个合格的传教士,但更希望你能透过技术看到更多一点、更远一点……

呵呵,一个浮躁的程序员,自以为自己看的很远,懂的很多。送你一副对子:
墙上芦苇,头重脚轻根底浅;山间竹笋,嘴尖皮厚腹中空。

 回复 引用   
#307楼 2009-09-29 15:12 过路的[未注册用户]
引用Heretic:
呵呵,一个浮躁的程序员,自以为自己看的很远,懂的很多。送你一副对子:
墙上芦苇,头重脚轻根底浅;山间竹笋,嘴尖皮厚腹中空。


呵呵……知道什么是浮躁:什么新学什么,什么流行追什么!就如追“星“族,谁浮躁,不说自明。

LINQ是什么?没有LINQ之前已经有Hibernate;NHibernate完全是Hibernate的翻版。然而即使Hibernate那么多年的产品,依然不成熟!否则为什么还有人应用IBATIS,更多的人应用JDBC?

推荐新人用更不成熟的LINQ,是非常不严谨的。

当然做个人研究:推荐!企业应用:避免!


ps:楼上的,那副对子蛮适合你的,好好的珍惜,领悟其中的精髓,不要乱用!

 回复 引用   
#308楼 2009-10-10 08:33 新猪猪[未注册用户]
怎么下边又来一个相关文章:
http://www.cnblogs.com/A-Z/archive/2009/01/04/1367864.html

忽悠人么???

还是java好啊
 回复 引用 查看   
#310楼 2009-10-17 11:28 DotJam      
@Linq就是已死

对于大部分应用来说,某个页面上的每次执行的sql代码都是相同的,即使是模糊条件的查询,大部分也可以把可变因子提取出来成为参数。
linq to sql的执行效率是慢,但是如果你给他生成的sql语句做了缓存呢?对每个页面来说,第二次运行的时候直接使用缓存的sql语句,那么这样运行比你手动写 sql语句更快。
如果你觉得linq已死,那是你还不会灵活的使用技术。
要知道微软传出要放弃linq不是因为他不够强大,而是因为他无法执行所有的数据操作,那是微软希望提供一种无差别的工具来覆盖所有应用。
而我们似乎用linq就可以完成项目了,甚至是讲究执行效率的大项目。

 回复 引用 查看   
#311楼 2009-10-17 11:43 DotJam      
有那么多同学讨厌Linq,最主要的还是他颠覆了很多编程思维,让人觉得他是个异类。还认为他是个很庞大的东西,怕花了精力去学习,结果微软不知道哪天又把它给丢了。
其实linq并不大,老实说有程序功底的话,研究一下李老师写的linq教程,包括表达式树等,看个一天也就透彻了。但是你却获得了一个全新的编程思想和工具。何乐而不为?
为什么要对学不学linq患得患失?
花两三天学通了再说它好不好吧!
当然有很多同学确实很了解linq,但是觉得他不适合手上的项目,所以弃而不用,这是合理的。
很多技术都可能弃而不用,但是一个技术好不好,还是要学了再判断。

 回复 引用 查看   
#312楼 2009-10-17 12:07 DotJam      
引用过路的:

被微软放弃的东西多了去了,被微软玩弄的程序员多了去了,被微软忽悠的人更多了去了,还有为微软传教的人也是举不胜举.......


LINQ是什么,.NET是什么?说实话,这些还是忽悠人的东西!


楼主或许研究了.NET挺透彻,是一个合格的传教士,但更希望你能透过技术看到更多一点、更远一点……


如果有人让你信耶稣,那是传教
如果有人教你造飞机大炮,这是传教吗?

耶稣是外国人的信仰,飞机大炮是外国人的技术。
如果你不信耶稣,没有任何问题。
如果你不学造飞机大炮,你就要挨打了。
你学会造飞机大炮之后,这个技术就不光是外国人的,还是你的了。

同理,让你信奉微软,认为他是万能的,这是传教。
但是教你微软的新技术,这算传教吗?

说了那么多,其实就一句话,技术无国界。

引用过路的:
引用Heretic:
呵呵,一个浮躁的程序员,自以为自己看的很远,懂的很多。送你一副对子:
墙上芦苇,头重脚轻根底浅;山间竹笋,嘴尖皮厚腹中空。


呵呵……知道什么是浮躁:什么新学什么,什么流行追什么!就如追“星“族,谁浮躁,不说自明。

LINQ是什么?没有LINQ之前已经有Hibernate;NHibernate完全是Hibernate的翻版。然而即使Hibernate那么多年的产品,依然不成熟!否则为什么还有人应用IBATIS,更多的人应用JDBC?

推荐新人用更不成熟的LINQ,是非常不严谨的。

当然做个人研究:推荐!企业应用:避免!


ps:楼上的,那副对子蛮适合你的,好好的珍惜,领悟其中的精髓,不要乱用!


这个对子送给你也不错的, 动辄搬出一些自以为高深的名词,或者把自己装扮成企业级开发的高管,对新技术搞出一副不屑一顾的怪样,原因何在?心态老了

 回复 引用 查看   
#314楼 2009-10-31 19:52 苏飞      
李哥经典,其实那些人只是没有学过Linq吧了,要不然也不会这么说,没有调查就同有发言权啊,呵呵,支持Linq开发快方便
 回复 引用   
#315楼 2009-11-26 17:12 倒萨dsfs[未注册用户]
引用口莫口西口莫口西:
引用过路的:
引用Heretic:
呵呵,一个浮躁的程序员,自以为自己看的很远,懂的很多。送你一副对子:
墙上芦苇,头重脚轻根底浅;山间竹笋,嘴尖皮厚腹中空。


呵呵……知道什么是浮躁:什么新学什么,什么流行追什么!就如追“星“族,谁浮躁,不说自明。

LINQ是什么?没有LINQ之前已经有Hibernate;NHibernate完全是Hibernate的翻版。然而即使Hibernate那么多年的产品,依然不成熟!否则为什么还有人应用IBATIS,更多的人应用JDBC?

推荐新人用更不成熟的LINQ,是非常不严谨的。

当然做个人研究:推荐!企业应用:避免!


ps:楼上的,那副对子蛮适合你的,好好的珍惜,领悟其中的精髓,不要乱用!


这个对子送给你也不错的, 动辄搬出一些自以为高深的名词,或者把自己装扮成企业级开发的高管,对新技术搞出一副不屑一顾的怪样,原因何在?心态老了


其实我觉得送给楼上的最佳,新人应该多了解点基础的东西,而不是盲目的追新技术,新技术还有待考验。

 回复 引用 查看   
#316楼 2009-11-28 11:26 linv2      
管他什么新技术旧技术
用到就学

 回复 引用   
#317楼 2009-12-09 15:51 intcrm[未注册用户]
IntCRM是为网络公司量身定制的一套crm系统:强大的客户校验及跟踪功能,完美的解决了销售人员撞单问题、优秀的合同预领功能及合同管理功能,解决了众多网络公司合同丢失、合同收款及员工合同管理防签私单问题。数据防拷贝为公司保障了数据的安全性。组织结构及功能权限完全自主设置,灵活性强。多模式的统计功能,让管理者能很好的掌握公司员工、部门、收入、支出的发展趋势。
IntCRM V2.7已发布,请联系试用,测试地址:http://www/intcrm/cn
KeyWords:网络公司合同管理 网络公司客户管理 客户合同管理系统 网络公司客户合同管理系统 Create At:15:50:54

 回复 引用 查看   
#318楼 2010-01-04 09:49 幻&影      
说得不错,我是刚学习linq不久,想问一个问题,linq里面如何实现对其他数据库的访问,好象只有linq so Sql?
 回复 引用 查看   
#319楼 2010-02-28 12:11 洛客      
公司最近正在規格一個Portal系統,里面還有包含ERP的功能(倉庫、采購、銷售、財務);
工具和技術采用:
VS 2010 Bate2 + SQL2005 + Silverlight 4 + WCF RIA Services + ADO.Net Entity Framework

當然,這里面就會用到 Linq.
不知道,有誰有用過這些技術開發過這樣的大項目?


 回复 引用 查看   
#320楼 2010-02-28 14:53 ‰流浪※      
.NET 3.5里的LINQ 解决方案都非常实用,对象化的方式访问数据库,个人觉得,开发效率提高了不少
 回复 引用 查看   
#321楼 2010-04-07 09:32 Alifellod      
苍天已死
黄天当立

 回复 引用 查看   
#322楼 2010-04-14 22:05 MR J Wang      
选择合适的语言工具是成为一个程序员基本的能力
 回复 引用 查看   
#323楼 2010-04-15 09:37 THRONE      
很客观 很正直的说法 顶你个
 回复 引用 查看   
#324楼 2010-06-23 16:12 战斧神话      
时隔一年半,看到这文章,绝对认同!
 回复 引用 查看   
#325楼 2010-10-09 15:57 花祭果凛      
在平常的开发中,我经常使用Linq 感觉很好用。
 回复 引用 查看   
#326楼 2011-02-16 15:10 业磊      
是的,怎么用着舒服就怎么用
 回复 引用 查看   
#327楼 2011-02-27 02:18 咸蛋哥哥      
每天或每月都会有这类帖子或言论,一言评之: 浮躁,无主见!
 回复 引用 查看   
#328楼 2011-04-19 01:03 Osiris Chung      
自从看到LINQ就迷上了,管它会不会退出舞台,在它还在舞台的时候就应该让它发挥极致~
评论共4页: 上一页 1 2 3 4