C#与.NET 3.0高级程序设计(特别版)(Amazon超级畅销书,C#圣经级著作)
基本信息
- 原书名: Pro C# with .NET 3.0, Special Edition
- 原出版社: Apress
编辑推荐
Amazon超级畅销书,C#圣经级著作.
全面涵盖C# 3.0和.NET 3.0平台,包括LINQ、WPF、WCF和WF..
用中间语言深入揭示各语言特性,让你知其然,更知其所以然
国内多位微软MVP联手翻译...
内容简介回到顶部↑
本书是c# 领域久负盛名的经典著作,深入全面地叙述了c# 编程语言和.net 平台核心,并以大量示例剖析相关概念。书中介绍了c# 的各种语言构造、.net 2.0 的类、核心api、公共中间语言(cil)、动态程序集和asp.net 扩展等内容;同时也介绍了.net 3.0 中的新的编程api 包括wpf、wcf 和wf 的功能;另外,还介绍了最新的c# 3.0 编程语言和linq 编程技术。
本书由微软c# mvp andrew troelsen 编写,历经多次修订,适合各层次.net 开发人员阅读。
本书由微软c# mvp andrew troelsen 编写,历经多次修订,适合各层次.net 开发人员阅读。
作译者回到顶部↑
本书提供作译者介绍
特罗尔森(Andrew Troelsen),世界级C#专家,微软Visual C#MVP。他是著名的微软技术咨询企业Intcrtech的合伙人和副总裁,该公司的客户包括微软、霍尼韦尔、美国航天局等。他曾为MSDN网站和MacTec网站撰写了有关各种操作系统平台上.NET技术的文章,并经常在业界主要技术会议上发表演讲和开没技术讲座。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
第一部分 c#和.net平台简介
第1章 .net之道
1.1 了解.net之前的世界
1.1.1 c/win32 api程序员的生活
1.1.2 c++/mfc程序员的生活
1.1.3 visual basic 6.0程序员的生活
1.1.4 java/j2ee程序员的生活
1.1.5 com程序员的生活
1.1.6 windows dna程序员的生活
1.2 .net解决方案
1.3 .net平台构造块(clr、cts和cls)简介
1.4 c#的优点
1.5 其他支持.net的编程语言
1.6 .net程序集概览
1.7 单文件程序集和多文件程序集
1.8 cil的作用
1.8.1 cil的好处
1.8.2 将cil编译成特定平台的指令
1.9 .net类型元数据的作用
1.10 程序集清单的作用
第1章 .net之道
1.1 了解.net之前的世界
1.1.1 c/win32 api程序员的生活
1.1.2 c++/mfc程序员的生活
1.1.3 visual basic 6.0程序员的生活
1.1.4 java/j2ee程序员的生活
1.1.5 com程序员的生活
1.1.6 windows dna程序员的生活
1.2 .net解决方案
1.3 .net平台构造块(clr、cts和cls)简介
1.4 c#的优点
1.5 其他支持.net的编程语言
1.6 .net程序集概览
1.7 单文件程序集和多文件程序集
1.8 cil的作用
1.8.1 cil的好处
1.8.2 将cil编译成特定平台的指令
1.9 .net类型元数据的作用
1.10 程序集清单的作用
译者序回到顶部↑
应用程序开发的目标始终如一,就是在最短时间内制作出最好的软件。当今最流行的快速开发平台是什么,毫无疑问,是微软公司的.NET Framework。以Windows为例,原来的Win32接口已经融入到功能更强的.NET Framework中。继2002年发布Framework 1.1后,微软公司在2005年发布的Framework 2.0为设计和编写Windows和Web软件的开发人员提供了更好的工作环境和更高的开发效率,微软公司更是在今年发布了Framework 3.0和Framework 3.5,采用了全新的开发模式帮助开发者构建更为高效安全的应用。.
在.NET平台中,.NET Framework占据着核心的位置,它是整个.NET平台的关键框架,是为众多高级语言和应用程序模型(如Windows窗体、ASP.NET Web窗体和XML Web服务等)提供各种服务的重要基石。.NET Framework 2.0对原有功能进行了改进,并新增了一些功能,比如对64位平台的支持、对访问控制列表的支持、COM Interop服务的增强、全球化、分布式计算以及ClickOnce部署等,这些都极大地提高了开发效率。C#是.NET平台上最流行的开发语言,2.0版本相对于以前版本引入了很多语言扩展,其中最重要的是泛型、匿名方法、迭代器和不完全类型等。这些扩展的设计为开发者提供了高度的代码重用,并且与现有代码高度兼容。
2007年年中,微软如期发布了C# 3.0和.NET 3.0。两个新版本相同之处在于,新增特性都是以扩展的形式出现的,从而最小程度地减少了迁移成本。其中,.NET 3.0框架并没有过多对现有技术作进一步改进,而是引入了4种基础性的新技术:Windows描述基础(WPF)、Windows通信基础(WCF)、Windows工作流基础(WF)和Windows CardSpace(WCS)。WPF提供了一种一致的方案来构建编程模型,并且支持使用更为丰富的控件和设计技术来开发Windows程序。在WPF中,使用基于XML的一种描述语言XAML来灵活地创建界面并控制界面对象的布局。WCF的核心目的是允许程序与同一台计算机或网络上的或跨越互联网的其他程序实现通信。WCF编程模型把Web服务、.NET远程技术、分布式事务和消息队列统一到单个面向服务的编程模型中,从而实现了真正意义上的分布式计算。WF是微软用来定义、执行和管理工作流的编程模型、引擎和工具的总称。工作流由一系列的活动组成,而活动是特定于领域的实际过程的模型C# 3.0在2.0的基础上,以LINQ(语言集成查询)为中心引入了几个语言扩展,包括隐型局部变量、扩展方法、Lambda表达式、对象初始化器、匿名类型、隐型数组等,从而使C#初步具有了函数式程序设计语言的雏形。本书最后一部分比较详细地描述了这些新技术的发展和带来的巨大成效,可以快速地帮助开发者转移到新的平台上来。..
本书分六个部分介绍了.NET Framework和C#的新特性,并举例进行了详细的描述。第一部分介绍了.NET平台的核心、.NET类型系统和各种创建.NET应用的开发工具。第二部分探究了C#编程语言所有让人震惊的细节,其中包括.NET 2.0中新的语法结构,同时还介绍了CTS 的每一个成员(类、接口、结构、枚举和委托)和泛型结构等。第三部分深入分析了.NET程序集格式的细节。你不仅可以学到如何配置和定义.NET代码库,而且还会理解.NET二进制映像的内部结构。这部分还阐述了.NET特性的作用以及如何编写多线程程序,后面的章节分析了一些较低层次的细节(如对象上下文)和CIL的语法及语义结构。第四部分通过探索一系列基类库的命名空间来给你一些新的知识,包括文件的输入/输出、.NET远程处理层、Windows形态开发和利用ADO.NET来访问数据库。第五部分着力于叙述ASP.NET网页应用和XML网页服务的构造。ASP.NET 2.0主要是从ASP.NET 1.x升级而来,增强了ASP.NET各个方面,并且包含了许多新奇的东西,如新的基本控件和数据控件、改善的代码隐藏模型开发、缓存页的多种新方式、母版页、主题等多种新技术。第六部分主要探讨了.NET 3.0平台采用的新技术,如WPF、WCF、WF、LINQ、C#3.0等,包括框架及组件的安装、使用和代码示例,比较详细地描述了新技术的发展和取得的巨大成效,帮助开发者快速地转移到新的平台上。
真诚地希望我们为这本书付出的辛勤劳动没有辜负大家的期望,希望各位读者朋友在阅读后能够对.NET Framework中的新技术有更深的理解。
我们要感谢所有对这本书的翻译给予过帮助和支持的朋友。感谢本书的作者Andrew Troelsen先生,他为我们带来这样一本含大量精彩篇章的著作。感谢很多在翻译中给过我们支持的朋友和网友,请原谅不能一一列出他们的名字。在这里还要对我们的家人在翻译期间的诸多付出表示深深的感谢!
本书是国内.NET社区通力合作的结果。全书由王少葵、张大磊、朱晔、范睿主译,段维、徐坚、于淼、马莉峥、李新峰、周梦杰、阎希光等参与了本书的翻译。第六部分.NET的新技术由金雪根(思归)领衔,黄穗鹏、田梦、谭屈楼等参与翻译与校对。另外,钱志明、李新存、金欣亮、高燕、高海峰、李瑞华、蒋敏慧、邓潇、刘磊、汪璞、崔灿、刘学、姚冬婧、龙勇、陈源、高攀、陈莉、郭程建、余国强、邓强、程锋、董火生、唐毅和许卫国参与了辅助翻译工作并提供了技术问题的支持。特别感谢田原、金雪根、林七佛和陈传焰,他们为本书所有章节进行了细心的校对,为本书的翻译完成做出了巨大的贡献。
由于时间仓促,且译者水平有限,书中难免会出现一些问题或疏漏,请各位读者不吝赐教,我们非常感谢读者的任何批评和反馈,并会基于此做出更正与改进。谢谢!...
译者
2007年11月
在.NET平台中,.NET Framework占据着核心的位置,它是整个.NET平台的关键框架,是为众多高级语言和应用程序模型(如Windows窗体、ASP.NET Web窗体和XML Web服务等)提供各种服务的重要基石。.NET Framework 2.0对原有功能进行了改进,并新增了一些功能,比如对64位平台的支持、对访问控制列表的支持、COM Interop服务的增强、全球化、分布式计算以及ClickOnce部署等,这些都极大地提高了开发效率。C#是.NET平台上最流行的开发语言,2.0版本相对于以前版本引入了很多语言扩展,其中最重要的是泛型、匿名方法、迭代器和不完全类型等。这些扩展的设计为开发者提供了高度的代码重用,并且与现有代码高度兼容。
2007年年中,微软如期发布了C# 3.0和.NET 3.0。两个新版本相同之处在于,新增特性都是以扩展的形式出现的,从而最小程度地减少了迁移成本。其中,.NET 3.0框架并没有过多对现有技术作进一步改进,而是引入了4种基础性的新技术:Windows描述基础(WPF)、Windows通信基础(WCF)、Windows工作流基础(WF)和Windows CardSpace(WCS)。WPF提供了一种一致的方案来构建编程模型,并且支持使用更为丰富的控件和设计技术来开发Windows程序。在WPF中,使用基于XML的一种描述语言XAML来灵活地创建界面并控制界面对象的布局。WCF的核心目的是允许程序与同一台计算机或网络上的或跨越互联网的其他程序实现通信。WCF编程模型把Web服务、.NET远程技术、分布式事务和消息队列统一到单个面向服务的编程模型中,从而实现了真正意义上的分布式计算。WF是微软用来定义、执行和管理工作流的编程模型、引擎和工具的总称。工作流由一系列的活动组成,而活动是特定于领域的实际过程的模型C# 3.0在2.0的基础上,以LINQ(语言集成查询)为中心引入了几个语言扩展,包括隐型局部变量、扩展方法、Lambda表达式、对象初始化器、匿名类型、隐型数组等,从而使C#初步具有了函数式程序设计语言的雏形。本书最后一部分比较详细地描述了这些新技术的发展和带来的巨大成效,可以快速地帮助开发者转移到新的平台上来。..
本书分六个部分介绍了.NET Framework和C#的新特性,并举例进行了详细的描述。第一部分介绍了.NET平台的核心、.NET类型系统和各种创建.NET应用的开发工具。第二部分探究了C#编程语言所有让人震惊的细节,其中包括.NET 2.0中新的语法结构,同时还介绍了CTS 的每一个成员(类、接口、结构、枚举和委托)和泛型结构等。第三部分深入分析了.NET程序集格式的细节。你不仅可以学到如何配置和定义.NET代码库,而且还会理解.NET二进制映像的内部结构。这部分还阐述了.NET特性的作用以及如何编写多线程程序,后面的章节分析了一些较低层次的细节(如对象上下文)和CIL的语法及语义结构。第四部分通过探索一系列基类库的命名空间来给你一些新的知识,包括文件的输入/输出、.NET远程处理层、Windows形态开发和利用ADO.NET来访问数据库。第五部分着力于叙述ASP.NET网页应用和XML网页服务的构造。ASP.NET 2.0主要是从ASP.NET 1.x升级而来,增强了ASP.NET各个方面,并且包含了许多新奇的东西,如新的基本控件和数据控件、改善的代码隐藏模型开发、缓存页的多种新方式、母版页、主题等多种新技术。第六部分主要探讨了.NET 3.0平台采用的新技术,如WPF、WCF、WF、LINQ、C#3.0等,包括框架及组件的安装、使用和代码示例,比较详细地描述了新技术的发展和取得的巨大成效,帮助开发者快速地转移到新的平台上。
真诚地希望我们为这本书付出的辛勤劳动没有辜负大家的期望,希望各位读者朋友在阅读后能够对.NET Framework中的新技术有更深的理解。
我们要感谢所有对这本书的翻译给予过帮助和支持的朋友。感谢本书的作者Andrew Troelsen先生,他为我们带来这样一本含大量精彩篇章的著作。感谢很多在翻译中给过我们支持的朋友和网友,请原谅不能一一列出他们的名字。在这里还要对我们的家人在翻译期间的诸多付出表示深深的感谢!
本书是国内.NET社区通力合作的结果。全书由王少葵、张大磊、朱晔、范睿主译,段维、徐坚、于淼、马莉峥、李新峰、周梦杰、阎希光等参与了本书的翻译。第六部分.NET的新技术由金雪根(思归)领衔,黄穗鹏、田梦、谭屈楼等参与翻译与校对。另外,钱志明、李新存、金欣亮、高燕、高海峰、李瑞华、蒋敏慧、邓潇、刘磊、汪璞、崔灿、刘学、姚冬婧、龙勇、陈源、高攀、陈莉、郭程建、余国强、邓强、程锋、董火生、唐毅和许卫国参与了辅助翻译工作并提供了技术问题的支持。特别感谢田原、金雪根、林七佛和陈传焰,他们为本书所有章节进行了细心的校对,为本书的翻译完成做出了巨大的贡献。
由于时间仓促,且译者水平有限,书中难免会出现一些问题或疏漏,请各位读者不吝赐教,我们非常感谢读者的任何批评和反馈,并会基于此做出更正与改进。谢谢!...
译者
2007年11月
前言回到顶部↑
记得几年前,我建议Apress出版社出版一本书,介绍一种即将来临的软件SDK,代号NGWS(下一代Windows服务)。你可能已经想到了,NGWS最终成为了我们现在众所周知的.NET平台。从那时起,我对C#编程语言和.NET平台的研究就在这些最初的手稿中开始了。写这本书是一个令人着迷的过程,但是,我必须承认的是,对于这样一项在开发过程中正经历巨大变化的技术,写起来很伤脑筋。值得庆幸的是,在经过了许多个不眠之夜后,大约在2001年夏天,针对.NET 1.0 Beta 2的本书第1版出版了。.
从那以后,我便感到非常幸福,心中充满了感激之情,因为我的书得到了出版社,尤其是读者们的好评。这些年来,它曾入围Jolt大奖提名(可惜最后没得奖……)和2003年Referenceware编程类图书卓越大奖(这次我赢了?太酷了!)。
本书的第2版让我有机会能够详述那些关于.NET 1.1平台的内容。虽然第2版也包含了一些新的主题,但还是有部分章节和示例没能付诸出版。
本书的第3版加入了.NET 2.0所带来的大量吸引人的特性(新的C#编程结构、泛型以及核心API的更新等),而且还加入了一些写了很久但一直没有出版的新的内容,比如公共中间语言(CIL)、动态程序集和ASP.NET扩展等。
在这个特别版中,我添加了新的6章来描述.NET 3.0发布所带来的新的编程API。通过这些章节,你将理解Windows Presentation Foundation(WPF)、Windows Communication Foundation(WCF)和Windows Workflow Foundation(WF)的功能。另外,新章节还提供有关即将到来的C# 3.0编程语言和LINQ编程技术(LINQ到SQL和LINQ到XML)的详细描述。C# 3.0和LINQ目前还是beta版,最后两章为即将到来的改变提供了参考路线图。
与前3个版本一样,这一版用友好且平和的方式描述了C#编程语言和.NET基类库。我很不理解一些技术作者为何总是把书写成像GRE词汇表学习指南那样晦涩难懂。同样,新版本继续重点阐述构建软件解决方案所需的内容,而不会在深奥的且很少有人关心的内容上浪费时间。
你和我,我们是一个团队
技术作家所面对的是需求很高的读者(我应该知道,因为我就是他们的一员)。无论使用什么平台,对部门、公司、客户和任何课题来说,构建软件解决方案都是非常具体而且有针对性的事情。可能你工作在电子出版行业,或者为政府开发系统,或者是在科研机构或军队的某个部门工作,就我自己而言,我开发过儿童教育软件、各种n层系统以及许多医疗和金融行业的项目。你工作时编写的代码和我编写的代码百分之百是不同的(除非我们恰巧以前在一起工作)。
因此,在这本书中,我特意避免选择那些和具体行业紧密相关的例子,而是用与行业无关的例子来解释C#、OOP、CLR和.NET 2.0/3.0基类库。我不使用诸如数据填充表格、薪水计算或者其他的一些例子,而是坚持用与我们都有联系的主题:汽车,另外再加上几何结构和雇员作为补充示例。你不用担心会有什么陌生的背景知识。
我要做的是尽最大可能解释C#编程语言和.NET平台的核心内容。同时,我会尽可能把进一步学习本书的工具和策略教给你。
你要做的是理解这些内容并将其付诸于具体编程工作中。我很清楚,你的项目可能与汽车根本无关,但是所用到的知识是相通的。放心,一旦理解了这本书中的概念,你便能够很好地构建一个和实际情况紧密相关的.NET解决方案了。
本书内容
本书从逻辑上分为6个部分,每个部分包含一些相关联的章节。如果读过本书的第3版,你会发现这一版的前25章和第3版是一样的(但是更正了第3版的错误),而第六部分(专门讲述建立.NET 3.0/C# 3.0和LINQ应用程序)是全新的。可以这么说,本书是按照部分、章节详细分类的。
第一部分:C#和.NET平台简介
第一部分的目的在于让你了解.NET平台的核心、.NET类型系统和各种创建.NET应用的开发工具(其中很多是开源的),由此,你将对C#编程语言的基本情况有所了解。
第1章:.NET之道
这一章讲述本书其余部分的脉络。我们将首先回顾传统Windows开发的模式,并阐述它们的缺陷。然而,该章的主要目的是介绍.NET核心部分的组成,比如公共语言运行库(CLR)、公共类型系统(CTS)、公共语言规范(CLS)以及基类库,让你对C#编程语言和.NET程序集格式有一个初始了解,并且使你领略.NET平台的平台独立性的本质和公共语言基础结构(CLI)的作用。
第2章:构建C#应用程序
这一章介绍使用不同工具和技术来编译和调试C#源代码文件。先介绍了如何使用命令行编译器(csc.exe)和C#响应文件;接着介绍了许多IDE(集成开发环境),包括TextPad、SharpDevelop、Visual C# 2005 Express以及(当然少不了)Visual Studio 2005,你也将接触到许多开源工具(Vil、NAnt、NDoc等),这些开源软件是每一个.NET开发者所必备的。
第二部分:C#编程语言
从那以后,我便感到非常幸福,心中充满了感激之情,因为我的书得到了出版社,尤其是读者们的好评。这些年来,它曾入围Jolt大奖提名(可惜最后没得奖……)和2003年Referenceware编程类图书卓越大奖(这次我赢了?太酷了!)。
本书的第2版让我有机会能够详述那些关于.NET 1.1平台的内容。虽然第2版也包含了一些新的主题,但还是有部分章节和示例没能付诸出版。
本书的第3版加入了.NET 2.0所带来的大量吸引人的特性(新的C#编程结构、泛型以及核心API的更新等),而且还加入了一些写了很久但一直没有出版的新的内容,比如公共中间语言(CIL)、动态程序集和ASP.NET扩展等。
在这个特别版中,我添加了新的6章来描述.NET 3.0发布所带来的新的编程API。通过这些章节,你将理解Windows Presentation Foundation(WPF)、Windows Communication Foundation(WCF)和Windows Workflow Foundation(WF)的功能。另外,新章节还提供有关即将到来的C# 3.0编程语言和LINQ编程技术(LINQ到SQL和LINQ到XML)的详细描述。C# 3.0和LINQ目前还是beta版,最后两章为即将到来的改变提供了参考路线图。
与前3个版本一样,这一版用友好且平和的方式描述了C#编程语言和.NET基类库。我很不理解一些技术作者为何总是把书写成像GRE词汇表学习指南那样晦涩难懂。同样,新版本继续重点阐述构建软件解决方案所需的内容,而不会在深奥的且很少有人关心的内容上浪费时间。
你和我,我们是一个团队
技术作家所面对的是需求很高的读者(我应该知道,因为我就是他们的一员)。无论使用什么平台,对部门、公司、客户和任何课题来说,构建软件解决方案都是非常具体而且有针对性的事情。可能你工作在电子出版行业,或者为政府开发系统,或者是在科研机构或军队的某个部门工作,就我自己而言,我开发过儿童教育软件、各种n层系统以及许多医疗和金融行业的项目。你工作时编写的代码和我编写的代码百分之百是不同的(除非我们恰巧以前在一起工作)。
因此,在这本书中,我特意避免选择那些和具体行业紧密相关的例子,而是用与行业无关的例子来解释C#、OOP、CLR和.NET 2.0/3.0基类库。我不使用诸如数据填充表格、薪水计算或者其他的一些例子,而是坚持用与我们都有联系的主题:汽车,另外再加上几何结构和雇员作为补充示例。你不用担心会有什么陌生的背景知识。
我要做的是尽最大可能解释C#编程语言和.NET平台的核心内容。同时,我会尽可能把进一步学习本书的工具和策略教给你。
你要做的是理解这些内容并将其付诸于具体编程工作中。我很清楚,你的项目可能与汽车根本无关,但是所用到的知识是相通的。放心,一旦理解了这本书中的概念,你便能够很好地构建一个和实际情况紧密相关的.NET解决方案了。
本书内容
本书从逻辑上分为6个部分,每个部分包含一些相关联的章节。如果读过本书的第3版,你会发现这一版的前25章和第3版是一样的(但是更正了第3版的错误),而第六部分(专门讲述建立.NET 3.0/C# 3.0和LINQ应用程序)是全新的。可以这么说,本书是按照部分、章节详细分类的。
第一部分:C#和.NET平台简介
第一部分的目的在于让你了解.NET平台的核心、.NET类型系统和各种创建.NET应用的开发工具(其中很多是开源的),由此,你将对C#编程语言的基本情况有所了解。
第1章:.NET之道
这一章讲述本书其余部分的脉络。我们将首先回顾传统Windows开发的模式,并阐述它们的缺陷。然而,该章的主要目的是介绍.NET核心部分的组成,比如公共语言运行库(CLR)、公共类型系统(CTS)、公共语言规范(CLS)以及基类库,让你对C#编程语言和.NET程序集格式有一个初始了解,并且使你领略.NET平台的平台独立性的本质和公共语言基础结构(CLI)的作用。
第2章:构建C#应用程序
这一章介绍使用不同工具和技术来编译和调试C#源代码文件。先介绍了如何使用命令行编译器(csc.exe)和C#响应文件;接着介绍了许多IDE(集成开发环境),包括TextPad、SharpDevelop、Visual C# 2005 Express以及(当然少不了)Visual Studio 2005,你也将接触到许多开源工具(Vil、NAnt、NDoc等),这些开源软件是每一个.NET开发者所必备的。
第二部分:C#编程语言
媒体评论回到顶部↑
“问:学习C#最好的书是哪一本?答:最受推崇的是Andrew Troelsen的Pro C# with.NET3.0。”
——MSDN论坛
“本书极为全面、细致深入地探讨了C#与.NET 2.0框架的各种特性。其中对CIL的介绍和运用尤为精彩,超过了任何其他文章和图书。绝对值得拥有。”
——Slashdot网站
“这是一本不仅应该拥有,而且应该放在键盘旁边随时翻查的C#和.NET图书。”
——MSDN论坛
“本书极为全面、细致深入地探讨了C#与.NET 2.0框架的各种特性。其中对CIL的介绍和运用尤为精彩,超过了任何其他文章和图书。绝对值得拥有。”
——Slashdot网站
“这是一本不仅应该拥有,而且应该放在键盘旁边随时翻查的C#和.NET图书。”
【插图】


点击看大图









加载中...
