首页>参考读物>计算机科学与技术>软件与程序设计

C#和.NET核心技术
作者 : Stephen C.Perry
译者 : 肖斌 王小振 等
出版日期 : 2006-07-20
ISBN : 7-111-19295-8
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 572
开本 : 16开
原书名 : Core C# and .Net
原出版社: Prentice Hall
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

C#和 .NET 核心技术
  C# 2.0和.NET 2.0的一本全面的开发指南
  本书是有关C# 2.0 和.NET 2.0的一本实用的参考书,是构建高品质C#应用的一本权威指南。书中提供了丰富的示例,充分展示了C# 2.0 和.NET 2.0的特性。本书面向有经验的程序员,列举了当今常用的最佳实践,以便充分利用C# 2.0语言的特性和Microsoft .NET 2.0基础架构。
  本书重点讲解如何用实用的代码来解决具体的实际问题。本书的内容覆盖面很广,从新的C#范型到Web服务,从反射到安全等都有涉及。系统地介绍了Windows 窗体应用的开发,并讨论了如何有效地使用GDI+图形类。还对如何用XML和ADO.NET完成数据管理提供了详细的说明,另外深入地讨论了一些高级主题,包括线程、远程通信和代码安全等。最后,用很大篇幅介绍了Web开发,包括ASP.NET、状态管理和HTTP请求等等。本书还从实用的角度讨论了可扩展性到本地化等一系列问题。 

  主要内容
  ◆ 提供了构建C#/.NET Windows应用、Web应用和Web服务的最佳实践。
  ◆从专家的角度详细分析安全性、可扩展性和其他重要问题。
  ◆大量专家级、高质量的代码示例。
  ◆深入地介绍包括范型等最新的C# 2.0特性。

图书特色

图书前言

“为计算机准备程序的过程非常吸引人,因为它不仅能带来经济和科学技术方面的回报,而且能给人以美的享受,就像写诗或作曲一样。”
  ———Donald Knuth,《Fundamental Algorithms》前言(1968)
  37年后,程序员仍能体验到开发一个高效程序所带来的创造满足感。这可能是半夜里突然闯入脑海中的10行递归代码,也可能是一个完整的产品管理系统,这个系统的设计也许困扰了你整整一年。所以,即便是现在,好的程序仍是在传达一种逻辑和自然的感觉,特别是把这种感觉传达给它们的用户。
  不过如今还要面对更大的挑战。现在的软件要求有更强的扩展性———可以运行在LAN、Internet或蜂窝电话上。因为代码可以在世界范围内访问,所以安全问题也就更为重要。而这又带来了另外一些问题,如可扩展性问题,以及如何为数以百计的并发用户实现代码同步。随着用户的增多,也带来了更多的文化元素,这种多元文化的并存还意味着需要定制程序,以适应世界范围内不同客户群体各自的语言和文化特性。
  与其他统一开发环境一样,.NET以及为其编写的语言可以解决这些难题。本书适用于使用.NET框架的开发人员、软件架构师和学生。虽然本书中只有一章专门介绍C#语言的语法结构,但书中所有代码均使用C#编写。
  首先,本书不是程序设计的入门读物,在此假设你对计算机语言已经有丰富的经验;其次,虽然书中通过大量的例子强调了封装、多态和继承等原理,但本书也并非面向对象编程(ObjectˉOriented Proˉgramming,OOP)的入门读物;最后,本书也不是介绍使用Visual Studio.NET来开发C#程序的入门图书,尽管书中提到了VS.NET,但我们的重点是开发和理解C#及.NET类,而且不依赖于任何IDE(集成开发环境)。
  本书面向的是那些有经验的程序员,他们目前正转向.NET,并且想对.NET的功能有个全面了解。你可能用过VB6或C++,现在想了解.NET;也可能是一个VB.NET程序员,想扩展知识面,进一步掌握C#;或者(确实有这种可能)你是一个Java程序员,想对从未涉足的.NET一探究竟。下面是本书的主要内容,你可以看看这本书能不能满足你的需要。
  * 18章内容。最好按顺序阅读前4章,其中对C#做了介绍,你会对如何使用.NET类库有所熟悉,其他章则可以根据你的兴趣有选择地阅读。第6章和第7章介绍了如何开发Windows窗体程序;第8章和第9章介绍了.NET图形类DGI+;第10章~第12章讨论了如何处理数据,包括XML和ADO.NET;第13章~第15章分别介绍了一些更高级的主题:线程、远程机制和代码安全;最后是Web三步曲:第16章讨论了开发ASP.NET Web页面;第17章深入分析了如何管理状态信息和HTTP请求;最后第18章介绍了Web服务。
  * .NET2.0。本书是2.0Beta版发布后出版的,所以书中内容以该版本为基础。2.0的有关内容不是单独作为一部分来介绍,而是融入各章之中。不过,为了方便读者,附录A给出了.NET2.0有关内容的总结和单独的索引。
  * 示例代码。本书大多数的示例代码都是很短的片断,只强调某个结构或技术,当然,这也是为了避免无用的代码浪费纸张。只有在确实必要的情况下才会出现超过一页的代码示例。书中所有重要的示例代码都可以从网上下载,下载地址是www.corecsharp.net,或者访问www.phptr.com/tiˉtle/0131472275也可以下载,要进入下载区,请输入关键词parsifal。
  * 练习题与答案。每章最后都有一些练习题,可以检查你对这一章知识的掌握程度。本书最后专门有一部分给出了这些习题的答案。
  * 重事实而不是个人看法。这本书并不是我的个人看法,而是根据.NET和C#固有的特性编写的。另外还提供了核心推荐和注解,也是着力强调知识本身,而不是我的主观见解。
  可能有些人不同意下面的观点,但如果你真的想要学习C#和.NET,请关掉你的IDE,打开最惯用的文本编辑器,学习如何采用命令行方式使用C#编译器。等掌握了基础知识之后,可以再选择使用VS.NET或其他IDE来提高编程效率。
  最后,再简单提一下.NET和Microsoft。本书使用的是Microsoft.NET1.x和Whidbey测试版,包含了Microsoft独有的ADO.NET和ASP.NET等内容,事实上,Microsoft已经对这些技术申请了专利。不过,所有C#和许多.NET基类库都基于同一个标准,以便把它们移植到其他平台。所以,现在和不久的将来,本书介绍的许多技术也将能应用于非Windows平台上的.NET实现(如Mono项目,http://www.monoˉproject.com/MainˉPage)。
   致谢
  为了完成这本书,我做了21个月的研究和开发,在此期间得到了许多人的帮助。首先,我要感谢我的妻子Rebecca,她不知疲倦地逐页阅读潦草的手稿,并利用她的系统编程背景提出了很有价值的建议。其次,我要感谢那些评论人员,正是他们提出的批评和建议,才使本书组织得更好,内容和代码中的错误更少,而且该强调的内容更突出,他们是:Greg Beamer、James Edelen、Doug Holland、Curtiss Howard、Anand Narayanaswamy和Gordon Weakliem。特别要感谢Richard Hundhausen提出的建议,真的非常棒,完全超乎预料;感谢Cay Horstmann阅读了每一章手稿,他对Java的执著使他成为一个地地道道的“疯狂鼓吹者”。还要感谢Alan Tharp博士对于我计划编写一本.NET书所给予的鼓励,他是我最尊敬的计算机专业顾问。
  最后,我非常高兴与Prentice Hall PTR出版社的编辑、员工们一起工作,特别要感谢Stephane Nakib、Joan Murray、Ebony Haight、Jessica D’Amico、Kelli Brooks和Vanessa Moore的辛勤工作。如果没有第一位编辑Stephane Nakib的努力,本书不可能面世,她提出了编写本书的想法,并在最初阶段着力将工作向前推进。Joan Murray编辑在中期介入,一直在仔细监督,并提供建议和鼓励,直到最终完成本书。制作编辑Vanessa Moore和文字编辑Kelli Brooks完成了“最麻烦的工作”,尽管最终手稿中不一致的地方和错误的词句层出不穷,但经他们之手,终于变成了一本可以出版的图书。对他们的感谢无以言表。写这本书时,有时我会感到遥遥无期,甚至这种感觉会超越写作带来的成就感,在那些日子里,有这样一些专业人士在身边一起工作实在是意义非凡。


   除封面署名外,参加本书翻译工作的还有:肖斌、王小振、王树春、刘名臣、赵蓓、潘淼、刘立强、刘跃邦、蔡洪量、王三梅、苏金国、周兴汉、张练达、瑛、范松峰、杨健康、张莹、易竞、程龙、卢 、江健、丁小峰、牛亚峰、刘鑫。

封底文字

C#和 .NET 核心技术
  C# 2.0和.NET 2.0的一本全面的开发指南
  本书是有关C# 2.0 和.NET 2.0的一本实用的参考书,是构建高品质C#应用的一本权威指南。书中提供了丰富的示例,充分展示了C# 2.0 和.NET 2.0的特性。本书面向有经验的程序员,列举了当今常用的最佳实践,以便充分利用C# 2.0语言的特性和Microsoft .NET 2.0基础架构。
  本书重点讲解如何用实用的代码来解决具体的实际问题。本书的内容覆盖面很广,从新的C#范型到Web服务,从反射到安全等都有涉及。系统地介绍了Windows 窗体应用的开发,并讨论了如何有效地使用GDI+图形类。还对如何用XML和ADO.NET完成数据管理提供了详细的说明,另外深入地讨论了一些高级主题,包括线程、远程通信和代码安全等。最后,用很大篇幅介绍了Web开发,包括ASP.NET、状态管理和HTTP请求等等。本书还从实用的角度讨论了可扩展性到本地化等一系列问题。 

  主要内容
  ◆ 提供了构建C#/.NET Windows应用、Web应用和Web服务的最佳实践。
  ◆从专家的角度详细分析安全性、可扩展性和其他重要问题。
  ◆大量专家级、高质量的代码示例。
  ◆深入地介绍包括范型等最新的C# 2.0特性。

图书序言

学习一种新的程序语言,或者某种语言的新版本,这与去国外旅行非常相似:有些东西看起来很面熟,有些东西则显得非常新奇。如果只是注意那些“熟面孔”,你往往只会浮光掠影地大概看一下;但是,谁会满足于只是“走马观花”呢?通常情况下,正是某个国家、某种文化或者某种语言中的特异之处才让人觉得有意思,才能使人受益匪浅。
  当然,要想做到这一点,还需要一个合适的导游或导游手册,这很重要。一好的导游手册会告诉你看什么,什么时候看,吃什么,要避免什么,此外还会提供一些小技巧。好的编程书也是这样,它会告诉你使用什么框架和类,怎么调用方法,如何避免不好的实践做法,并提供一些有助于提高效率的技巧和最佳实践。
  这些正是Steve将为你呈现的。
  如果你用过C#1.0,或者有使用其他语言的背景,往往会忽略2.0的新特性。例如,我本人就是一个很有经验的开发人员,有自己的处理方式。如果你像我一样,那么你就可能仍然在按多年来一直采用的方式编写方法、循环和其他设计模式。虽然你也知道这可能得不到最高效的代码,但这样开发速度快、代码易于阅读和理解,而且这种方式确实可行。
  Steve写的这本书的的确确是一本“核心”C#书。他首先介绍了C#的一些重要概念,并指出这些概念与.NET框架有什么关系。但与市面上大多数C#参考书不同的是,接下来他直接切入C#应用。这些应用涵盖了你要完成的大多数日常任务,如处理文本、文件、数据库、XML、Windows窗体和控件、打印、ASP.NET Web应用、Web服务以及远程机制等。难得的是,Steve还介绍了异步、多线程、安全和部署等主题。这本书如此全面,有了它,你就没有必要再买其他书了。
  还等什么?该打破常规,换个新思路了!
  Richard Hundhausen
  《Introducing MicrosoftVisual Studio2005Team System》作者

作者简介

Stephen C.Perry:Stephen C.Perry: Stephen C. Perry在计算机领域有25年的丰富经验,曾经做过软件开发人员,担任过软件开发主管和顾问。在他的职业生涯中,曾在各种计算机平台上设计和开发过软件,包括IBM大型机和基于UNIX的小型机。在过去8年间,他致力于使用Microsoft技术为法律、医疗和纺织行业的客户提供集成的Web和桌面软件解决方案。

译者简介

肖斌 王小振 等:暂无简介

图书目录

第1章 .NET和C#介绍 1 
1.1 .NET框架概述 1
1.2 通用语言运行时CLR 3 
1.2.1 编译.NET代码 3
1.2.2 通用类型系统 5 
1.2.3 程序集 6
1.3 框架类库 9 
1.4 使用.NET框架和SDK 10
1.4.1 更新.NET框架 11 
1.4.2 .NET框架工具 11
1.4.3 Ildasm.exe 12 
1.4.4 Ildasm和模糊技术14 
1.4.5 wincv.exe 14 
1.4.6 框架配置工具 15 
1.5 了解C#编译器 16 
1.5.1 找到编译器 17 
1.5.2 从命令行编译 17 
1.6 小结 19 
1.7 习题 19
第2章 C#语言基础 20 
2.1 C#程序的布局组成 20
2.2 基本类型 23 
2.2.1 decimal 25
2.2.2 bool 25 
2.2.3 char 25
2.2.4 byte和sbyte 25 
2.2.5 short、int和long 26 
2.2.6 single和double 26 
2.2.7 使用Parse和TryParse转换数字字符串 26
2.3 算术操作符、逻辑操作符和条件 操作符27 
2.3.1 算术操作符 27 
2.3.2 条件和关系操作符 27
2.3.3 流程控制语句 28 
2.3.4 ifˉelse语句 29
2.3.5 switch语句 29 
2.4 循环 30
2.4.1 while循环 30 
2.4.2 do循环 31 
2.4.3 for循环 31 
2.4.4 foreach循环 32 
2.4.5 循环中的跳转控制 32 
2.5 C#预处理指令 33 
2.5.1 条件编译 33
2.5.2 诊断指令 34 
2.5.3 代码域 34
2.6 字符串 35 
2.6.1 字符串直接量 35
2.6.2 字符串操作 35 
2.7 枚举类型 37
2.7.1 使用枚举 38 
2.7.2 System.Enum的方法 39  
2.7.3 枚举和位标志 39 
2.8 数组 39 
2.8.1 声明和创建数组 40 
2.8.2 使用System.Array的方法和成员属性40 
2.9 引用类型和值类型 42
2.9.1 System.Object和System.ValueType 43  
2.9.2 引用类型和值类型的内存分配 43  
2.9.3 装箱 43 
2.9.4 值类型和引用类型差别小结 44 
2.10 小结 45 
2.11 习题 45
第3章 C#类设计 46 
3.1 C#类简介 46
3.2 定义类 47 
3.2.1 属性 47
3.2.2 访问修饰符 48 
3.2.3 Abstract、Sealed和Static修饰符 49  
3.2.4 类标识符 49 
3.2.5 基类、接口和继承 49 
3.3 类成员概述 50 
3.4 常量、字段和成员属性 50 
3.4.1 常量 51
3.4.2 字段 51 
3.4.3 成员属性 53
3.4.4 索引器 54 
3.5 方法 56
3.5.1 方法修饰符 56 
3.5.2 传递参数 59
3.6 构造函数 61 
3.6.1 实例构造函数 61 
3.6.2 私有构造函数 63 
3.6.3 静态构造函数 64 
3.7 委托和事件 65 
3.7.1 委托 65 
3.7.2 基于委托的事件处理 66 
3.8 操作符重载 72 
3.9 接口 74
3.9.1 创建和使用定制接口 74  
3.9.2 使用接口 76
3.10 范型 77 
3.11 结构 78
3.11.1 定义结构 79 
3.11.2 使用结构的方法和成员属性 80 
3.12 结构和类的比较 80 
3.12.1 结构是值类型,类是引用类型 81  
3.12.2 与类不同,结构不能被继承 81
3.12.3 选择结构或类的一般规则 81 
3.13 小结 82
3.14 习题 82
第4章 使用C#对象 84 
4.1 对象创建 84
4.2 异常处理 86 
4.2.1 System.Exception类 87 
4.2.2 编写异常处理代码 87
4.2.3 例:处理通用SystemException异常 89 
4.2.4 如何创建定制异常类 90
4.2.5 未处理异常 92 
4.2.6 异常处理原则 93
4.3 定制类中实现System.Object方法 93  
4.3.1 用ToString()方法描述对象 94  
4.3.2 比较对象的Equals()方法 95  
4.3.3 克隆来创建对象副本 97 
4.4 使用.NET集合类和接口 98  
4.4.1 集合接口 98 
4.4.2 System.Collections命名空间 104  
4.4.3 栈和队列 105 
4.4.4 ArrayList 106
4.4.5 Hashtable 107 
4.4.6 System.Collections.Generic命名空间109 
4.5 对象串行化 111
4.6 对象生命周期管理 113 
4.7 小结 117
4.8 习题 118
第二部分 使用.NET框架类库创建应用
第5章 C#文本处理和文件I/O 119 
5.1 字符和Unicode 119
5.1.1 Unicode 120 
5.1.2 使用字符 120
5.2 String类 123 
5.2.1 创建字符串 123
5.2.2 字符串操作概述 124 
5.3 比较字符串 125 
5.3.1 使用String.Compare 125  
5.3.2 使用String.CompareOrdinal 126 
5.4 搜索、修改和编码字符串内容 127
5.4.1 搜索字符串内容 127 
5.4.2 搜索包含代理的字符串 127
5.4.3 字符串转换 128 
5.4.4 字符串编码 129
5.5 StringBuilder 130 
5.5.1 StringBuilder类概述 131  
5.5.2 StringBuilder与字符串连接的比较 131 
5.6格式化数字和日期值 132 
5.6.1 构造格式元素 132
5.6.2 格式化数字值 133 
5.6.3 格式化日期和时间 134
5.7 正则表达式 137 
5.7.1 Regex类 137
5.7.2 创建正则表达式 140 
5.7.3 模式匹配示例 141 
5.7.4 使用组 143 
5.7.5 示例:使用正则表达式 144 
5.8 System.IO:读写数据流的类 145  
5.8.1 Stream类 145 
5.8.2 FileStream 146
5.8.3 MemoryStream 147 
5.8.4 BufferedStream 147
5.8.5 用StreamReader和StreamWriter读写文本行148 
5.8.6 StringWriter和StringReader 150 
5.8.7 使用CryptoStream类加密 150 
5.9 System.IO:目录和文件 152
5.9.1 FileSystemInfo 152 
5.9.2 使用DirectoryInfo、Directory和Path类处理目录 153  
5.9.3 使用FileInfo和File类处理文件 156
5.10 小结 157 
5.11 习题 157
第6章 建立Windows窗体应用 159 
6.1 Windows窗体编程 160
6.2 Windows.Forms控件类 162 
6.2.1 Control类 162
6.2.2 使用控件 163 
6.2.3 控件事件 166
6.3 Form类 170 
6.3.1 设置窗体外观 170 
6.3.2 设置窗体位置和大小 173  
6.3.3 显示窗体 174 
6.3.4 非模式窗体的生命周期 174 
6.3.5 窗体交互———示例应用 175  
6.3.6 属主和从属窗体 178
6.3.7 消息框和对话框 178 
6.3.8 多文档界面窗体 180
6.4 使用菜单 183
6.4.1 MenuItem属性 183 
6.4.2 上下文菜单 183
6.5 为窗体增加帮助 185 
6.5.1 ToolTips 185
6.5.2 响应F1和帮助按钮 186  
6.5.3 HelpProvider组件 187 
6.6 窗体继承 188 
6.6.1 建立和使用窗体库 188 
6.6.2 使用继承窗体 188 6.7
小结 189 
6.8 习题 189
第7章 Windows窗体控件 190 
7.1 .NET Windows窗体控件概述 190
7.2 Button类、GroupBox、Panel和Label 192 
7.2.1 Button类 192
7.2.2 CheckBox类 193 
7.2.3 RadioButton类 193
7.2.4 GroupBox类 195 
7.2.5 Panel类 195
7.2.6 Label类 196 
7.3 PictureBox和TextBox控件 197  
7.3.1 PictureBox类 197 
7.3.2 TextBox类 199 
7.4 ListBox、CheckedListBox和ComboBox类 200 
7.4.1 ListBox类 200
7.4.2 其他列表控件:ComboBox和CheckedListBox 203 
7.5 ListView和TreeView类 204
7.5.1 ListView类 204 
7.5.2 TreeView类 208
7.6 ProgressBar、Timer和StatusStrip类 212 
7.7 建立定制控件 214
7.7.1 扩展控件 214 
7.7.2 建立定制用户控件 214 
7.7.3 用户控件示例 214 
7.7.4 使用定制用户控件 216 
7.7.5 设计时使用用户控件 217
7.8 拖放控件 217
7.9 使用资源 220
7.9.1 使用资源文件 221
7.9.2 用资源文件创建本地化窗体 223 
7.10 小结 225
7.11 习题 225
第8章 使用GDI+的.NET图形 226 
8.1 GDI+概述 226
8.1.1 Graphics类 227 
8.1.2 Paint事件 229
8.2 使用Graphics对象 231 
8.2.1 基本二维图形 231
8.2.2 Pen 234 
8.2.3 Brush 236
8.2.4 Color 239 
8.2.5 示例:建立颜色浏览器 240 
8.3 图像 243 
8.3.1 加载和存储图像 244 
8.3.2 处理图像 246
8.3.3 示例:使用图像 247 
8.3.4 Microsoft Windows平台GDI和BitBlt的有关提示 252 
8.4 小结 253
8.5 习题 253
第9章 字体、文本和打印 255 
9.1 字体 255
9.1.1 字体族 256 
9.1.2 Font类 256
9.2 绘制文本串 258 
9.2.1 绘制多行文本259 
9.2.2 用StringFormat类格式化字符串 259 
9.2.3 使用制表位 260
9.2.4 字符串截断、对齐和自动换行 261 
9.3 打印 262
9.3.1 概述 262 
9.3.2 PrintDocument类 263 
9.3.3 打印机设置 264 
9.3.4 页面设置 265 
9.3.5 PrintDocument事件 266  
9.3.6 PrintPage事件 267 
9.3.7 预览打印报表 268
9.3.8 报表示例 269 
9.3.9 创建定制PrintDocument类 271 
9.4 小结 273 
9.5 习题 273
第10章 在.NET中使用XML 275 
10.1 使用XML 275
10.1.1 使用XML串行化创建XML数据 276 
10.1.2 XML模式定义(XSD) 278 
10.1.3 使用XML样式表 280 
10.2 XML数据读取技术 281
10.2.1 XmlReader类 282 
10.2.2 XmlNodeReader类 285
10.2.3 XmlReaderSettings类 286  
10.2.4 用XML模式验证XML数据 287  
10.2.5 读取XML数据的其他方法 287 
10.3 XML数据写出技术 288
10.4 用XPath搜索XML 290 
10.4.1 构造XPath查询 290
10.4.2 XmlDocument和XPath 292  
10.4.3 XPathDocument和XPath 292  
10.4.4 XmlDataDocument和XPath 293 
10.5 小结 295
10.6 习题 295
第11章 ADO.NET 296 
11.1 ADO.NET体系结构概述 296
11.1.1 .NET中的OLE DB数据提供者 297 
11.1.2 .NET数据提供者 297 
11.2 数据访问模型:连接模型和无连接模型299 
11.2.1 连接模型 299
11.2.2 无连接模型 300 
11.3 ADO.NET连接模型 301
11.3.1 连接类 301 
11.3.2 命令对象 304
11.3.3 DataReader对象 307 
11.4 数据集、数据表和无连接模型 308  
11.4.1 DataSet类 309 
11.4.2 数据表 309 
11.4.3 向DataSet加载数据 312  
11.4.4 定义DataSet中表之间的关系 316  
11.4.5 连接模型和无连接模型的选择 318 
11.5 XML和ADO.NET 318 
11.5.1 用DataSet创建XML数据和模式文件 318 
11.5.2 从XML创建DataSet模式 320 
11.5.3 将XML数据读入DataSet 320 
11.6 小结 322
11.7 习题 322
第12章 Windows窗体控件的数据绑定 324 
12.1 数据绑定概述 324
12.1.1 简单数据绑定 325 
12.1.2 与列表控件的复杂绑定 326
12.1.3 单向和双向数据绑定 327  
12.1.4 使用绑定管理器 328
12.2 应用中使用简单和复杂数据绑定 330  
12.2.1 绑定到DataTable 330 
12.2.2 控件绑定到ArrayList 332  
12.2.3 向数据源添加元素 334  
12.2.4 验证更新 335 
12.2.5 更新原始数据库 335 
12.3 DataGridView类 336
12.3.1 成员属性 336 
12.3.2 事件 341
12.3.3 建立主表-明细表DataGridView 344  
12.3.4 虚拟模式 346
12.4 小结 349 
12.5 习题 350
第三部分 C#和.NET框架的高级使用
第13章 异步编程和多线程 351 
13.1 什么是线程 351
13.2 异步编程 353 
13.2.1 异步委托 354
13.2.2 实现异步调用的示例 356 
13.3 直接使用线程 362 
13.3.1 创建和使用线程 362 
13.3.2 多线程实际应用 365 
13.3.3 使用线程池 367
13.3.4 定时器 368 
13.4 线程同步 369
13.4.1 Synchronization属性 371  
13.4.2 Monitor类 371 
13.4.3 Mutex 372 
13.4.4 Semaphore 373 
13.4.5 避免死锁 374 
13.4.6 同步技术小结 375 
13.5 小结 375
13.6 习题 376
第14章 利用远程通信创建分布式应用 378 
14.1 应用域 378
14.1.1 应用域的优点 378 
14.1.2 应用域和程序集 379
14.1.3 使用AppDomain类 379 
14.2 远程通信 381
14.2.1 远程通信体系结构 382  
14.2.2 远程通信类型384 
14.2.3 客户端激活对象 386 
14.2.4 服务器激活对象 386 
14.2.5 类型注册 387 
14.2.6 与服务器激活对象SAO的远程通信 389 
14.2.7 与客户端激活对象CAO的远程通信 395 
14.2.8 分布式应用的设计原则 399 
14.3 租约和缔约 400 
14.3.1 租约 400
14.3.2 缔约 402 
14.4 小结 404
14.5 习题 404
第15章 代码优化、安全与部署 406 
15.1 遵循.NET代码设计准则 407
15.2 强命名程序集 409 
15.2.1 创建强命名程序集 410  
15.2.2 延迟签名 411 
15.2.3 全局程序集缓存(GAC) 411  
15.2.4 版本 412 
15.3 安全 412 
15.3.1 权限和权限集 413 
15.3.2 证据 416 
15.3.3 安全策略 418 
15.3.4 配置安全策略 419 
15.3.5 .NET框架配置工具 420 
15.3.6 示例:使用配置工具配置代码访问安全 422 
15.3.7 为程序集请求权限 424 
15.3.8 程序式安全 426 
15.4 部署应用的有关考虑 431
15.4.1 Microsoft Windows部署:XCOPY部署与Windows Installer 431  
15.4.2 程序集部署到GAC中 431 
15.4.3 部署私有程序集 432 
15.4.4 使用CodeBase配置 432
15.4.5 使用配置文件管理程序集的多个版本 433 
15.4.6 程序集版本和产品信息 433 
15.5 小结 434 
15.6 习题 434
第四部分 Internet编程
第16章 ASP.NET Web表单和控件 437 
16.1 Internet的客户端-服务器交互 438  
16.1.1 Web应用示例:实现BMI计算器 438 
16.1.2 使用ASP.NET实现BMI计算器 441 
16.1.3 内联代码模型 442
16.1.4 代码隐藏模型 447 
16.1.5 部分类代码隐藏 449
16.1.6 Page类 450 
16.2 Web表单控件 452
16.2.1 Web控件概述 453 
16.2.2 指定Web控件的外观 454  
16.2.3 简单控件 454 
16.2.4 列表控件 457 
16.2.5 DataList控件 459 
16.3 数据绑定和数据源控件 461  
16.3.1 绑定到DataReader 461  
16.3.2 绑定到DataSet 463
16.3.3 数据源控件 464 
16.4 验证控件 469 
16.5 母版页和内容页 472 
16.5.1 创建母版页 473 
16.5.2 创建内容页 474 
16.5.3 从内容页访问母版页 475 
16.6 建立和使用定制Web控件 475  
16.6.1 定制控件示例 476 
16.6.2 使用定制控件 477 
16.6.3 控件状态管理 478 
16.6.4 复合控件 479
16.7 选择Web控件显示数据 481 
16.8 小结 481
16.9 习题 481
第17章 ASP.NET应用环境 483 
17.1 HTTP请求和响应类 483
17.1.1 HttpRequest对象 484 
17.1.2 HttpResponse对象 486 
17.2 ASP.NET和配置文件 489 
17.2.1 Web.config剖析 490 
17.2.2 增加定制配置段 493 
17.3 ASP.NET应用安全 495 
17.3.1 表单认证 495 
17.3.2 表单认证示例 497 
17.4 状态维护 500 
17.4.1 应用状态 501 
17.4.2 会话状态 502
17.5 缓存 504 
17.5.1 页面输出缓存 504
17.5.2 数据缓存 506 
17.6 用WebRequest和WebResponse创建Web客户508 
17.6.1 WebRequest和WebResponse类 508
17.6.2 Web客户示例 509 
17.7 HTTP管线 510
17.7.1 管线中处理请求 510 
17.7.2 HttpApplication类 512 
17.7.3 HTTP模块 514 
17.7.4 HTTP处理器 517
17.8 小结 520 
17.9 习题 520
第18章 XML Web服务 521 
18.1 Web服务简介 521 
18.1.1 发现和使用Web服务 522  
18.1.2 UDDI简介 522 
18.2 构建XML Web服务 524 
18.2.1 手动创建Web服务 525  
18.2.2 用VS.NET创建Web服务 527  
18.2.3 用WebService和WebMethod属性扩展Web服务 528 
18.3 构建XML Web服务客户 530  
18.3.1 创建简单的客户来访问Web服务类 530 
18.3.2 用Visual Studio.NET创建代理 536 
18.4 理解WSDL和SOAP 537 
18.4.1 WSDL 537 
18.4.2 SOAP 539
18.5 在Web服务中使用复杂数据类型 544  
18.5.1 返回图像的Web服务 544
18.5.2 使用Amazon Web服务 545  
18.5.3 为Amazon Web服务创建代理 547  
18.5.4 构建WinForms Web服务客户 548 
18.6 Web服务性能 550
18.6.1 配置HTTP连接 550 
18.6.2 处理大量数据 551 
18.7 小结 551 
18.8 习题 551
附 录
附录A .NET2.0和C#2.0的特有特性 553
附录B DataGridView事件和委托 555
习题答案 563

教学资源推荐
作者: (英)Lawrence C. Paulson
作者: 凌云 谢满德 陈志贤 吴海燕 编著
作者: H.H.Tan,T.B.D'Orazio,S.H.Or,Marian M.Y.Choy著
参考读物推荐
作者: (美)Jennifer Campbell; Paul Gries; Jason Montojo; Greg Wilson 著
作者: Ceph中国社区 著