其实书上讲了一大堆的对比,说传统的数据和对象的访问方法怎么怎么不好,事实上目前大多数的程序员仍然采用以前的套路,只是在个人不同的风格习惯上,会用类似NHibernate之类的工具提高效率,关于这些估计大家都深有体会。但是,LINQ究竟有什么好,我们为什么要使用它?知道这个还是蛮重要的。
书上粗略提了两点:整合使用多重数据类型和数据源,还有就是强类型支持。前者为跨数据源提供了统一的查询语法和数据处理模型,后者则为SQL语句的编译时检查和智能感知的增强提供基础。
LINQ这个东东并不是一天建成的,它是从MS Research好几年的若干项目演化合并而成。最开始就是C-Omega项目,它主要作为数据类型扩展增强C#对XML和数据库之间的操作;接着是ObjectSpaces,它最初就是一套数据访问的API,使数据对象化,实现对象内数据查询功能,不过这个项目由于WinFS的延迟而夭折;最后是Xquery的实现,这部分功能在.NET FX 2.0的第一个预览版出现,但最终却放弃了,因为它完全又是一种附加语言。然后MS就停止了这三个项目,并在PDC 2005上公布了LINQ项目的开始。
既然LINQ主要整合的是内存对象、关系数据库和XML的数据访问,自然可以分成LINQ to Objects,LINQ to SQL 和 LINQ to XML了。下一步就是入门的代码,期待中。一上午的会,累呀。