C#揭秘(C#与.NET平台开发必备)(china-pub首发)
基本信息
- 作者: (美)Joe Mayo [作译者介绍]
- 译者: 张子阳 余昭辉 王波
- 丛书名: 图灵程序设计丛书 C#与.NET系列
- 出版社:人民邮电出版社
- ISBN:9787115222213
- 上架时间:2010-3-16
- 出版日期:2010 年4月
- 开本:16开
- 页码:695
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > C#
编辑推荐
LINQ、WPF、WF、WCF,无所不包
全面、深入,适合各个层次需要
C#与.NET平台开发必备
内容简介回到顶部↑
c#提供了很多强大的特性,特别是通过使用 lambda表达式、扩展方法和 linq,方便地引入了函数式编程,使 c#程序员如虎添翼。本书以 c#语言的预备知识开篇,最后以部署代码结束全书,全面深入地讲解了 .net技术的各个知识点,在广度和深度上恰到好处。本书不仅系统地阐述了 c#开发相关的重要理论知识,而且还提供了大量的实例和解决常见问题的最佳方案,是 .net开发人员必备的参考书。
本书适合于各层次的 .net开发人员阅读。
本书适合于各层次的 .net开发人员阅读。
作译者回到顶部↑
本书提供作译者介绍
2Joe Mayo使用C#的先驱,拥有20多年丰富的开发经验,精通C、C++和Java等多种编程语言。在C#这个新语言推出不久,他就创建了C# Station网站,在其上公开C#教程,为全世界的Web开发人员所欢迎。除本书外,他还著有LINQ Programming一书。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
第一部分 c#基础
第1章 .net平台简介 2
1.1 .net是什么 2
1.2 clr 3
1.2.1 为什么clr如此重要 3
1.2.2 clr特性 4
1.2.3 clr执行过程 4
1.3 .net fcl 6
1.4 c#和其他.net语言 7
1.5 cts 7
1.6 cls 7
1.7 小结 8
第2章 c#和visual studio 2008概述 9
2.1 编写一个简单的c#程序 9
2.2 创建一个vs2008项目 12
2.2.1 运行新项目向导 12
2.2.2 理解解决方案和项目 14
2.2.3 使用vs2008编写代码 15
2.2.4 生成和运行程序 16
2.2.5 设置编译器选项 18
第1章 .net平台简介 2
1.1 .net是什么 2
1.2 clr 3
1.2.1 为什么clr如此重要 3
1.2.2 clr特性 4
1.2.3 clr执行过程 4
1.3 .net fcl 6
1.4 c#和其他.net语言 7
1.5 cts 7
1.6 cls 7
1.7 小结 8
第2章 c#和visual studio 2008概述 9
2.1 编写一个简单的c#程序 9
2.2 创建一个vs2008项目 12
2.2.1 运行新项目向导 12
2.2.2 理解解决方案和项目 14
2.2.3 使用vs2008编写代码 15
2.2.4 生成和运行程序 16
2.2.5 设置编译器选项 18
前言回到顶部↑
欢迎阅读《C#揭秘》,一本C#编程语言的程序员指南和参考书。C#主要是一种面向对象的编程语言,由强调使用组件方法进行软件开发的微软公司创建。C#目前已经到第3版,而且仍在发展当中,本书会引领你进行一次学习的旅程,了解该语言的发展如何帮助你在软件开发过程中取得更多成就。
C#是.NET平台的多种语言之一,.NET平台包括一个称为CLR(Common Language Runtime,公共语言运行库)的运行时引擎和一个庞大的类库。运行时是一个管理代码的虚拟机,同时提供许多其他服务。类库包含差不多数以千计的可重用对象,并为桌面和Web应用程序开发支持多种用户界面技术。
C#作为一门编程语言正在发展着。它最初是一种面向对象的、基于组件的语言,但现在正发展成为一种人们常说的函数式编程语言。贯穿全书,你将会看到许多例子中对象和组件被用作应用程序构建基块(building block)。你也将会看到许多含有LINQ(Language Integrated Query,语言集成查询)的例子,LINQ是一种以声明方式查询数据源的方法,不管数据源是对象、关系数据库、XML或是其他任何形式。
正如C#(以及.NET平台)已经发展了,本书也是一样。本书上一版是一个以语言为中心的学习指南和参考,教你使用C#编程。读者背景很多样化,因为C#是一门新的语言,各种背景的开发者都会使用它编程。所有的应用程序都在命令行上进行编译,你只需要.NET框架SDK和一个编辑器,就能够完成一切了。
就本质而言,本书第一版遵循的理念也体现在这一版中。例如,在开始之前你并不需要知道.NET。如果你使用任何语言进行过编程,本书对你来说应该是很容易的。本书包含了几个命令行的例子,特别是在一开始的时候,因为我相信使用命令行仍然是一项必需且有用的技能。然而,我们很快会转移到Visual Studio 2008(VS2008)IDE(Integrated Development Environment,集成开发环境),本书剩余部分的绝大部分内容都将用到它。然而本书并不要求你必须使用VS2008;我很快便会演示不使用它如何创建应用程序,而附录A介绍了各种命令行选项,并伴有例子(和本书的第一版一样)。尽管如此,VS2008仍是提高工作效率的一个极好工具,不过贯穿本书我都会为通过以代码为中心的RAD(Rapid Application Development,快速应用程序开发)来实现算法提供一些小技巧。
除了涵盖VS2008以外,我也加了几个新的章介绍一些最新的技术,例如WPF(Windows Presentation Foundation,Windows演示基础)、WCF(Windows Communication Foundation,Windows通信基础)和AJAX。如果你喜欢前沿技术,还有一些ADO.NET实体框架(ADO.NET Entity Framework)和ADO.NET数据服务(ADO.NET Data Services)的章节。谈到数据,我已经在这本书中添加了一整部分好几章,专门讨论如何操作数据。
自从2000年7月,当我打开.NET的第一个公测前版本,我就着迷了,并选择C#作为我的语言。我生活得很好而且人们非常需要我的C#技能,即使是在不景气的经济环境下也是如此。最重要的是,作为一名正式的课程讲师和一名开发者,我已经在授课和使用各种工具为客户带去价值的过程中获得了大量的经验。我希望自己立足实践总结出来并通过本书奉献给读者的所有经验、技巧,能像帮助我一样帮助你。
本书读者对象
如果你已经使用过别的计算机编程语言开发软件,那么理解本书的内容将没有任何问题。你已经知道了如何进行逻辑判断,并且构建迭代式代码。你也能够理解变量和基本的数字系统,例如十六进制。初学者可能想在一开始看些介绍性的内容,就像Sams Teach Yourself C# in 21 Days一样。实际上,只要有信心即使是初次接触编程的人也能够看懂本书。
这是一本为任何想要学习C#和.NET的程序员所写的书。它足够基础,让你尽可能看到C#的每一个方面,然而它也足够高级,能够帮你理解每天处理的企业级任务。
本书组织和目标
本书分为了8个部分。为了从头开始逐步学习,本书先讲一些较简单的材料和那些与C#语言本身紧密相关的内容。随后,本书转移到了与C#相关的其他领域,演示了如何使用数据、用户界面技术、Web服务以及其他有用的.NET技术。
第一部分是C#基础,涵盖了基本的C#语言语法等必要知识。第1章讨论.NET平台。这是很重要的一章,因为你需要知道你正在为什么样的环境构建应用程序。它涵盖了你作为一个C#开发者应该知道的每一件事,并且应该是你不时返回复习的地方,以提醒自己要成为一个成功的C#开发者,需要掌握哪些必不可少的内容。在第2章,你将学习如何通过命令行和VS2008创建简单的C#应用程序。它只是即将全面介绍VS2008一个开始。第3章学习类型系统,它是成功使用C#开发.NET应用程序的另一个重要里程碑。第4章和第5章分别演示了如何操作字符串和数组。当学习到第7章时,你将拥有足够的技能来编写一个简单的应用程序并会遇到bug。因此,我希望你在继续学习,进入到第二部分更加复杂的面向对象编程之前,要先了解关于使用VS2008调试器的技巧。
第二部分讲述了C#中的对象和组件编程。在本书第一版中,我花费了整个一章讲述基本的面向对象编程概念。在这一版中做了一些改变,我将一部分概念放到了其他章中。通过这种方式,那些已经知道面向对象编程的开发者不需要跳过整章,那些不知道面向对象的开发者也不会完全被忽略。大多数时候,我们讨论的重点是C#如何实现面向对象编程,向现有的面向对象程序员解释那些有趣的细微差别,并向所有的C#开发者解释必需的知识。
第三部分会教你一些C#中更高级的功能。在第二部分理解对象的基础上,你将在这部分学习对象生命周期——对象在什么时候第一次初始化,以及在什么时候从内存中清除。在前面的章节之上构建了一个完整的知识体系,引领你掌握理解.NET内存管理、垃圾收集器所需的知识,作为一个开发者,它对你意味着什么,并且你可以做些什么来确保对象和与其协作的资源被恰当地管理。
第四部分用5章篇幅讲述关于数据的内容。本书第一版的反馈表明,读者想了解更多有关数据的内容。因此,你现在可以学习有关LINQ to Objects、LINQ ot SQL、ADO.NET、LINQ to DataSet、XML、LINQ to XML、ADO.NET实体框架、LINQ to Entities、ADO.NET数据服务以及LINQ to Data服务的知识。实际上,这5章并非数据章节的全部,对于我为什么将数据部分放在书中较前面的位置,有一个很好的理由:贯穿本书剩余的部分,我都使用了LINQ。除了学习如何使用所有这些数据访问技术之外,你还将在全书中看到许多例子。
第五部分示范了如何使用各式各样的桌面用户界面技术。你有多种选择,包括在.NET 2.0中进行了强化的控制台应用程序、Windows窗体,以及WPF。顺便一提,如果你对Silverlight感兴趣的话,可能想先阅读WPF那一章,因为这两种技术都使用了XAML,相同的布局和相同的控件集。这样不仅有助于我为你带去更多关于这些新技术的信息,而且你所学到的一项技术对于另一项技术也是有用的,扩展了你作为一名.NET开发者的技能。
第六部分教你如何创建Web用户界面。ASP.NET是如今.NET的主要Web UI技术,我提供了相当的篇幅来帮助你快速了解它。你要注意有关桌面和Web应用程序区别的讨论,因为它将会影响到你如何开发ASP.NET应用程序。在最近几年,AJAX(异步JavaScript和XML)已经成为了一个热门话题。我将会演示如何使用ASP.NET AJAX(它与VS2008一起发布),以使你的ASP.NET页面更快地响应用户操作。最新的Web UI技术是Silverlight,它能使你创建交互式的网站,而这曾经只可能出现在桌面UI技术中。Silverlight的一些新的功能是更简单地在Web上播放音频、视频,以及动画制作功能;这些新功能大大增强了用户的Web体验(类似于Adobe Flash)。
第七部分带你接触各式各样的通信技术。在一个相互连接的世界中,这些章教你如何使用必需的工具。你将学习如何使用TCP/IP、HTTP以及FTP,并使用.NET框架类库发送电子邮件。Remoting(远程处理)的章节依然保留,Web服务的章节也是一样。然而,新添的一章讲述了新的WCF Web服务。
第八部分涵盖了关于架构和设计的主题。许多程序员学习了C#和前面讨论的所有主题,然后使用他们学到的东西去寻找自己的方式来创建应用程序。如果他们找到了一个创建应用程序的有效途径,那么是值得肯定的。然而,人们通常想要知道将所有这些对象、组件和服务放在一起来构建一个可用的应用程序,哪种方法最好。我并没有给出全部答案,因为架构和设计是一个庞大的话题。解决方案因情况而异,然而,我将快速浏览这一主题,演示一些我用过的技术。你将学习C#和.NET如何支持常见的设计模式,以及它们如何让你方便地应用这些模式。我演示了如何创建N层应用程序,并描述了多种方法,你可以采用我提出的这些方法,并以你自己的方式来使用它。我同样演示了如何使用几个.NET工具,包括类设计器,并介绍了WF(Windows Workflow,Windows 工作流),它拥有一个图形设计界面,用于可视化地创建应用程序。
C#是.NET平台的多种语言之一,.NET平台包括一个称为CLR(Common Language Runtime,公共语言运行库)的运行时引擎和一个庞大的类库。运行时是一个管理代码的虚拟机,同时提供许多其他服务。类库包含差不多数以千计的可重用对象,并为桌面和Web应用程序开发支持多种用户界面技术。
C#作为一门编程语言正在发展着。它最初是一种面向对象的、基于组件的语言,但现在正发展成为一种人们常说的函数式编程语言。贯穿全书,你将会看到许多例子中对象和组件被用作应用程序构建基块(building block)。你也将会看到许多含有LINQ(Language Integrated Query,语言集成查询)的例子,LINQ是一种以声明方式查询数据源的方法,不管数据源是对象、关系数据库、XML或是其他任何形式。
正如C#(以及.NET平台)已经发展了,本书也是一样。本书上一版是一个以语言为中心的学习指南和参考,教你使用C#编程。读者背景很多样化,因为C#是一门新的语言,各种背景的开发者都会使用它编程。所有的应用程序都在命令行上进行编译,你只需要.NET框架SDK和一个编辑器,就能够完成一切了。
就本质而言,本书第一版遵循的理念也体现在这一版中。例如,在开始之前你并不需要知道.NET。如果你使用任何语言进行过编程,本书对你来说应该是很容易的。本书包含了几个命令行的例子,特别是在一开始的时候,因为我相信使用命令行仍然是一项必需且有用的技能。然而,我们很快会转移到Visual Studio 2008(VS2008)IDE(Integrated Development Environment,集成开发环境),本书剩余部分的绝大部分内容都将用到它。然而本书并不要求你必须使用VS2008;我很快便会演示不使用它如何创建应用程序,而附录A介绍了各种命令行选项,并伴有例子(和本书的第一版一样)。尽管如此,VS2008仍是提高工作效率的一个极好工具,不过贯穿本书我都会为通过以代码为中心的RAD(Rapid Application Development,快速应用程序开发)来实现算法提供一些小技巧。
除了涵盖VS2008以外,我也加了几个新的章介绍一些最新的技术,例如WPF(Windows Presentation Foundation,Windows演示基础)、WCF(Windows Communication Foundation,Windows通信基础)和AJAX。如果你喜欢前沿技术,还有一些ADO.NET实体框架(ADO.NET Entity Framework)和ADO.NET数据服务(ADO.NET Data Services)的章节。谈到数据,我已经在这本书中添加了一整部分好几章,专门讨论如何操作数据。
自从2000年7月,当我打开.NET的第一个公测前版本,我就着迷了,并选择C#作为我的语言。我生活得很好而且人们非常需要我的C#技能,即使是在不景气的经济环境下也是如此。最重要的是,作为一名正式的课程讲师和一名开发者,我已经在授课和使用各种工具为客户带去价值的过程中获得了大量的经验。我希望自己立足实践总结出来并通过本书奉献给读者的所有经验、技巧,能像帮助我一样帮助你。
本书读者对象
如果你已经使用过别的计算机编程语言开发软件,那么理解本书的内容将没有任何问题。你已经知道了如何进行逻辑判断,并且构建迭代式代码。你也能够理解变量和基本的数字系统,例如十六进制。初学者可能想在一开始看些介绍性的内容,就像Sams Teach Yourself C# in 21 Days一样。实际上,只要有信心即使是初次接触编程的人也能够看懂本书。
这是一本为任何想要学习C#和.NET的程序员所写的书。它足够基础,让你尽可能看到C#的每一个方面,然而它也足够高级,能够帮你理解每天处理的企业级任务。
本书组织和目标
本书分为了8个部分。为了从头开始逐步学习,本书先讲一些较简单的材料和那些与C#语言本身紧密相关的内容。随后,本书转移到了与C#相关的其他领域,演示了如何使用数据、用户界面技术、Web服务以及其他有用的.NET技术。
第一部分是C#基础,涵盖了基本的C#语言语法等必要知识。第1章讨论.NET平台。这是很重要的一章,因为你需要知道你正在为什么样的环境构建应用程序。它涵盖了你作为一个C#开发者应该知道的每一件事,并且应该是你不时返回复习的地方,以提醒自己要成为一个成功的C#开发者,需要掌握哪些必不可少的内容。在第2章,你将学习如何通过命令行和VS2008创建简单的C#应用程序。它只是即将全面介绍VS2008一个开始。第3章学习类型系统,它是成功使用C#开发.NET应用程序的另一个重要里程碑。第4章和第5章分别演示了如何操作字符串和数组。当学习到第7章时,你将拥有足够的技能来编写一个简单的应用程序并会遇到bug。因此,我希望你在继续学习,进入到第二部分更加复杂的面向对象编程之前,要先了解关于使用VS2008调试器的技巧。
第二部分讲述了C#中的对象和组件编程。在本书第一版中,我花费了整个一章讲述基本的面向对象编程概念。在这一版中做了一些改变,我将一部分概念放到了其他章中。通过这种方式,那些已经知道面向对象编程的开发者不需要跳过整章,那些不知道面向对象的开发者也不会完全被忽略。大多数时候,我们讨论的重点是C#如何实现面向对象编程,向现有的面向对象程序员解释那些有趣的细微差别,并向所有的C#开发者解释必需的知识。
第三部分会教你一些C#中更高级的功能。在第二部分理解对象的基础上,你将在这部分学习对象生命周期——对象在什么时候第一次初始化,以及在什么时候从内存中清除。在前面的章节之上构建了一个完整的知识体系,引领你掌握理解.NET内存管理、垃圾收集器所需的知识,作为一个开发者,它对你意味着什么,并且你可以做些什么来确保对象和与其协作的资源被恰当地管理。
第四部分用5章篇幅讲述关于数据的内容。本书第一版的反馈表明,读者想了解更多有关数据的内容。因此,你现在可以学习有关LINQ to Objects、LINQ ot SQL、ADO.NET、LINQ to DataSet、XML、LINQ to XML、ADO.NET实体框架、LINQ to Entities、ADO.NET数据服务以及LINQ to Data服务的知识。实际上,这5章并非数据章节的全部,对于我为什么将数据部分放在书中较前面的位置,有一个很好的理由:贯穿本书剩余的部分,我都使用了LINQ。除了学习如何使用所有这些数据访问技术之外,你还将在全书中看到许多例子。
第五部分示范了如何使用各式各样的桌面用户界面技术。你有多种选择,包括在.NET 2.0中进行了强化的控制台应用程序、Windows窗体,以及WPF。顺便一提,如果你对Silverlight感兴趣的话,可能想先阅读WPF那一章,因为这两种技术都使用了XAML,相同的布局和相同的控件集。这样不仅有助于我为你带去更多关于这些新技术的信息,而且你所学到的一项技术对于另一项技术也是有用的,扩展了你作为一名.NET开发者的技能。
第六部分教你如何创建Web用户界面。ASP.NET是如今.NET的主要Web UI技术,我提供了相当的篇幅来帮助你快速了解它。你要注意有关桌面和Web应用程序区别的讨论,因为它将会影响到你如何开发ASP.NET应用程序。在最近几年,AJAX(异步JavaScript和XML)已经成为了一个热门话题。我将会演示如何使用ASP.NET AJAX(它与VS2008一起发布),以使你的ASP.NET页面更快地响应用户操作。最新的Web UI技术是Silverlight,它能使你创建交互式的网站,而这曾经只可能出现在桌面UI技术中。Silverlight的一些新的功能是更简单地在Web上播放音频、视频,以及动画制作功能;这些新功能大大增强了用户的Web体验(类似于Adobe Flash)。
第七部分带你接触各式各样的通信技术。在一个相互连接的世界中,这些章教你如何使用必需的工具。你将学习如何使用TCP/IP、HTTP以及FTP,并使用.NET框架类库发送电子邮件。Remoting(远程处理)的章节依然保留,Web服务的章节也是一样。然而,新添的一章讲述了新的WCF Web服务。
第八部分涵盖了关于架构和设计的主题。许多程序员学习了C#和前面讨论的所有主题,然后使用他们学到的东西去寻找自己的方式来创建应用程序。如果他们找到了一个创建应用程序的有效途径,那么是值得肯定的。然而,人们通常想要知道将所有这些对象、组件和服务放在一起来构建一个可用的应用程序,哪种方法最好。我并没有给出全部答案,因为架构和设计是一个庞大的话题。解决方案因情况而异,然而,我将快速浏览这一主题,演示一些我用过的技术。你将学习C#和.NET如何支持常见的设计模式,以及它们如何让你方便地应用这些模式。我演示了如何创建N层应用程序,并描述了多种方法,你可以采用我提出的这些方法,并以你自己的方式来使用它。我同样演示了如何使用几个.NET工具,包括类设计器,并介绍了WF(Windows Workflow,Windows 工作流),它拥有一个图形设计界面,用于可视化地创建应用程序。
媒体评论回到顶部↑
本书讲解全面、透彻,是迄今为止我看到的最好的C#书。
——Rick Harrison,软件咨询师
——Rick Harrison,软件咨询师

点击看大图





加载中...
