网上购物 货比三家
您现在的位置:快乐比价网 > 图书 > 计算机与网络 > 软件工程 > 商品详情

框架设计(第2版):CLR Via C#

分享到:
框架设计(第2版):CLR Via C#

最 低 价:¥53.70

定 价:¥68.00

作 者:(美)Jeffrey Richter

出 版 社:清华大学出版社

出版时间:2006 年11月

I S B N:7302140162

价格
53.70元
价格
54.40元

商品详情

编辑推荐

被china-pub会员评为“2007年我最喜爱的十大技术图书”之一
  知名技术作家类Jeff Richter 为您提供专业指导,让您迅速掌握CLR和.NET Framework 2.0
  现提供本书英文原版部分章节,欢迎大家踊跃参与评论翻译质量,留下您的宝贵书评

内容简介

作为深受编程人员爱戴和尊敬的编程专家,微软.net开发团队的顾问,本书作者jeffrey richter针对开发各种应用程序(如web form、windows form和web服务、microsoft sql server解决方案、控制台应用程序、nt service)的开发人员,深入揭示了公共语言运行库(clr)和.net framework.,演示了如何将这些知识应用到实际开发。全书分5部分,共24章。第1部分讲述clr基础,第11部分介绍类型的使用,第iii部分说明类型的设计,第ⅳ部分介绍基本类型,第v部分讲述clr实用特性。.
  通过本书的阅读,读者可以掌握clr精髓,轻松、高效地创建高性能应用程序。
  在经典畅销书《microsoft .net框架程序设计》的最新版中,深入剖析了.net framework和clr 2.0的内部机制。jeffrey是深受爱戴的编程专家,同时也是microsoft .net开发团队的顾问。本书是他多年开发和咨询经验的结晶,是开发人员开发任何一类应用程序(包括asp.net、windows窗体、microsoft sql server,web服务和控制台应用程序)的理想参考。
  通过本书提供的动手指导和丰富的c#范例代码,开发人员可掌握难解的主题,开发出高性能的应用程序。
  本书特色主题:..
  · 构建、部署、管理应用程序、组件和共享程序集并对其进行版本控制
  · 用常量、字段、构造函数、方法、属性和事件来设计类型
  · 高效使用clr的特殊类型,如枚举器、数组和字符串等
  · 声明、创建和使用委托来揭示回调函数
  · 用接口和泛型来定义和部署可重用的算法
  · 定义、使用和检测自定义属性
  · 使用异常处理来构建健壮、稳定、安全性更强的组件
  · 用垃圾收集机制自动管理内存,并使用本地资源
  · 应用clr宿主、应用程序域、程序集加载和反射,构建动态可扩展的应用程序。...

作者简介

Jeffrey Richter是全球享有盛誉的技术作家,Wintellect公司的创办人之一。该公司专门从事培训、调试和咨询,帮助客户构建更好、更快的软件。他在Windows/.NET领域有着杰出的贡献。他的经典著作《Windows 高级编程指南》和《Windows核心编程》是Windows程序设计领域的颠峰之作,培育了几代软件开发设计人员。Jeffrey从1999年10月以来,一直为Microsoft .NET Framework 团队担任顾问,与他们一起经历着.NET的孕育、诞生和发展,他对.NET思想的领悟、对.NET细节的了解程度,是其他任何作家无法望其项背的。此.. << 查看详细

目录

目 录


第ⅰ部分 clr基础


第1章 clr的执行模型3
1.1 将源代码编译成托管模块3
1.2 将托管模块合并成程序集6
1.3 加载公共语言运行库7
1.4 执行程序集的代码9
1.4.1 il和验证14
1.4.2 不安全的代码15
1.5 本地代码生成器:ngen.exe16
1.6 framework类库入门18
1.7 通用类型系统20
1.8 公共语言规范(cls)22
1.9 与非托管代码的互操作性26
第2章 生成、打包、部署和管理
应用程序及类型28
.2.1 .net framework部署目标28
2.2 将类型集成到模块中29
2.3 元数据概述32
2.4 合并模块以构成一个程序集38
2.4.1 使用visual studio ide在项目
中添加程序集43

2.4.2 使用程序集链接器44
2.4.3 在程序集中包含
资源文件45
2.5 程序集版本资源信息46
2.6 语言文化49
2.7 简单应用程序部署
(私有部署的程序集)50
2.8 简单管理控制(配置)51
第3章 共享程序集和
强命名程序集54
3.1 两种程序集,两种部署55
3.2 为程序集指派强名称56
3.3 全局程序集缓存61
3.4 在生成的程序集中引用
一个强命名程序集66
3.5 强命名程序集能防范篡改67
3.6 延迟签名68
3.7 私有部署强命名程序集70
3.8 运行库如何解析类型引用71
3.9 高级管理控制(配置)73


第ⅱ部分 类型的使用


第4章 类型基础81
4.1 所有类型都是从
system.object派生的81
4.2 强制类型转换83
4.3 命名空间和程序集86
4.4 运行时的相互关系90
第5章 基元、引用和值类型98
5.1 编程语言的基元类型98
5.2 引用类型和值类型103
5.3 值类型的装箱和拆箱108
5.4 使用接口更改已装箱值类型中的字段
(以及为什么不应该这样做)118
5.5 对象相等性和身份标识120

5.6 对象哈希码123


第ⅲ部分 类型的设计


第6章 类型和成员基础127
6.1 类型成员的种类127
6.2 类型的可见性130
6.3 成员的可访问性131
6.4 静态类133
6.5 部分类、结构和接口134
6.6 组件、多态和版本控制135
6.6.1 clr如何调用虚方法、
属性和事件137
6.6.2 巧妙使用类型的可见性和
成员的可访问性140
6.6.3 类型版本控制过程中虚
方法的处理143
第7章 常量和字段147
7.1 常量147
7.2 字段148
第8章 方法:构造器、操作符、
转换操作符 和参数151
8.1 实例构造器和类(引用类型)151
8.2 实例构造器和结构(值类型)154
8.3 类型构造器156
8.4 操作符重载161
8.5 转换操作符方法164
8.6 通过引用向方法传递参数167
8.7 向方法传递可变数量的参数172
8.8 声明方法的参数类型174

8.9 常量方法和参数175
第9章 属性176
9.1 无参属性176
9.2 有参属性180
9.3 调用属性访问器方法的性能184
9.4 属性访问器的可访问性185
9.5 泛型属性访问器方法185
第10章 事件186
10.1 设计一个对外提供事件的类型187
10.1.1 第一步:定义一个类型
用于存放所有需要发送
给事件通知接收者的
附加信息187
10.1.2 第二步:定义事件成员188
10.1.3 第三步:定义一个负责
引发事件的方法来通知已
订阅事件的对象事件
已经发生189
10.1.4 第四步:定义一个方法,
将输入转化为期望事件190
10.2 如何实现事件190
10.3 设计一个监听事件的类型192
10.4 事件与线程安全193
10.5 显式控制事件的订阅与注销194
10.6 设计一个定义多个事件的类型196


第ⅳ部分 基本类型


第11章 字符、字符串和文本201
11.1 字符201
11.2 system.string类型204
11.2.1 构造字符串204
11.2.2 字符串是不可变的206
11.2.3 比较字符串206
11.2.4 字符串留用212
11.2.5 字符串池214
11.2.6 检查字符串的字符
和文本元素214
11.2.7 其他字符串操作216
11.3 高效率地动态构造一个字符串217
11.3.1 构造一个
stringbuilder对象217
11.3.2 stringbuilder的成员218
11.4 获取对象的字符串表示220
11.4.1 特定的格式和语言220
11.4.2 将多个对象格式化
成单个字符串224
11.4.3 提供定制格式化器225
11.5 解析字符串来获取一个对象227
11.6 编码:在字符和字节之间转换229
11.6.1 字符和字节流的
编码/解码234
11.6.2 base-64字符串编码
和解码235
11.7 安全字符串236
第12章 枚举类型和位标志239
12.1 枚举类型239
12.2 位标志244
第13章 数组247
13.1 数组的类型转换249
13.2 所有数组都隐式继承自
system.array251
13.3 所有数组都隐式实现ienumerable,
icollection和ilist252
13.4 数组的传递与返回253
13.5 创建下界非0的数组253
13.6 数组访问性能254
13.7 非安全数组访问和
固定长度数组258
第14章 接口261
14.1 类和接口的继承261
14.2 定义接口262
14.3 接口的继承263
14.4 调用接口方法详解265
14.5 接口方法的隐式和显式实现
(幕后细节)266
14.6 泛型接口267
14.7 泛型接口和接口约束269
14.8 实现具有相同方法名和签名的
多个接口270
14.9 用显式接口方法实现改进编译时
类型安全271
14.10 谨慎使用显式接口方法实现272
14.11 设计:基类还是接口275
第15章 委托277
15.1 初识委托277
15.2 使用委托来回调静态方法279
15.3 使用委托回调实例方法280
15.4 委托揭秘281
15.5 使用委托回调多个方法(链式)285
15.6 c#对委托链的支持288
15.7 对委托链调用进行更多控制289
15.8 c#为委托提供的语法便利291
15.8.1 语法快捷方式1:
不需要构造委托对象291
15.8.2 语法快捷方式2:
不需要定义回调方法292
15.8.3 语法快捷方式3:
不需要指定回调方法
的参数293
15.8.4 语法快捷方式4:
不需要将局部变量人工封装
到类中,即可将它们
传给一个回调方法294
15.9 委托和反射296
第16章 泛型300
16.1 fcl中的泛型304
16.2 wintellect的power collections库305
16.3 泛型基础结构306
16.3.1 开放和封闭式类型307
16.3.2 泛型类型和继承308
16.3.3 泛型类型同一性310
16.3.4 代码爆炸311
16.4 泛型接口311
16.5 泛型委托312
16.6 泛型方法313
16.7 泛型和其他成员315
16.8 可验证性和限制315
16.8.1 主要约束317
16.8.2 次要约束318
16.8.3 构造器约束319
16.8.4 其他可验证性问题320
第17章 自定义属性323
17.1 使用自定义属性324
17.2 定义自己的属性327
17.3 属性构造器和field/property
数据类型330
17.4 检测自定义属性的使用331

17.5 两个属性实例的相互匹配334
17.6 检测自定义属性的使用,同时
不创建attribute派生对象337
17.7 条件属性类339
第18章 可空值类型341
18.1 c#对可空值类型的支持342
18.2 c#的空接合操作符344
18.3 clr对可空值类型的特殊支持344
18.3.1 对可空值类型进行装箱344
18.3.2 对可空值类型进行拆箱345
18.3.3 通过可空值类型来
调用gettype346
18.3.4 通过可空值类型
调用接口方法346


第ⅴ部分 clr实用特性


第19章 异常349
19.1 异常处理的演变350
19.2 异常处理机制351
19.2.1 try块352
19.2.2 catch块352
19.2.3 finally块354
19.3 符合公共语言规范(cls)的异常与
不符合cls的异常354
19.4 异常的准确定义356
19.5 system.exception类358
19.6 fcl中预定义的异常类359
19.7 抛出异常361
19.8 定义自己的异常类361
19.9 如何正确地使用异常364
19.9.1 验证方法的参数364
19.9.2 合理使用finally块367
19.9.3 避免捕获所有的异常368
19.9.4 从异常中顺利恢复369
19.9.5 当异常无法修复时,
回滚局部完成的操作369
19.9.6 隐藏实现细节,
维持“约定”370
19.10 性能考虑372
19.11 未处理异常374
19.12 异常堆栈跟踪376
19.13 调试异常378
第20章 自动内存管理(垃圾收集)380
20.1 理解垃圾收集平台的
基本工作原理380
20.2 垃圾收集算法383
20.3 垃圾收集与调试387
20.4 使用终结操作来释放本地资源389
20.4.1 确保终结操作使用
criticalfinalizerobject
类型390
20.4.2 safehandle类型及其
派生类型391
20.4.3 使用safehandle类型实现
非托管代码之间的
互操作393
20.5 对托管资源使用终结操作395
20.6 哪些事件会导致finalize
方法的调用397
20.7 终结操作内部揭秘398
20.8 释放模式:强制对象清理资源401
20.9 使用实现了释放模式的类型404
20.10 c#的using语句407
20.11 一个有趣的依赖问题409
20.12 人工监视和控制对象的生存期410
20.13 对象复苏417
20.14 对象的代418
20.15 使用本地资源的其他
垃圾收集特性423
20.16 预测需求较多内存的操作
能否成功426
20.17 编程控制垃圾收集器427
20.18 与垃圾收集器性能相关的
其他一些话题430
20.18.1 免同步的多线程分配431
20.18.2 可扩展并行收集431
20.18.3 并发收集431
20.18.4 大尺寸对象432
20.19 监视垃圾收集433
第21章 clr寄宿和应用程序域435
21.1 clr寄宿435
21.2 应用程序域438
21.3 应用程序域的卸载450
21.4 宿主如何使用应用程序域451
21.4.1 控制台和windows窗体
应用程序451
21.4.2 microsoft internet
explorer452
21.4.3 microsoft asp.net web
窗体和xml web服务
应用程序452
21.4.4 microsoft sql server
2005453
21.4.5 预测与展望453
21.5 高级宿主控制453
21.5.1 使用托管代码管理clr453
21.5.2 编写健壮的宿主
应用程序454
21.5.3 宿主如何恢复线程455
第22章 程序集的加载与反射459
22.1 程序集的加载459
22.2 使用反射构建动态可扩展
应用程序463
22.3 反射的性能463
22.3.1 发现程序集中定义
的类型464
22.3.2 类型对象的准确含义465
22.3.3 构建派生自exception
的类型的层次结构467
22.3.4 构建类型的实例468
22.4 设计支持插件的应用程序470
22.5 使用反射发现类型的成员473
22.5.1 发现类型成员473
22.5.2 bindingflags:筛选返回
成员的类型477
22.5.3 发现类型的接口478
22.5.4 调用类型的成员480
22.5.5 一次绑定、多次调用483
22.5.6 使用绑定句柄来
减小工作集487
第23章 执行异步操作490
23.1 clr如何使用windows线程490
23.2 高效线程使用圣典491
23.3 clr线程池简介493
23.4 限制线程池中线程的数量494
23.5 使用线程池执行受计算限制
的异步操作495
23.6 使用专用线程执行受计算限制
的异步操作497
23.7 定期执行受计算限制的异步操作499
三个定时器的史话500
23.8 异步编程模型简介501
23.9 使用apm执行受i/o限制
的异步操作502
23.10 apm的三个聚集技巧504
23.10.1 apm的等待直至
完成聚集技巧504
23.10.2 apm的轮询聚集技巧506
23.10.3 apm的方法回调聚
集技巧508
23.11 使用apm执行受计算限制
的异步操作512
23.12 apm与异常514
23.13 对apm的重要说明514
23.14 执行上下文516
第24章 线程同步519
24.1 内存一致性、易失内存访问
与易失字段520
24.1.1 易失读取和写入522
24.1.2 c#对易失字段的支持524
24.2 互锁方法526
24.3 monitor类与同步块527

24.3.1 “伟大想法”527
24.3.2 “伟大想法”的实现528
24.3.3 使用monitor类管理
同步块529
24.3.4 microsoft最初计划
的同步方式530
24.3.5 使用c#的lock语句
简化代码531
24.3.6 microsoft最初计划
同步静态成员的方式532
24.3.7 为什么“伟大想法”
思想毫无伟大之处533
24.3.8 著名的双检锁技巧535
24.4 readerwriterlock类537
24.5 使用托管代码中的windows
内核对象538

商品评论(0条)

暂无评论!

您的浏览历史

loading 内容加载中,请稍后...