论坛首页 编程语言技术论坛

强悍的LINQ

浏览 19546 次
锁定老帖子 主题:强悍的LINQ
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-05-04  
5.1假期中学习了一下LINQ,令人震撼啊,在编译器和语言层面支持的LINQ,可以将目前任何的Java架构轻松打趴下。比如EJB3/Hibernate的查询语言和LINQ To SQL比起来简直就是小孩子手上的玩具了。

偶可以打赌,Java肯定将会在后续版本里面苦苦追赶.NET的这个特性。

想了解LINQ入门的,可以看一下Anders Hejlsberg大师的这篇介绍文章:
http://msdn2.microsoft.com/en-us/library/aa479865.aspx

想体验LINQ TO SQL的威力,可以看一下Mike Tautly blog上的系列录像:
http://mtaulty.com/
   发表时间:2007-05-04  
Readonly 写道
5.1假期中学习了一下LINQ,令人震撼啊,在编译器和语言层面支持的LINQ,可以将目前任何的Java架构轻松打趴下。比如EJB3/Hibernate的查询语言和LINQ To SQL比起来简直就是小孩子手上的玩具了。

偶可以打赌,Java肯定将会在后续版本里面苦苦追赶.NET的这个特性。

想了解LINQ入门的,可以看一下Anders Hejlsberg大师的这篇介绍文章:
http://msdn2.microsoft.com/en-us/library/aa479865.aspx

想体验LINQ TO SQL的威力,可以看一下Mike Tautly blog上的系列录像:
http://mtaulty.com/


谢谢分享。同样也震撼了我。

值得注意的是 C#比较好的支持了lambda 和 extension methods .

这点,java应该需要好好借鉴。 如果能在语言级别上实现类似的扩展,很多东西都可以很好地往下开展下去了。

0 请登录后投票
   发表时间:2007-05-04  
firebody 写道
值得注意的是 C#比较好的支持了lambda 和 extension methods . 

嗯,看看这篇"What LINQ will offer"
http://www.techworld.com/features/index.cfm?FeatureID=2982

作者最后一段总结得很不错:
引用

In terms of the evolution of programming languages, LINQ represents a fusion of a typical OO language (C#) with ideas taken from modern dynamic languages such as Ruby and functional languages such as Lisp. It’s a thoroughly interesting idea and its availability probably will make C# a technical advance on Java, for a time at least. However, whether it actually delivers better (more powerful, more reliable and more maintainable) applications - which is presumably what it's all about at bottom for the companies employing .NET developers - depends on how C# and VB programmers take to such concepts as lambda expressions, expression trees and declarative programming.

语言是进化滴,LINQ是博采众长滴,Java是需要迎头赶上滴。
但是,做好程序主要还是得靠人,而不是靠语言滴。
0 请登录后投票
   发表时间:2007-05-04  
下面这个链接,有不少Anders Hejlsberg的关于LINQ的Video:

http://blogs.msdn.com/charlie/archive/2007/03/01/february-ctp-now-available.aspx

这个pdf讲了一堆下一代.NET语言特性,写的挺好玩的。


http://research.microsoft.com/~emeijer/Papers/ICFP06.pdf

(这是cookoo投到软件艺法圈子的博客里推荐的,我在那里看来的。)

Readonly 写道
语言是进化滴,LINQ是博采众长滴,Java是需要迎头赶上滴。 但是,做好程序主要还是得靠人,而不是靠语言滴。


说的倒是轻巧,C# 3.0秋天一正式推出,那搞Java的可是用鸟枪对人家半自动。当然有不少菜鸟拿把半自动不会使保险还没开。但也不是每个搞.NET的都是菜鸟。看看兵临城下那个神枪手,开头连把枪都没有,还不是虎落平阳。

看看Java 7,http://tech.puredanger.com/java7,好消息不少,比如closure和对动态语言的支持。但是类似LINQ的特性好像还没有。

微软的实力太强大了。
0 请登录后投票
   发表时间:2007-05-05  
Readonly 写道
5.1假期中学习了一下LINQ,令人震撼啊,在编译器和语言层面支持的LINQ,可以将目前任何的Java架构轻松打趴下。比如EJB3/Hibernate的查询语言和LINQ To SQL比起来简直就是小孩子手上的玩具了。

偶可以打赌,Java肯定将会在后续版本里面苦苦追赶.NET的这个特性。

想了解LINQ入门的,可以看一下Anders Hejlsberg大师的这篇介绍文章:
http://msdn2.microsoft.com/en-us/library/aa479865.aspx

想体验LINQ TO SQL的威力,可以看一下Mike Tautly blog上的系列录像:
http://mtaulty.com/


看了LINQ的介绍,确实有点意思,在语言层面集成对象查询语言。但因为我最近一直在钻研ruby的缘故,所以对LINQ没啥感觉。就不说那些LINQ那些查询语句,ruby可以以同样简单的方式直接写出来,就说ruby的open class能力,你要想什么语法,随时随地的往ruby里面添加,没有什么不能做的事情,所以LINQ对我缺乏诱惑力。

当然,如果和Java做比较,那Java确实就差了一大截了。但是我觉得,自从dotnet的诞生开始,Java就不是以功能强大简便和dotnet竞争的,事实上Java的开发效率也一直低于dotnet。这些年来,Java和dotnet竞争的资本主要是:强大的跨平台支持能力;强大的开源社区支持;和整体应用解决方案的安全性,和这些大的目标相比,语法的强大和便捷就显得次要很多了。

3 请登录后投票
   发表时间:2007-05-05  
silverlight(wpf/e)类似于flex的技术,居然支持linq,强大!
同样也支持c#,vb.net ,javascript ,IronPython和JScript;
。今年晚些时候,微软将推出对Ruby和VBx的支持.
0 请登录后投票
   发表时间:2007-05-05  
linq和传统的orm(包括hibernate,activerecord,sqlalchemy之类的)走的是两条路。有哲学上的差别。
linq的强大一个在于语法元素在查询中的无缝集成,但这个其实是省力不省功,而且引入了额外的复杂性。另一个最重要的,则是可以从根据从database端取回的数据生成任何方式的对象,这个太强悍了太灵活了。可能会对开发模式带来比较大的影响。
按照传统的做法,一般都会做对数据库设计和类设计做一个相关的规划,而使用了linq之后,这里面的关联性被解开了。设计数据库的时候大体上不需要考虑类设计的因素,这两方面可能存在的不匹配可以经由linq这个层面来解决。对于小规模项目而言,这个做法会较大的提速. 规模生长之后感觉上会逐渐失控。一个可能会有一批小尺寸的值类,另一个则是难以掌控关联关系和某些约束的满足性。毕竟,在传统的orm中,走的路线基本上是一个Person表对应一个Person类,搞定Person类上的约束就可以高枕无忧.
0 请登录后投票
   发表时间:2007-05-06  
C#在语言级别提供对象查询语言,当然是很强大了,但让我有种说不出来的怪异感觉。因为我总觉得这种功能不应该是编程语言级别提供的,而应该是应用框架或者库去提供的功能。可以想像,LINQ一旦普及,自身肯定会快速的演进,带动C#语言频繁的更改语法,不知道这究竟是不是好事。当然C#每次版本升级,都一定会出现重大语法更改,也许dotnet程序员已经适应了也说不定。但是我知道有些dotnet程序员因为维护老项目,同时开发新项目的缘故,经常需要在dotnet1.1和dotnet2.0两种不怎么兼容开发环境当中来回切换。编程语言语法的快速演进很可能会带来更加混乱的局面。看看JDK5.0进行了重大语法改进,却直到现在都没有普及就应该清楚:改变基础语法可能不是一件容易的事情。

BTW:我现在到很欣赏ruby的方式,基础语法稳定,但是提供强大的open class以及DSL能力,让你能够在ruby语言基础上定制自己的方言,类似库,确直达语法层面。

0 请登录后投票
   发表时间:2007-05-06  
目前看来
C Sharp的语法上都是增加或扩展吧
没有更改已有的东西哦

0 请登录后投票
   发表时间:2007-06-18  
Robin说的不错,因为在C++领域也遇到这样的问题,很多C++的开发者在模板推出多年后还没有使用过,不过从另一个角度来说,LINQ的使用应该会更普遍一些,学习成本也比较低。带来的开发效率提高也是很明显的。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics