
表达式即编译器
动态生成代码的功能大大延伸了开发人员的表现能力。复杂的决策可以使用配制文件来表现,并交由业务分析师负责,从而避免了重复代码。过去.NET开发人员使用Relfection.Emit或CodeDom生成动态代码,不过LINQ表达式现在已经成为一种轻量级的替代品。

动态生成代码的功能大大延伸了开发人员的表现能力。复杂的决策可以使用配制文件来表现,并交由业务分析师负责,从而避免了重复代码。过去.NET开发人员使用Relfection.Emit或CodeDom生成动态代码,不过LINQ表达式现在已经成为一种轻量级的替代品。
Entity Framework六月CTP版本中包括一个新特性:对空间数据类型的官方支持。开发人员藉此可以表示使用坐标系统的数据,比如形状、线条或是地图上的点。
交互扩展(Interactive Extensions,缩写为Ix)是一组附加的LINQ to Objects查询操作符,它建立在Reactive Extensions(Rx)所完成工作的基础之上。快速浏览交互扩展的API之后,我们发现,在System.Linq命名空间下有一组IEnumerable的扩展方法。尽管大多数开发人员已经在他们自己的工具库中编写了许多此类扩展方法,但是拥有一份标准实现还是会弥补此处空白。
EduLINQ尝试解释LINQ to Objects运算符如何工作。MoreLINQ是一组LINQ to Objects运算符,扩充了标准运算符。LINQBridge把LINQ to Objects移植到.NET Framework 2.0。
微软研究院宣称,Z3是世界上最快的定理证明程序。Z3被设计作为其他应用程序的底层工具,它不适合单独使用。而嵌入到定理证明程序中的时候,在大量的项目中都有应用,包括Spec#/Boogie、Pex、Yogi、 Vigilante、SLAM、F7、SAGE、VS3、FORMULA和HAVOC。并且,Bart De Smet编写了LINQ to Z3,让这个工具变得无比易用。

作为一个有别于Java、Ruby等语言的一个特性,C#可以用索引器(Indexer)将类型本身以对象数组的形式供外部使用。同时,把索引器和LINQ结合使用倒是一个非常不错的组合,索引器做接口、LINQ完成内部检索逻辑,客户程序在无需记住具体方法名称的前提下,按照键值检索即可,索引器内部则依托LINQ to系列的基础,提供对各种异构数据源的访问。
.jpg)
Aaron Erickson谈了LINQ、表达式树,并介绍了他对对象建立的LINQ扩展索引(i4o)。i4o能够让我们对位于内存中的集合数据进行索引,并能够与LINQ配合使用。另外他还提到表达式树如何于LINQ交互,如何在特定的场景下配合使用等。

在这个访谈中,Jimmy谈论了LINQ to SQL和ORM。Jimmy曾经尝试过构建一个与LINQ to SQL比较相似的技术,但是得到了不同的结果。尽管LINQ to SQL朝正确的方向迈出了重要的一步,但是.NET在对象-关系映射方面依旧落后于其他编程语言。