书籍详情
高级.NET程序设计
作者:(美)Simon Robinson著;冉晓旻,王军译
出版社:清华大学出版社
出版时间:2003-07-01
ISBN:9787302067894
定价:¥62.00
购买这本书可以去
内容简介
本书详细、专业地讲述了.NET应用程序的工作原理,深入探讨了.NET的一些高级技术,其中包括中间语言、CLR工作原理、应用程序操作性能的优化和系统资源使用情况的剖析、线程同步技术、高级Windwos Forms技术、如何使用WMI管理计算机中的资源、如何动态生成代码以及.NET中的代码访问安全性和密码术等内容。本书适用于有一定编程基础并参C#有所了解的.NET开发人员。此外,读者还必须熟悉.NET的基本概念和主要的类库。
作者简介
暂缺《高级.NET程序设计》作者简介
目录
第1章 中间语言导论
1.1 IL程序集简介
1.2 IL原理
1.3 IL编程
1.4 IL调试
1.4.1 VS.NETK中的调试
1.4.2 调试高级语言编译后得到的IL代码
1.4.3 其他调试程序:CorDbg
1.4.4 IL中的编译时错误
1.5 小结
第2章 中间语言深度挖掘
2.1 对象类型和值类型实例
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的PEA扩展
4.1.3 资源和资源文件
4.2 外部视图:程序集的逻辑结构
4.2.1 程序集的标识
4.2.2 读取程序集的内容
4.2.3 探讨程序集缓存
4.3 查找程序集
4.3.1 Microsoft编译器查找程序集的原理
4.3.2 VB.NET查找程序集的原理
4.3.3 CLR探查程序集的原理
4.4 生成程序集
4.4.1 程序集实用程序
4.4.2 编译资源文件
4.4.3 本地化及附属程序集
4.4.4 为程序集签名
4.5 综合应用
4.5.1 命令行GreetMe示例
4.5.2 VS.NET GreetMe示例
4.6 小结
第5章 无用单元收集
5.1 使用无用单元收集的原因
5.1.1 C/C++样式的清除
5.1.2 引用计算
5.1.3 无用单元收集
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.1 .NET性能计数器
7.4.2 通过性能计数器编码
7.4.3 MonitorUseRsources示例
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章 动态代码生成
8.1 使用动态代码生成的理由
8.1.1 开发者工具
8.1.2 基于性能的原因
8.2 体系结构
8.3 使用Reflecion.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章 线程
9.1 CLR线程支持
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 同步变量访问
9.4.1 数据同步原理
9.4.2 线程同步结构
9.4.3 线程同步示例
9.5 定时器
9.6 显式地创建和终止线程
9.7 小结
第10章 管理设备
10.1 WMI的基本概念
10.1.1 一些WMI示例
10.1.2 WMI结构
10.1.3 WMI对象模型
10.1.4 WMI查询语言
10.2 使用System.Management类执行查询
10.3 异步处理
10.4 接收通知
10.5 小结
第11章 高级Windows Forms技术
11.1 Windows消息的后台处理
11.1.1 处理消息
11.1.2 Windows窗体和消息队列
11.1.3 利用消息循环
11.2 消息循环示例
11.2.1 直接处理消息
11.2.2 BdginInvoke()示例——初始化一个应用程序
11.2.3 Abort对话框示例
11.3 支持XP的控件
11.4 非矩形窗口
11.5 自绘形窗口
11.6 图形
11.6.1 GDI和GDI+的比较
11.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 默认的安全策略
12.3.1 代码组
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 散列法
13.5 数字签名
13.6 凭证
13.6.1 凭证的概念
13.6.2 认证机构
13.6.3 Windows密码术模型
13.6.4 创建凭证
13.6.5 通过编程读取凭证
13.7 小结
1.1 IL程序集简介
1.2 IL原理
1.3 IL编程
1.4 IL调试
1.4.1 VS.NETK中的调试
1.4.2 调试高级语言编译后得到的IL代码
1.4.3 其他调试程序:CorDbg
1.4.4 IL中的编译时错误
1.5 小结
第2章 中间语言深度挖掘
2.1 对象类型和值类型实例
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的PEA扩展
4.1.3 资源和资源文件
4.2 外部视图:程序集的逻辑结构
4.2.1 程序集的标识
4.2.2 读取程序集的内容
4.2.3 探讨程序集缓存
4.3 查找程序集
4.3.1 Microsoft编译器查找程序集的原理
4.3.2 VB.NET查找程序集的原理
4.3.3 CLR探查程序集的原理
4.4 生成程序集
4.4.1 程序集实用程序
4.4.2 编译资源文件
4.4.3 本地化及附属程序集
4.4.4 为程序集签名
4.5 综合应用
4.5.1 命令行GreetMe示例
4.5.2 VS.NET GreetMe示例
4.6 小结
第5章 无用单元收集
5.1 使用无用单元收集的原因
5.1.1 C/C++样式的清除
5.1.2 引用计算
5.1.3 无用单元收集
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.1 .NET性能计数器
7.4.2 通过性能计数器编码
7.4.3 MonitorUseRsources示例
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章 动态代码生成
8.1 使用动态代码生成的理由
8.1.1 开发者工具
8.1.2 基于性能的原因
8.2 体系结构
8.3 使用Reflecion.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章 线程
9.1 CLR线程支持
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 同步变量访问
9.4.1 数据同步原理
9.4.2 线程同步结构
9.4.3 线程同步示例
9.5 定时器
9.6 显式地创建和终止线程
9.7 小结
第10章 管理设备
10.1 WMI的基本概念
10.1.1 一些WMI示例
10.1.2 WMI结构
10.1.3 WMI对象模型
10.1.4 WMI查询语言
10.2 使用System.Management类执行查询
10.3 异步处理
10.4 接收通知
10.5 小结
第11章 高级Windows Forms技术
11.1 Windows消息的后台处理
11.1.1 处理消息
11.1.2 Windows窗体和消息队列
11.1.3 利用消息循环
11.2 消息循环示例
11.2.1 直接处理消息
11.2.2 BdginInvoke()示例——初始化一个应用程序
11.2.3 Abort对话框示例
11.3 支持XP的控件
11.4 非矩形窗口
11.5 自绘形窗口
11.6 图形
11.6.1 GDI和GDI+的比较
11.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 默认的安全策略
12.3.1 代码组
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 散列法
13.5 数字签名
13.6 凭证
13.6.1 凭证的概念
13.6.2 认证机构
13.6.3 Windows密码术模型
13.6.4 创建凭证
13.6.5 通过编程读取凭证
13.7 小结
猜您喜欢