精通LINQ程序设计
基本信息
- 原书名: Programming Microsoft LINQ
- 原出版社: Microsoft Press
编辑推荐
LINQ专家经典力作.
全面、深入地剖析LINQ特性..
示例丰富,操作性强...
内容简介回到顶部↑
本书全面、深入地剖析了linq的特性。全书分为6个部分,包括18章和3个附录。内容涵盖linq基础、针对关系数据的linq、linq和xml、高级linq和linq的应用等。.
本书丰富的示例可供读者研习之用,也可在自行开发解决方案时作为基础代码。本书的示例同时适用于c#和visual basic的开发人员。..
本书的目标读者是.net开发人员,尤其是已经掌握.net 2.0并准备升级到.net 3.5乃至4.0的开发人员。...
本书丰富的示例可供读者研习之用,也可在自行开发解决方案时作为基础代码。本书的示例同时适用于c#和visual basic的开发人员。..
本书的目标读者是.net开发人员,尤其是已经掌握.net 2.0并准备升级到.net 3.5乃至4.0的开发人员。...
作译者回到顶部↑
本书提供作译者介绍
Paolo Pialorsi是一位咨询师,培训师、作者,他专门研究开发Microsoft.NET.XML和Web服务解决方案。他著有4本书,还经常在业界的研讨会演讲。.
Marco Russo为专业开发人员提供关于Microsoft.NET Framework和Microsoft SQL Server方面的咨询和培训。他活跃于开发人员社区并撰写博客。他著有3本书。
这两位作者是DevLeap的创立者,DevLeap是一家致力于培训和指导专业开发人员的公司。..
李牧,毕业于海军航空工程学院,硕士研究生。现工作于海军兵种指挥学院,副教授。长期从事计算机专业.. << 查看详细
Marco Russo为专业开发人员提供关于Microsoft.NET Framework和Microsoft SQL Server方面的咨询和培训。他活跃于开发人员社区并撰写博客。他著有3本书。
这两位作者是DevLeap的创立者,DevLeap是一家致力于培训和指导专业开发人员的公司。..
李牧,毕业于海军航空工程学院,硕士研究生。现工作于海军兵种指挥学院,副教授。长期从事计算机专业.. << 查看详细
目录回到顶部↑
第i部分 linq基础.
第1章 linq简介
1.1 linq是什么
1.2 为什么需要linq
1.3 linq如何工作
1.4 语言集成
1.5 linq实现形式
1.6 小结
第2章 linq语法基础
2.1 linq查询
2.2 查询关键字
2.3 延迟查询求值和扩展方法解析
2.4 关于linq查询的最后一些思考
2.5 小结
第3章 linq to objects
3.1 查询操作符
3.2 转换操作符
3.3 小结
第ii部分 针对关系数据的linq
第4章 linq to sql:查询数据
第1章 linq简介
1.1 linq是什么
1.2 为什么需要linq
1.3 linq如何工作
1.4 语言集成
1.5 linq实现形式
1.6 小结
第2章 linq语法基础
2.1 linq查询
2.2 查询关键字
2.3 延迟查询求值和扩展方法解析
2.4 关于linq查询的最后一些思考
2.5 小结
第3章 linq to objects
3.1 查询操作符
3.2 转换操作符
3.3 小结
第ii部分 针对关系数据的linq
第4章 linq to sql:查询数据
译者序回到顶部↑
语言集成查询(Language Integrated Query,LINQ)是集成在.NET编程语言中的一种特性,是Visual Studio 2008和.NET Framework 3.5中一项突破性的创新,它在对象领域和数据领域之间架起了一座桥梁。它允许开发人员通过强类型化语法使用Microsoft.NET Framework 3.5代码编写类似SQL的查询。目前,它已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,具有丰富的元数据、智能感知、静态类型等强类型语言的好处,同时它还可以方便地对内存中的信息进行查询。正如Microsoft的LINQ首席程序经理Luca Bolognese说的,LINQ改变了编写程序的方式。.
本书的作者Paolo Pialorsi与Marco Russo是DevLeap的创立者,近年来在业界的专业开发者用户社群非常活跃,经常提供关于Microsoft.NET Framework和Microsoft SQL Server方面的咨询和培训。本书分为6个部分,共有18章和3个附录,详细、深入、系统地介绍了LINQ基础、针对关系数据的LINQ、LINQ和XML、高级LINQ以及LINQ的应用。对难以掌握的关键技术,更是精益求精地分析、引导,力图让读者轻松理解。此外,书中还有大量的“注意”、“重要提示”、“更多信息”等特色段落,丰富和拓宽读者的视野。..
本书的翻译是集体工作的结晶。在这里,首先要非常感谢本书的编辑,在本书翻译出版的过程中,编辑给子了及时并强有力的指导,可以说没有编辑那种精益求精的工作作风,很难想象这本书能得以顺利出版。本书序、前言、简介、第1~12章由李牧、何明星、汤波、张建祺、刘智丰、徐琴、张欣景、曾囡莉、曾囡芬和曹中华负责翻译和审校。第13~18章和附录由阎松涛、傅调平、方利君、石菲、焦华、陶辉云、阎利明、王斌、章水林、徐长江负责翻译和审校。全书最后由李牧负责统稿。在翻译过程中,我们对本书中出现的术语和难词难句都进行了仔细的推敲和研究,并广泛查阅资料,然而有些方面在译者的研究领域中也不曾遇到过,疏漏和争议之处在所难免,望广大读者提出宝贵的意见。
衷心祝愿广大的读者朋友能通过本书加深对LINQ编程的理解,并开始愉快而激动人心的程序设计之旅!...
李牧 阎松涛 傅调平
2009年于羊城
本书的作者Paolo Pialorsi与Marco Russo是DevLeap的创立者,近年来在业界的专业开发者用户社群非常活跃,经常提供关于Microsoft.NET Framework和Microsoft SQL Server方面的咨询和培训。本书分为6个部分,共有18章和3个附录,详细、深入、系统地介绍了LINQ基础、针对关系数据的LINQ、LINQ和XML、高级LINQ以及LINQ的应用。对难以掌握的关键技术,更是精益求精地分析、引导,力图让读者轻松理解。此外,书中还有大量的“注意”、“重要提示”、“更多信息”等特色段落,丰富和拓宽读者的视野。..
本书的翻译是集体工作的结晶。在这里,首先要非常感谢本书的编辑,在本书翻译出版的过程中,编辑给子了及时并强有力的指导,可以说没有编辑那种精益求精的工作作风,很难想象这本书能得以顺利出版。本书序、前言、简介、第1~12章由李牧、何明星、汤波、张建祺、刘智丰、徐琴、张欣景、曾囡莉、曾囡芬和曹中华负责翻译和审校。第13~18章和附录由阎松涛、傅调平、方利君、石菲、焦华、陶辉云、阎利明、王斌、章水林、徐长江负责翻译和审校。全书最后由李牧负责统稿。在翻译过程中,我们对本书中出现的术语和难词难句都进行了仔细的推敲和研究,并广泛查阅资料,然而有些方面在译者的研究领域中也不曾遇到过,疏漏和争议之处在所难免,望广大读者提出宝贵的意见。
衷心祝愿广大的读者朋友能通过本书加深对LINQ编程的理解,并开始愉快而激动人心的程序设计之旅!...
李牧 阎松涛 傅调平
2009年于羊城
前言回到顶部↑
我们第一次见到语言集成查询(Language Integrated Query,LINQ)是在2005年9月的专业开发人员大会(Professional Developers Conference,PDC)上,那次会议发布了LINQ项目。我们马上意识到LINQ具有长期的重要性和丰富的内涵。与此同时,我们也感到如果只是把LINQ看作一个具有包装访问关系数据能力的技术,将是一个巨大的错误。因为由LINQ引入的重要概念是从代码抽象中建立起来的,而代码抽象又是在无需担心失控的前提下,通过使用提高代码可读性的一贯方式完成的。我们喜爱LINQ,并且可以预见它将得到广泛的使用,但是我们担心使用者可能会对它的关键技术产生误解。出于这个原因,我们开始着手写一本关于LINQ的书。.
当我们的提议被Microsoft Press采纳之后,就得到了写书的宝贵机会。我们首先在beta 1版本的基础上,编写了本书最初的简略版Introducing Microsoft LINQ。我们错误地估计,完成了简略版就相当于完成写整本书一半的工作量,但是实际上只完成了三分之一(甚至可能只有四分之一)的工作量。我们收到了很多Introducing Microsoft LINQ读者的反馈意见,并且很多重要的反馈意见都是负面的。今天,我们在写本书的前言,向读者推荐本书,并不是因为它是我们自己写的,而是因为这是一本值得购买的好书!
在付出了大约三年的心血之后,我们终于实现了写完这本书的宏伟目标,但是这本书对你而言还只是个开端。LINQ介绍了一种更具有说明性的编程风格,并且不是一种过渡的技术。C#的首席设计师Anders Hejlsberg曾经说过,LINQ试图解决代码与数据间不匹配的问题。我们认为LINQ可能已经比其他方法领先一步解决了这个难题,因为它还能被用来编写并行算法,比如使用并行LINQ(Parallel LINQ,PLINQ)时的算法。..
LINQ可以渗透到软件体系结构当中,因为在应用程序的任何层都可以使用它。然而,与其他任何工具一样,它的使用有效性也受到限制。我们始终把如何最有效地使用LINQ这一理念贯穿全书。然而,做完所有这些工作之后,我们仍然感觉LINQ是一项“新”技术。我们认为你也会同我们一样,在开始的时候觉得使用LIQN查询关系型数据库非常自然。但是,在使用LINQ to Objects的查询编写操作内存数据的算法时,这个观念就会发生转变。这应该是容易的。实际上,只要阅读完本书的前三章,你就已经掌握了编写这种算法的知识。但是,其实这是最困难的一部分,因为你需要改变编写代码的思路。你需要用LINQ的方式来整理思路。我们没有找到一种神奇的方法来讲授这个内容。或许这与其他任何重大的变革一样,大家也需要时间和实践来完成这个转变。
祝大家阅读愉快!...
当我们的提议被Microsoft Press采纳之后,就得到了写书的宝贵机会。我们首先在beta 1版本的基础上,编写了本书最初的简略版Introducing Microsoft LINQ。我们错误地估计,完成了简略版就相当于完成写整本书一半的工作量,但是实际上只完成了三分之一(甚至可能只有四分之一)的工作量。我们收到了很多Introducing Microsoft LINQ读者的反馈意见,并且很多重要的反馈意见都是负面的。今天,我们在写本书的前言,向读者推荐本书,并不是因为它是我们自己写的,而是因为这是一本值得购买的好书!
在付出了大约三年的心血之后,我们终于实现了写完这本书的宏伟目标,但是这本书对你而言还只是个开端。LINQ介绍了一种更具有说明性的编程风格,并且不是一种过渡的技术。C#的首席设计师Anders Hejlsberg曾经说过,LINQ试图解决代码与数据间不匹配的问题。我们认为LINQ可能已经比其他方法领先一步解决了这个难题,因为它还能被用来编写并行算法,比如使用并行LINQ(Parallel LINQ,PLINQ)时的算法。..
LINQ可以渗透到软件体系结构当中,因为在应用程序的任何层都可以使用它。然而,与其他任何工具一样,它的使用有效性也受到限制。我们始终把如何最有效地使用LINQ这一理念贯穿全书。然而,做完所有这些工作之后,我们仍然感觉LINQ是一项“新”技术。我们认为你也会同我们一样,在开始的时候觉得使用LIQN查询关系型数据库非常自然。但是,在使用LINQ to Objects的查询编写操作内存数据的算法时,这个观念就会发生转变。这应该是容易的。实际上,只要阅读完本书的前三章,你就已经掌握了编写这种算法的知识。但是,其实这是最困难的一部分,因为你需要改变编写代码的思路。你需要用LINQ的方式来整理思路。我们没有找到一种神奇的方法来讲授这个内容。或许这与其他任何重大的变革一样,大家也需要时间和实践来完成这个转变。
祝大家阅读愉快!...
序言回到顶部↑
LINQ改变了编写程序的方式。至少对我来说如此。.
广泛流传的对象关系技术在这方面不如LINQ。不要误会我的意思,我深爱对象关系技术。我在过去的8年中,有一大半时间是在微软从事构建对象关系框架的工作。我崇拜这项技术,因而在我们成功构建这项技术后,我激动万分。这是一个非常有用的框架。但是它并没有改变编写程序的思路。它允许使用面向对象范式操作关系数据,而且还可以在编程语言当中自始至终地使用面向对象范式。
甚至LINQ to XML也无法改变编写程序的方式。不可否认,这是一个非常完美的库。很快,我就能编写XML的代码并且理解XML。在Visual Basic中,我可以较容易地理解它;在C#中,我需要下些功夫才能理解它。但是,即使点缀了Anders Hejlsberg的灵巧设计,它也仍然只是一个库。Anders Hejlsberg的灵巧设计有助于编写更好的XML代码,但是它没有改变编写程序的思路。
LINQ的功能方面改变了我编写程序的方式。这是一个艰难的过程。我编写程序已经很长时间,而且每个开发人员有自己的编写思路(就我而言,是完全采用面向对象的编写思路)。每个人擅长用自己的方式来编写程序。..
LINQ简洁的操作符以及这些操作符变化多端的组合方式最终征服了我。在我自己的程序代码中很少出现我能够挥洒自如地使用它的场合。随着设计的逐渐深入,我慢慢认识到我们创建了一种不只是一系列性能良好的库的东西,我们创建了表示查询的精美语法。我们制作了新库的蓝图,并且向人们提供工具创建这些新库。与此同时,我们致力于函数式编程与面向对象编程的前端集成。现在,我编写程序的方式就大为不同。
在以前研究对象的语言的时候,也的确做过类似的事情。但是,据我所知,这是首次把这些样式与主流的编程语言混在一起,以此创建一种框架,用于处理诸如数据库、XML、并行计算等非常基础的场景。
因此,使用这本非常有用的书可以学习如何使用LINQ。让我年轻的同事Marco和Paolo来指引你揭开LINQ to Objects、LINQ to SQL、LINQ to XML以及LINQ包含的其他所有内容的一切细节。但是不要忘记总体设计,要花一些时间理解基础的概念(也就是lambda表达式、表达式目录树、扩展方法等)。要深入研究第12章。你可以成为一个被动的LINQ使用者,也可以成为一个深入理解LINQ如何工作的使用者。我认为成为后者是一种更积极的态度。...
Luca Bolognese
LINQ首席程序经理
Microsoft
广泛流传的对象关系技术在这方面不如LINQ。不要误会我的意思,我深爱对象关系技术。我在过去的8年中,有一大半时间是在微软从事构建对象关系框架的工作。我崇拜这项技术,因而在我们成功构建这项技术后,我激动万分。这是一个非常有用的框架。但是它并没有改变编写程序的思路。它允许使用面向对象范式操作关系数据,而且还可以在编程语言当中自始至终地使用面向对象范式。
甚至LINQ to XML也无法改变编写程序的方式。不可否认,这是一个非常完美的库。很快,我就能编写XML的代码并且理解XML。在Visual Basic中,我可以较容易地理解它;在C#中,我需要下些功夫才能理解它。但是,即使点缀了Anders Hejlsberg的灵巧设计,它也仍然只是一个库。Anders Hejlsberg的灵巧设计有助于编写更好的XML代码,但是它没有改变编写程序的思路。
LINQ的功能方面改变了我编写程序的方式。这是一个艰难的过程。我编写程序已经很长时间,而且每个开发人员有自己的编写思路(就我而言,是完全采用面向对象的编写思路)。每个人擅长用自己的方式来编写程序。..
LINQ简洁的操作符以及这些操作符变化多端的组合方式最终征服了我。在我自己的程序代码中很少出现我能够挥洒自如地使用它的场合。随着设计的逐渐深入,我慢慢认识到我们创建了一种不只是一系列性能良好的库的东西,我们创建了表示查询的精美语法。我们制作了新库的蓝图,并且向人们提供工具创建这些新库。与此同时,我们致力于函数式编程与面向对象编程的前端集成。现在,我编写程序的方式就大为不同。
在以前研究对象的语言的时候,也的确做过类似的事情。但是,据我所知,这是首次把这些样式与主流的编程语言混在一起,以此创建一种框架,用于处理诸如数据库、XML、并行计算等非常基础的场景。
因此,使用这本非常有用的书可以学习如何使用LINQ。让我年轻的同事Marco和Paolo来指引你揭开LINQ to Objects、LINQ to SQL、LINQ to XML以及LINQ包含的其他所有内容的一切细节。但是不要忘记总体设计,要花一些时间理解基础的概念(也就是lambda表达式、表达式目录树、扩展方法等)。要深入研究第12章。你可以成为一个被动的LINQ使用者,也可以成为一个深入理解LINQ如何工作的使用者。我认为成为后者是一种更积极的态度。...
Luca Bolognese
LINQ首席程序经理
Microsoft

点击看大图



加载中...
