书籍详情
Microsoft .NET框架程序设计

作者:(美)Jeffrey Richter著;李建忠译;李建忠译
出版社:清华大学出版社
出版时间:2003-11-01
ISBN:9787302075097
定价:¥68.00
购买这本书可以去
内容简介
样章免费试读:第5章第6章第17章第19章查看本书专题页面●一本任何一个想了解.NET、学习.NET的读者都不可不读的开山之作●全面剖析.NET框架机理,深度阐述.NET平台思想●在亚马逊网站雄踞编程类图书销量排行榜榜首达14个月之久●作者JeffreyRichter,.NET著作领域中当之无愧的一面旗帜这是一本任何一个想了解.NET、学习.NET的读者都不可不读的开山之作。它全面剖析了.NET框架机理,深度阐述了.NET平台思想。它在亚马逊网站雄踞编程类图书销量排行榜榜首达14个月之久。让我们听听下面的声音:"Jeffrey在.NET框架上所做的大量的工作,在这部内容详实的优秀著作中得到了充分的体现。":EricRudder微软公司,开发者与平台推广部,高级副总裁"Jeffrey和通用语言运行时项目组的日夜协作使得这本书成为解释CLR内部机理方面最好的教本。":DennisAngeline,微软公司,通用语言运行时组,程序经理主管本书是《微软.NET程序员系列》丛书之一,主要介绍如何开发面向Microsoft.NET框架的各种应用程序。Microsoft.NET框架是微软公司推出的新平台,包含通用语言运行时(CLR)和.NET框架类库(FCL)。本书将深入解释CLR的工作机制及其提供的各种构造,同时还将讨论FCL中一些重要的类型。全书共分为五个部分,包括:.NET框架基本原理、类型和通用语言运行时、类型设计、基本类型,以及类型管理。本书适用于要了解、掌握.NET平台的读者,尤其适合广大编程爱好者、软件工程师、系统架构师阅读。欢迎访问译者李建忠的个人网站:http://www.lijianzhong.com
作者简介
JeffreyRichterJeffreyRichter是一位在全球享有盛誉的技术作家,尤其在Windows/.NET领域有着杰出的贡献。他的第一本Windows著作Windows3:ADeveloper'sGuide大获好评,从而声名远扬。之后,他又推出了经典著作《Windows高级编程指南》和《Windows核心编程》。如今这两本书早已成为Windows程序设计领域的颠峰之作,培育了几代软件开发设计人员。他的每一本新作问世,我们都有理由相信这是一本巨著,我们想要的一切尽在其中。Jeffery是Wintellect公司的创始人之一,也是MSDN杂志.NET专栏的特邀编辑。现在他正领导开发该公司的.NET程序设计课程,向大众推广.NET技术。因为他自1999年开始就参与了微软.NET框架开发组的咨询工作,与这些一线人员一起经历了.NET的孕育与诞生,所以他对.NET思想的领悟、对.NET的细节熟稔,是其他任何作家难以企及的。他是.NET著作领域中当之无愧的一面旗帜。>>更多作品李建忠李建忠,河南省三门峡人,毕业于南京邮电学院。敏于行讷于言,喜钻研好探索,对软件技术有着持久的热情和追求,对IT业界有着深刻的体认与抱负。现在一软件企业担任TechLead,专司企业应用软件研发,业余喜欢以文铭志。主要著译作品有《C#锐利体验》,《Microsoft.NET框架程序设计(修订版)》,《Microsoft.NET框架程序设计(VisualBasic.NET描述)》等。JeffreyRichter名著《AppliedMicrosoft.NETFrameworkprogramming》中文译本《Microsoft.NET框架程序设计(修订版)》的译者。>>更多作品
目录
前言 Ⅺ
第Ⅰ部分 Microsoft .NET框架基本原理
第1章 Microsoft .NET框架开发平台体系架构 3
1.1 将源代码编译为托管模块 3
1.2 将托管模块组合为程序集 7
1.3 加载通用语言运行时 9
1.4 执行程序集代码 11
1.4.1 IL与代码验证 19
1.5 .NET框架类库 21
1.6 通用类型系统 24
1.7 通用语言规范 27
1.8 与非托管代码互操作 31
第2章 生成. 打包. 部署及管理应用程序与类型 35
2.1 .NET框架部署目标 36
2.2 将类型生成为模块 37
2.3 将模块组合为程序集 45
2.3.1 使用Visual Studio .NETIDE为项目添加程序集引用 52
2.3.2 使用程序集链接器 53
2.3.3 在程序集中包含资源文件 55
2.4 程序集版本资源信息 56
2.4.1 版本号 59
2.5 语言文化 61
2.6 简单应用程序部署(私有部署程序集) 63
2.7 简单管理控制(配置) 64
第3章 共享程序集 71
3.1 两种程序集. 两种部署方式 72
3.2 强命名程序集 73
3.3 全局程序集缓存 79
3.3.1 GAC的内部结构 85
3.4 引用强命名程序集 87
3.5 强命名程序集的防篡改特性 89
3.6 延迟签名 90
3.7 强命名程序集的私有部署 95
3.8 并存执行 96
3.9 CLR如何解析类型引用 98
3.10 高级管理控制(配置) 101
3.10.1 发布者策略控制 106
3.11 修复错误的应用程序 109
第Ⅱ部分 类型与通用语言运行时
第4章 类型基础 115
4.1 所有类型的基类型:System.Object 115
4.2 类型转换 117
4.2.1 使用is和as操作符转型 119
4.3 命名空间与程序集 121
第5章 基元类型. 引用类型与值类型 127
5.1 基元类型 127
5.1.1 Checked与Unchecked基元类型操作 131
5.2 引用类型与值类型 134
5.3 值类型的装箱与拆箱 141
第6章 通用对象操作 153
6.1 对象的等值性与惟一性 153
6.1.1 为基类没有重写Object. Equals方法的引用类型实现Equals 154
6.1.2 为基类重写了Object.Equals方法的引用类型实现Equals 156
6.1.3 为值类型实现Equals方法 157
6.1.4 Equals方法与 = =/! =操作符的实现总结 160
6.1.5 对象惟一性识别 161
6.2 对象的散列码 162
6.3 对象克隆 164
第Ⅲ部 分类型设计
第7章 类型成员及其访问限定 169
7.1 类型成员 169
7.2 访问限定修饰符和预定义特性 173
7.2.1 类型预定义特性 174
7.2.2 字段预定义特性 175
7.2.3 方法预定义特性 175
第8章 常数与字段 177
8.1 常数 177
8.2 字段 178
第9章 方法 181
9.1 实例构造器 181
9.2 类型构造器 187
9.3 操作符重载方法 190
9.3.1 操作符与语言互操作性 193
9.4 转换操作符方法 197
9.5 引用参数 200
9.6 可变数目参数 206
9.7 虚方法的调用机理 209
9.8 虚方法的版本问题 210
第10章 属性 215
10.1 无参属性 215
10.2 含参属性 220
第11章 事件 227
11.1 发布事件 228
11.2 侦听事件 234
11.3 显式控制事件注册 236
11.4 在一个类型中定义多个事件 238
11.5 设计EventHandlerSet类型 243
第Ⅳ部分 基本类型
第12章 文本处理 249
12.1 字符 249
12.2 System.String类型 253
12.2.1 创建字符串 253
12.2.2 字符串的恒定性 255
12.2.3 字符串比较 256
12.2.4 字符串驻留 262
12.2.5 字符串池技术 266
12.2.6 查看字符串中的字符 266
12.2.7 其他字符串操作 270
12.3 高效地动态创建字符串 270
12.3.1 构造StringBuilder对象 271
12.3.2 StringBuilder的成员 272
12.4 获取对象的字符串表达形式 275
12.4.1 特定格式与语言文化 276
12.4.2 将多个对象格式化为一个字符串 280
12.4.3 提供自定义格式化器 282
12.5 通过解析字符串获取对象 285
12.6 编码:字符与字节之间的转换 289
12.6.1 字符与字节的编码/解码流 296
12.6.2 Base-64字符串编码与解码 298
第13章 枚举类型与位标记 299
13.1 枚举类型 299
13.2 位标记 305
第14章 数组 309
14.1 所有数组的基类:System.Array 312
14.2 数组的转型 315
14.3 数组的传递与返回 316
14.4 创建下限非0的数组 318
14.5 快速数组访问 319
14.6 重新调整数组长度 323
第15章 接口 325
15.1 接口与继承 325
15.2 设计支持插件组件的应用程序 331
15.3 使用接口改变已装箱值类型中的字段 333
15.4 实现多个有相同方法的接口 336
15.5 显式接口成员实现 338
第16章 定制特性 345
16.1 使用定制特性 345
16.2 定义自己的特性 349
16.3 特性构造器与字段/属性的数据类型 353
16.4 检测定制特性 354
16.5 特性实例间的匹配 359
16.6 伪定制特性 362
第17章 委托 365
17.1 认识委托 365
17.2 使用委托回调静态方法 368
17.3 使用委托回调实例方法 370
17.4 委托揭秘 371
17.5 委托史话:System.Delegate与System.MulticastDelegate 375
17.6 委托判等 376
17.7 委托链 377
17.8 C#对委托链的支持 383
17.9 对委托链调用施以更多的控制 384
17.10 委托与反射 386
第Ⅴ部分 类型管理
第18章 异常 393
18.1 异常处理的演化 394
18.2 异常处理机制 396
18.2.1 try块 397
18.2.2 catch块 398
18.2.3 finally块 400
18.3 异常的本质 401
18.4 System.Exception类 406
18.5 FCL定义的异常类 408
18.6 定义自己的异常类 411
18.7 如何正确使用异常 416
18.7.1 避免过多的finally块 416
18.7.2 避免捕获所有异常 418
18.7.3 从异常中顺利地恢复 419
18.7.4 当异常无法修复时, 回滚部分完成的操作 420
18.7.5 隐藏实现细节 421
18.8 FCL中存在的一些问题 424
18.9 性能考虑 426
18.10 捕获筛选器 429
18.11 未处理异常 432
18.11.1 发生未处理异常时的CLR行为控制 437
18.11.2 未处理异常与Windows窗体 439
18.11.3 未处理异常与ASP.NET Web窗体 440
18.11.4 未处理异常与ASP .NET XML Web服务 441
18.12 异常堆栈踪迹 441
18.12.1 远程堆栈踪迹 444
18.13 异常调试 445
18.13.1 告诉Visual Studio调试何种代码 448
第19章 自动内存管理(垃圾收集) 451
19.1 垃圾收集平台基本原理解析 451
19.2 垃圾收集算法 455
19.3 终止化操作 459
19.3.1 调用Finalize方法的条件 467
19.3.2 终止化操作的内部机理 468
19.4 Dispose模式:强制对象清理资源 471
19.4.1 使用实现了Dispose模式的类型 477
19.4.2 C#的using语句 482
19.4.3 一个有趣的依赖问题 484
19.5 弱引用 485
19.5.1 弱引用的内部机理 487
19.6 对象复苏 489
19.6.1 利用复苏设计一个对象池 491
19.7 对象的代龄 493
19.8 编程控制垃圾收集器 499
19.9 其他一些与垃圾收集器性能相关的问题 501
19.9.1 省却同步控制的多线程分配 503
19.9.2 可扩展并行收集 503
19.9.3 并发收集 504
19.9.4 大尺寸对象 505
19.10 监视垃圾收集 506
第20章 CLR寄宿. 应用程序域. 反射 507
20.1 元数据:.NET框架的基石 507
20.2 CLR寄宿 508
20.3 应用程序域 510
20.3.1 跨越应用程序域边界访问对象 513
20.3.2 应用程序域事件 515
20.3.3 应用程序及其如何寄宿CLR和管理应用程序域 516
20.3.4 Yukon 517
20.4 反射概要 518
20.5 反射一个程序集中的类型 520
20.6 反射一个应用程序域中的程序集 523
20.7 反射一个类型的成员:绑定 523
20.8 显式加载程序集 525
20.8.1 将程序集象"数据文件"一样加载 527
20.8.2 建立一个异常类型的层次结构 529
20.9 显式卸载程序集:卸载应用程序域 532
20.10 获取一个System.Type对象的引用 534
20.11 反射一个类型的成员 538
20.11.1 创建一个类型的实例 541
20.11.2 调用一个类型的方法 543
20.11.3 一次绑定. 多次调用 548
20.12 反射一个类型的接口 553
20.13 反射的性能 555
索引 557
术语表 592
第Ⅰ部分 Microsoft .NET框架基本原理
第1章 Microsoft .NET框架开发平台体系架构 3
1.1 将源代码编译为托管模块 3
1.2 将托管模块组合为程序集 7
1.3 加载通用语言运行时 9
1.4 执行程序集代码 11
1.4.1 IL与代码验证 19
1.5 .NET框架类库 21
1.6 通用类型系统 24
1.7 通用语言规范 27
1.8 与非托管代码互操作 31
第2章 生成. 打包. 部署及管理应用程序与类型 35
2.1 .NET框架部署目标 36
2.2 将类型生成为模块 37
2.3 将模块组合为程序集 45
2.3.1 使用Visual Studio .NETIDE为项目添加程序集引用 52
2.3.2 使用程序集链接器 53
2.3.3 在程序集中包含资源文件 55
2.4 程序集版本资源信息 56
2.4.1 版本号 59
2.5 语言文化 61
2.6 简单应用程序部署(私有部署程序集) 63
2.7 简单管理控制(配置) 64
第3章 共享程序集 71
3.1 两种程序集. 两种部署方式 72
3.2 强命名程序集 73
3.3 全局程序集缓存 79
3.3.1 GAC的内部结构 85
3.4 引用强命名程序集 87
3.5 强命名程序集的防篡改特性 89
3.6 延迟签名 90
3.7 强命名程序集的私有部署 95
3.8 并存执行 96
3.9 CLR如何解析类型引用 98
3.10 高级管理控制(配置) 101
3.10.1 发布者策略控制 106
3.11 修复错误的应用程序 109
第Ⅱ部分 类型与通用语言运行时
第4章 类型基础 115
4.1 所有类型的基类型:System.Object 115
4.2 类型转换 117
4.2.1 使用is和as操作符转型 119
4.3 命名空间与程序集 121
第5章 基元类型. 引用类型与值类型 127
5.1 基元类型 127
5.1.1 Checked与Unchecked基元类型操作 131
5.2 引用类型与值类型 134
5.3 值类型的装箱与拆箱 141
第6章 通用对象操作 153
6.1 对象的等值性与惟一性 153
6.1.1 为基类没有重写Object. Equals方法的引用类型实现Equals 154
6.1.2 为基类重写了Object.Equals方法的引用类型实现Equals 156
6.1.3 为值类型实现Equals方法 157
6.1.4 Equals方法与 = =/! =操作符的实现总结 160
6.1.5 对象惟一性识别 161
6.2 对象的散列码 162
6.3 对象克隆 164
第Ⅲ部 分类型设计
第7章 类型成员及其访问限定 169
7.1 类型成员 169
7.2 访问限定修饰符和预定义特性 173
7.2.1 类型预定义特性 174
7.2.2 字段预定义特性 175
7.2.3 方法预定义特性 175
第8章 常数与字段 177
8.1 常数 177
8.2 字段 178
第9章 方法 181
9.1 实例构造器 181
9.2 类型构造器 187
9.3 操作符重载方法 190
9.3.1 操作符与语言互操作性 193
9.4 转换操作符方法 197
9.5 引用参数 200
9.6 可变数目参数 206
9.7 虚方法的调用机理 209
9.8 虚方法的版本问题 210
第10章 属性 215
10.1 无参属性 215
10.2 含参属性 220
第11章 事件 227
11.1 发布事件 228
11.2 侦听事件 234
11.3 显式控制事件注册 236
11.4 在一个类型中定义多个事件 238
11.5 设计EventHandlerSet类型 243
第Ⅳ部分 基本类型
第12章 文本处理 249
12.1 字符 249
12.2 System.String类型 253
12.2.1 创建字符串 253
12.2.2 字符串的恒定性 255
12.2.3 字符串比较 256
12.2.4 字符串驻留 262
12.2.5 字符串池技术 266
12.2.6 查看字符串中的字符 266
12.2.7 其他字符串操作 270
12.3 高效地动态创建字符串 270
12.3.1 构造StringBuilder对象 271
12.3.2 StringBuilder的成员 272
12.4 获取对象的字符串表达形式 275
12.4.1 特定格式与语言文化 276
12.4.2 将多个对象格式化为一个字符串 280
12.4.3 提供自定义格式化器 282
12.5 通过解析字符串获取对象 285
12.6 编码:字符与字节之间的转换 289
12.6.1 字符与字节的编码/解码流 296
12.6.2 Base-64字符串编码与解码 298
第13章 枚举类型与位标记 299
13.1 枚举类型 299
13.2 位标记 305
第14章 数组 309
14.1 所有数组的基类:System.Array 312
14.2 数组的转型 315
14.3 数组的传递与返回 316
14.4 创建下限非0的数组 318
14.5 快速数组访问 319
14.6 重新调整数组长度 323
第15章 接口 325
15.1 接口与继承 325
15.2 设计支持插件组件的应用程序 331
15.3 使用接口改变已装箱值类型中的字段 333
15.4 实现多个有相同方法的接口 336
15.5 显式接口成员实现 338
第16章 定制特性 345
16.1 使用定制特性 345
16.2 定义自己的特性 349
16.3 特性构造器与字段/属性的数据类型 353
16.4 检测定制特性 354
16.5 特性实例间的匹配 359
16.6 伪定制特性 362
第17章 委托 365
17.1 认识委托 365
17.2 使用委托回调静态方法 368
17.3 使用委托回调实例方法 370
17.4 委托揭秘 371
17.5 委托史话:System.Delegate与System.MulticastDelegate 375
17.6 委托判等 376
17.7 委托链 377
17.8 C#对委托链的支持 383
17.9 对委托链调用施以更多的控制 384
17.10 委托与反射 386
第Ⅴ部分 类型管理
第18章 异常 393
18.1 异常处理的演化 394
18.2 异常处理机制 396
18.2.1 try块 397
18.2.2 catch块 398
18.2.3 finally块 400
18.3 异常的本质 401
18.4 System.Exception类 406
18.5 FCL定义的异常类 408
18.6 定义自己的异常类 411
18.7 如何正确使用异常 416
18.7.1 避免过多的finally块 416
18.7.2 避免捕获所有异常 418
18.7.3 从异常中顺利地恢复 419
18.7.4 当异常无法修复时, 回滚部分完成的操作 420
18.7.5 隐藏实现细节 421
18.8 FCL中存在的一些问题 424
18.9 性能考虑 426
18.10 捕获筛选器 429
18.11 未处理异常 432
18.11.1 发生未处理异常时的CLR行为控制 437
18.11.2 未处理异常与Windows窗体 439
18.11.3 未处理异常与ASP.NET Web窗体 440
18.11.4 未处理异常与ASP .NET XML Web服务 441
18.12 异常堆栈踪迹 441
18.12.1 远程堆栈踪迹 444
18.13 异常调试 445
18.13.1 告诉Visual Studio调试何种代码 448
第19章 自动内存管理(垃圾收集) 451
19.1 垃圾收集平台基本原理解析 451
19.2 垃圾收集算法 455
19.3 终止化操作 459
19.3.1 调用Finalize方法的条件 467
19.3.2 终止化操作的内部机理 468
19.4 Dispose模式:强制对象清理资源 471
19.4.1 使用实现了Dispose模式的类型 477
19.4.2 C#的using语句 482
19.4.3 一个有趣的依赖问题 484
19.5 弱引用 485
19.5.1 弱引用的内部机理 487
19.6 对象复苏 489
19.6.1 利用复苏设计一个对象池 491
19.7 对象的代龄 493
19.8 编程控制垃圾收集器 499
19.9 其他一些与垃圾收集器性能相关的问题 501
19.9.1 省却同步控制的多线程分配 503
19.9.2 可扩展并行收集 503
19.9.3 并发收集 504
19.9.4 大尺寸对象 505
19.10 监视垃圾收集 506
第20章 CLR寄宿. 应用程序域. 反射 507
20.1 元数据:.NET框架的基石 507
20.2 CLR寄宿 508
20.3 应用程序域 510
20.3.1 跨越应用程序域边界访问对象 513
20.3.2 应用程序域事件 515
20.3.3 应用程序及其如何寄宿CLR和管理应用程序域 516
20.3.4 Yukon 517
20.4 反射概要 518
20.5 反射一个程序集中的类型 520
20.6 反射一个应用程序域中的程序集 523
20.7 反射一个类型的成员:绑定 523
20.8 显式加载程序集 525
20.8.1 将程序集象"数据文件"一样加载 527
20.8.2 建立一个异常类型的层次结构 529
20.9 显式卸载程序集:卸载应用程序域 532
20.10 获取一个System.Type对象的引用 534
20.11 反射一个类型的成员 538
20.11.1 创建一个类型的实例 541
20.11.2 调用一个类型的方法 543
20.11.3 一次绑定. 多次调用 548
20.12 反射一个类型的接口 553
20.13 反射的性能 555
索引 557
术语表 592
猜您喜欢



