当.NET Framework和公共语言运行库(CLR)在健壮性、可靠性和丰富性等方面不断成熟时,开发人员越来越需要理解所有托管代码在其上运行的基础。本书介绍所有开发人员可以使用的底层平台的共性,而不论选择什么语言或使用什么开发工具。
本书首先深入介绍了CLR的基础,接下来回顾了基类库(BCL),然后阐述更为高级的Framework库。这些库常用于大多数托管应用程序中。通过大量工作代码示例和独特的覆盖深度,本书全面介绍了.NET Framework和CLR 2.0提供的内容。
本书适合于具有Microsoft(.NET 1.X、Win32或COM)或Java平台相关开发经验,并且需要使用.NET Framework和CLR编程的开发人员。
本书是畅销书作家Joe Duffy精心打造的优秀图书,详细探讨了.NET Framework和CLR 2.0技术,以及如何在这个平台上编写优秀的代码。本书在介绍技术的同时还揭示了技术后面的基本原理,在解释重要概念的同时还说明了它们与其他技术的联系和相互间的对应关系。本书可帮助读者快速掌握使用.NET Framework和CLR编程。
第Ⅰ部分 CLR基础
第1章 引言
1.1 平台的发展历史
1.2 .NET Framework技术概览
第2章 通用类型系统
2.1 类型系统介绍
2.1.1 类型安全的重要性
2.1.2 静态和动态类型
2.2 类型和对象
2.2.1 类型统一化
2.2.2 引用和值类型
2.2.3 可访问性和可视性
2.2.4 类型成员
2.2.5 子类化和多态性
2.2.6 命名空间:组织类型
2.2.7 特殊的类型
2.3 范型
2.3.1 基本概念和术语
2.3.2 约束
2.4 参考文献
2.4.1 专门针对.NET Framework和CLR的读物
2.4.2 类型系统和语言
2.4.3 范型和相关的技术
2.4.4 特定语言
第3章 CLR技术内幕
3.1 中间语言
3.1.1 IL示例:“Hello,world!”
3.1.2 汇编和反汇编IL
3.1.3 基于栈的抽象机
3.1.4 指令集探讨
3.2 异常
3.1.1 异常的基础知识
3.2.2 快速失效
3.2.3 两阶段异常
3.2.4 性能
3.3 自动内存管理
3.3.1 分配
3.3.2 垃圾收集
3.3.3 终结
3.4 实时编译
3.4.1 编译过程概览
3.4.2 方法调用内部细节
3.4.3 64位支持
3.5 参考文献
第4章 程序集、加载和部署
4.1 部署、执行和重用单元
4.1.1 程序集元数据的内部细节
4.1.2 共享的程序集(全局程序集缓存)
4.1.3 友元程序集
4.2 程序集加载
4.2.1 绑定、映射和加载过程的内幕
4.2.2 加载CLR
4.2.3 静态程序集加载
4.2.4 动态程序集加载
4.2.5 类型转发
4.3 本地映像生成
4.3.1 管理缓存(ngen.exe)
4.3.2 基址和安排
4.3.3 好处和弊端
4.4 参考文献
第Ⅱ部分 基础架构库
第5章 基本类型
5.1 原始类型
5.1.1 Object
5.1.2 数字
5.1.3 布尔型
5.1.4 String
5.1.5 IntPtr
5.1.6 Date和Time
5.2 各种各样的BCL支持
5.2.1 格式化
5.2.2 解析
5.2.3 基本类型转换
5.2.4 构建字符串
5.2.5 垃圾收集
5.2.6 弱引用
5.2.7 数学API
5.3 常见的异常
5.3.1 系统异常
5.3.2 其他标准的异常
5.3.3 自定义的异常
5.4 参考文献
第6章 数组与集合
6.1 数组
6.1.1 一维数组
6.1.2 多维数组
6.1.3 基类库的支持(System.Array)
6.1.4 固定数组
6.2 集合
6.2.1 泛型集合
6.2.2 弱类型集合
6.2.3 比较
6.2.4 函数委托类型
6.3 参考文献
第7章 I/O、文件和网络互连
7.1 流
7.1.1 使用基类
7.1.2 读取器和写入器
7.1.3 文件和目录
7.1.4 其他流的实现
7.2 标准设备
7.2.1 写入到标准输出和标准错误
7.2.2 读取标准输入
7.2.3 控制台显示控制
7.2.4 串行端口
7.3 网络互连
7.3.1 套接字
7.3.2 网络信息
7.3.3 协议客户机和侦听器
7.4 参考文献
第8章 国际化
8.1 国际化的概念
8.1.1 平台支持
8.1.2 处理过程
8.2 示例场景
8.2.1 发布本地化内容
8.2.2 地区格式化
8.3 文化
8.3.1 文化表示(CultureInfo)
8.3.2 格式化
8.4 资源
8.4.1 创建资源
8.4.2 打包与部署
8.4.3 访问资源
8.5 编码
8.6 向默认文化挑战
8.7 参考文献
第Ⅲ部分 CLR高级服务
第9章 安全性
9.1 代码访问安全
9.1.1 定义信任
9.1.2 权限
9.1.3 管理策略
9.1.4 应用安全
9.2 基于用户的安全
9.2.1 身份
9.2.2 访问控制
9.3 参考文献
第10章 线程、AppDomain和进程
10.1 线程
10.1.1 线程池的排队工作
10.1.2 显式线程管理
10.1.3 线程隔离的数据
10.1.4 线程间的状态共享
10.1.5 常见的并发问题
10.1.6 事件
10.1.7 异步编程模型(APM)
10.1.8 高级线程主题
10.2 AppDomain
10.2.1 创建
10.2.2 卸载
10.2.3 将代码加载到APPDomain中
10.2.4 编组
10.2.5 加载、卸载和异常事件
10.2.6 AppDomain孤立性
10.3 进程
10.3.1 退出进程
10.3.2 创建
10.3.3 终止
10.4 参考文献
第11章 非托管的互操作性
11.1 指针、句柄和资源
11.1.1 “互操作性”定义
11.1.2 CTS中的本地指针(IntPtr)
11.1.3 内存和资源管理
11.1.4 可靠地管理资源(SafeHandle)
11.1.5 通知GC资源消耗
11.1.6 受限的执行区域
11.2 COM互操作性
11.2.1 快速回顾COM
11.2.2 向后的互操作性
11.2.3 向前的互操作性
11.3 使用非托管代码
11.3.1 平台调用(P/lnvoke)
11.3.2 桥接类型系统
11.4 参考文献
第Ⅳ部分 高级Framework库
第12章 跟踪和诊断
12.1 跟踪
12.1.1 跟踪体系结构
12.1.2 使用跟踪源
12.2 自定义断言失败
12.2.1 跟踪监听器
12.2.2 配置
12.3 参考文献
第13章 正则表达式
13.1 基本的表达式语法
13.1.1 一些(简单的)模式示例
13.1.2 字面量
13.1.3 元字符
13.2 BCL支持
13.2.1 表达式
13.2.2 编译过的表达式
13.3 参考文献
第14章 动态编程
14.1 反射API
14.1.1 信息API
14.1.2 令牌句柄解析
14.2 自定义属性
14.2.1 声明白定义属性
14.2.2 访问自定义属性
14.3 委托
14.3.1 委托内部
14.3.2 异步委托
14.3.3 匿名方法(语言特性)
14.4 发行代码和元数据
14.5 参考文献
第15章 事务
15.1 事务编程模型
15.1.1 事务的作用域
15.1.2 嵌套和流动
15.1.3 Enterprise Services集成
15.1.4 事务管理程序
15.2 参考文献
附录A IL快速参考