内容简介
第1章 中间语言导论
目 录
1.1 IL程序集简介
1.2 IL原理
1.3 IL编程
1.4 IL调试
1.4.1 VS.NET中的调试
1.4.2调试高级语言编译后得到的IL代码
1.4.3其他调试程序:CorDbg
1.4.4 IL中的编译时错误
1.5 小结
2.1 对象类型和值类型实例
第2章 中间语言深度挖掘
2.1.1 实例字段
2.1.2定义实例方法和属性
2.1.3 初始化和实例构造函数
2.1.4虚拟方法
2.1.5封箱和开箱
2.2枚举
2.3 数组
2.4通过P/Invoke调用非托管代码
2.5定义二进制数据
2.6异常处理
2.7属性
2.8反汇编IL和循环处理
2.9 小结
第3章CLR的运行原理
3.1 .NET Framework组件和ECMA标准
3.1.1 ECMA标准
3.1.2 Framework SDK资源
3.1.3共享源CLI
3.2值/引用类型系统
3.2.1 引用类型
3.2.2值类型
3.2.3封箱类型
3.2.4 System.ValueType和System.Enum
3.2.5 字段调整
3.2.6 使用C++直接访问托管堆内存
3.3 JIT编译:验证和确认
3.3.1代码验证
3.3.2类型安全验证
3.4托管代码和非托管代码
3.4.1非托管代码的调用原理
3.4.2混合托管类型和非托管类型
3.5 小结
第4章程序集
4.1 内部视图:程序集的物理结构
4.1.1 PE文件
4.1.2 CLR的PE扩展
4.1.3资源和资源文件
4.2外部视图:程序集的逻辑结构
4.2.1程序集的标识
4.2.2读取程序集的内容
4.2.3探讨程序集缓存
4.3查找程序集
4.3.1 Microsoft编译器查找程序集的原理
4.3.2 VS.NET查找程序集的原理
4.3.3 CLR探查程序集的原理
4.4生成程序集
4.4.1程序集实用程序
4.4.2编译资源文件
4.4.3本地化及附属程序集
4.5 综合应用
4.4.4为程序集签名
4.5.1命令行GreetMe示例
4.5.2 VS.NET GreetMe示例
4.6小结
第5章无用单元收集
5.1使用无用单元收集的原因
5.1.1 C/C++样式的清除
5.1.2 引用计算
5.13无用单元收集
5.2.NET无用单元收集器的运行原理
5.2.1调用GC
5.2.2获得对程序的控制
5.2.3 标识无用单元
5.2.4压缩堆
5.2.5 代
5.2.6析构函数和恢复
5.2.7通过编程控制无用单元收集器
5.3 实现Dispose()和Finalize()
5.3.1 Finalize/Dispose()的语义
5.3.2清除非托管资源
5.3.3 包含托管和非托管资源的类
5.3.4实现Dispose()和析构函数的指导原则
5.4 弱引用
5.5 小结
第6章改进性能
6.1 托管还是非托管
6.1.1 .NET及其未来
6.1.2.NET的性能优点
6.2 JIT编译器优化
6.3性能建议
6.4 小结
第7章剖面分析和性能计数器
7.1 Windows对性能监控的支持
7.2理解内存
7.2.1通过任务管理器访问内存
7.2.2 UseResources示例
7.3性能计数器
7.4 PerfMon
7.4.2通过性能计数器编码
7.4.1 .NET性能计数器
7.4.3 MonitorUseResources示例
7.4.4注册自己的性能计数器
7.5 剖面分析
7.5.1选择剖析工具
7.5.2编写自己的Profiling Timer代码
7.5.3 CompuwareProfiler示例程序
7.5.4配置剖析工具
7.5.5 Profiling API
7.6 小结
8.1 使用动态代码生成的理由
8.1.1 开发者工具
第8章动态代码生成
8.1.2基于性能的原因
8.2体系结构
8.3 使用Reflection.Emit类编码
8.3.1 创建一个已保存的可执行程序集
8.3.2创建并运行DLL程序集
8.4使用CodeDom类编码
8.4.1 创建Dom模型
8.4.2将DOM转换为源代码
8.4.3将源代码转换为IL代码
8.4.4 CodeDom类示例
8.5 小结
9.1 CLR线程支持
第9章线程
9.1.1托管线程的类型
9.1.2线程标识
9.1.3枚举非托管线程
9.2多线程技术
9.2.1异步委托调用
9.2.2显式地创建您自己的线程
9.2.3定时器
9.2.4 内置的异步支持
9.2.5将项目显式排列到线程池中
9.3 异步委托
9.4.1 数据同步原理
9.4 同步变量访问
9.4.2线程同步结构
9.4.3线程同步示例
9.5 定时器
9.6显式地创建和终止线程
9.7小结
第1 0章管理设备
10.1 WMI的基本概念
10.1.1一些WMI示例
10.1.2 WMI结构
10.1.3 WMI对象模型
10.1.4 WMI查询语言
1 0.2 使用System.Management类执行查询
10.3异步处理
10.4接收通知
10.5 小结
第1 1章高级Windows Forms技术
11.1 Windows消息的后台处理
11.1.1处理消息
11.1.2 Windows窗体和消息队列
11.1.3利用消息循环
11.2消息循环示例
11.2.1 直接处理消息
11.2.2 BeginInvoke()示例——初始化一个应用程序
11.2.3 Abort对话框示例
11.3 支持XP的控件
11.4 非矩形窗口
1 1.5 自绘制控件
1 1.6 图形
11.6.1 GDI和GDI+的比较
1 1.6.2 Screenshot示例
11.7小结
第12章代码访问安全性
12.1代码访问安全性概念
12.1.1针对单个程序集的CAS
12.1.2针对多个程序集的CAS
12.1.3 CLR权限
12.2与Windows安全性的关系
12.3.1代码组
12.3默认的安全策略
12.3.2权限集
12.4利用CAS编写代码
12.4.1强制性安全
12.4.2声明性安全
12.4.3好的编码实践
12.5 CAS的后台处理
12.6设置自定义权限
12.7确认权限
12.8 小结
第13章密码术
13.1 密码术的作用
13.2对称加密
13.3 公钥加密
13.3.1 密钥大小
13.3.2会话密钥
13.4散列法
1 3.5 数字签名
1 3.6 凭证
13.6.1 凭证的概念
13.6.2认证机构
13.6.3 Windows密码术模型
13.6.4创建凭证
13.6.5通过编程读取凭证
13.7小结