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

.NET探秘-MSIL权威指南

分享到:
.NET探秘-MSIL权威指南

最 低 价:¥72.70

定 价:¥89.00

作 者:(加)利丁(Lidin.S.)著

出 版 社:人民邮电出版社

出版时间:2009-9-1

I S B N:9787115201768

价格
72.70元
价格
72.70元
价格
73.90元
价格
75.70元
价格
75.70元
价格
80.10元

商品详情

编辑推荐

《.NET探秘MSIL权威指南》由微软资深工程师、MSIL语言设计者之一撰写,详尽而深入地讨论了.NET CLR的内部结构和运作。首次阐述了MSIL语言的方方面面,是极为宝贵的.NET技术资料。通过研读《.NET探秘MSIL权威指南》,你将大大加深自己对.NET框架的理解,从而开发出更加紧凑、更高性能的.NET代码。.NET框架已经是微软技术的核心平台,但是,对于许多开发人员而言,它仍然是黑盒子。遇到各种实际的性能、调试等问题时很容易让人陷入不知所措的境地。深入洞悉.NET技术内幕,MSIL唯—权威指南,Amazon五星巨著,学习和参考皆宜。

内容简介

简介   本书是il汇编语言的权威之作,深入地讲解了il的全部内容,是.net底层开发人员必备的参考书,对于从概念设计到实现和维护等软件开发所有阶段都很有价值。本书内容基于.net 2.0版本,同时,考虑到.net 3.0/3.5在clr/il上没有作任何改动,且即将推出的 .net 4.0也只是在clr上稍作修改而并没有涉及il语言,所以,本书对于目前各个版本的.net framework而言都是适用的。    本书适合所有.net开发人员、讲师、研究人员阅读。

作者简介

Serge Lidin,曾是.NET CLR小组核心开发人员之一,是MSlL语言的设计者以及该语言规范的作者之一,负责设计并开发了IL汇编器、IL反汇编器等核心组件。目前任职于微软Phoenix小组。开发新一代编译技术底层框架。
包建强,复旦人。微软2008年MVP。现就职于HP某航空项目,从事Sllverlight开发和Prism框架设计工作。技术博客:http://jax.cnblogs.corn/。

目录

第一部分 快速入门第1章 简单示例 21.1 CLR基础 21.2 简单示例:The Code 51.2.1 程序头 71.2.2 类声明 81.2.3 字段声明 91.2.4 方法声明 101.2.5 全局项 141.2.6 映射字段 161.2.7 数据声明 161.2.8 作为占位符的值类型 171.2.9 调用非托管代码 171.3 类的预先声明 181.4 小结 20第2章 代码增强 212.1 精简代码 212.2 保护代码 232.3 小结 28第3章 使代码更简单 293.1 别名 293.2 编译控制伪指令 313.3 关联当前类及其引用项 343.4 小结 35第二部分 底层结构第4章 托管可执行文件的结构 384.1 PE/COFF头 394.1.1 MS-DOS头/Stub和PE签名 404.1.2 COFF头 404.1.3 PE头 434.1.4 节头 474.2 CLR头 494.2.1 头结构 504.2.2 Flags字段 514.2.3 EntryPointToken字段 524.2.4 VTableFixups字段 524.2.5 StrongNameSignature字段 534.2.6 重定位节 534.2.7 文本节 554.2.8 数据节 564.2.9 数据常量 564.2.10 V表 574.2.11 非托管导出表 574.2.12 线程局部存储(TLS) 594.2.13 资源 604.2.14 非托管资源 604.2.15 托管资源 624.3 小结 634.3.1 第一阶段:初始化 634.3.2 第二阶段:源代码解析 634.3.3 第三阶段:映像生成 634.3.4 第四阶段:完成 64第5章 元数据表的组织 655.1 什么是元数据 655.2 堆和表 675.2.1 堆 675.2.2 通用元数据头 685.2.3 元数据表流 705.3 RID和标记 735.3.1 RID 735.3.2 标记 735.3.3 编码标记 755.4 元数据有效性检查 785.5 小结 79第三部分 基本组件第6章 模块和程序集 826.1 什么是程序集 826.2 私有程序集和共享程序集 826.3 作为逻辑执行单元的应用程序域 836.4 清单 846.5 Assembly元数据表和声明 866.6 AssemblyRef元数据表和声明 876.7 加载程序搜索程序集 896.8 Module元数据表和声明 926.9 ModuleRef元数据表和声明 926.10 File元数据表和声明 936.11 托管资源元数据表和声明 946.12 ExportedType元数据表和声明 976.13 ILAsm中清单声明的次序 986.14 单模块程序集和多模块程序集 996.15 元数据有效性规则概要 1006.15.1 Assembly表有效性规则 1006.15.2 AssemblyRef表有效性规则 1006.15.3 Module表有效性规则 1016.15.4 ModuleRef表有效性规则 1016.15.5 File表有效性规则 1016.15.6 ManifestResource表有效性规则 1016.15.7 ExportedType表有效性规则 102第7章 命名空间和类 1037.1 类的元数据 1047.1.1 TypeDef元数据表 1057.1.2 TypeRef元数据表 1067.1.3 InterfaceImpt元数据表 1067.1.4 NestedClass元数据表 1067.1.5 ClassLayout元数据表 1077.2 命名空间和类的完整名称 1077.2.1 ILAsm命名约定 1087.2.2 命名空间 1097.2.3 类的完整名称 1107.3 类的特性 1117.3.1 标志 1117.3.2 类的可见性和友元程序集 1137.3.3 类的引用 1137.3.4 父类型 1147.3.5 接口实现 1147.3.6 类的布局信息 1157.4 接口 1157.5 值类型 1177.5.1 值的装箱和拆箱 1177.5.2 值类型的实例成员 1187.5.3 值类型的派生 1187.6 枚举 1197.7 委托 1197.8 嵌套类型 1217.9 类的扩充 1237.10 元数据有效性规则概要 1257.10.1 TypeDef表有效性规则 1257.10.2 特定于枚举的有效性规则 1267.10.3 TypeRef表有效性规则 1267.10.4 InterfaceImpt表有效性规则 1267.10.5 NestedClass表有效性规则 1277.10.6 ClassLayout表有效性规则 127第8章 基本类型和签名 1288.1 CLR中的基本类型 1288.1.1 基本数据类型 1288.1.2 数据指针类型 1298.1.3 函数指针类型 1318.1.4 向量和数组 1318.1.5 修饰符 1338.1.6 本地类型 1348.1.7 可变类型 1368.2 签名中类的表示 1388.3 签名 1398.3.1 调用约定 1398.3.2 字段签名 1398.3.3 方法和属性签名 1408.3.4 MemberRef签名 1408.3.5 间接调用签名 1418.3.6 局部变量签名 1418.3.7 类型说明 1428.4 签名有效性规则概要 143第9章 字段和数据常量 1449.1 字段元数据 1449.1.1 定义字段 1459.1.2 引用字段 1469.2 实例字段和静态字段 1479.3 默认值 1479.4 映射字段 1509.5 数据常量声明 1519.6 显式布局和联合声明 1529.7 全局字段 1559.8 构造函数与数据常量 1569.9 元数据有效性规则概要 1589.9.1 Field表有效性规则 1599.9.2 FieldLayout表有效性规则 1599.9.3 FieldRVA表有效性规则 1599.9.4 FieldMarshal表有效性规则 1609.9.5 Constant表有效性规则 1609.9.6 MemberRef表有效性规则 160第10章 方法 16110.1 方法元数据 16110.1.1 Method表的记录字段 16210.1.2 方法标志 16210.1.3 方法名称 16410.1.4 方法实现标志 16510.1.5 方法参数 16610.1.6 引用方法 16710.1.7 方法实现元数据 16810.2 静态方法、实例方法和虚方法 16810.3 显式方法重写 17210.4 方法重写和可访问性 17710.5 方法头特性 17810.6 局部变量 18010.7 类的构造函数 18110.7.1 类的构造函数和beforefieldinit标志 18210.7.2 模块构造函数 18410.8 实例构造函数 18410.9 实例终结器 18610.10 可变参数列表 18710.11 方法重载 18910.12 全局方法 19110.13 元数据有效性规则概要 19110.13.1 Method表有效性规则 19210.13.2 Param表有效性规则 19310.13.3 MethodImpl表有效性规则 193第11章 泛型类型 19511.1 泛型类型元数据 19611.1.1 GenericParam元数据表 19811.1.2 GenericParamConstraint元数据表 19811.1.3 TypeSpec元数据表 19911.2 约束标志 19911.3 在ILAsm中定义泛型类型 19911.4 类型参数寻址 20011.5 泛型类型实例化 20111.6 定义泛型类型:继承、实现、约束 20211.7 定义泛型类型:循环依赖 20311.8 泛型类型的成员 20511.9 嵌套泛型类型 21011.10 元数据有效性规则概要 213第12章 泛型方法 21412.1 泛型方法元数据 21412.2 泛型方法签名 21612.3 在ILAsm中定义泛型方法 21612.4 调用泛型方法 21712.5 重写虚泛型方法 21912.6 元数据有效性规则概要 223第四部分 深入执行引擎第13章 IL指令 22613.1 长参数和短参数指令 22713.2 标号和流程控制指令 22713.2.1 无条件转移指令 22813.2.2 有条件转移指令 22813.2.3 比较转移指令 22813.2.4 switch指令 23013.2.5 break指令 23013.2.6 托管EH块退出指令 23013.2.7 托管EH块结束指令 23113.2.8 ret指令 23113.3 运算指令 23113.3.1 栈处理 23113.3.2 常量加载 23213.3.3 间接加载 23313.3.4 间接存储 23313.3.5 算术操作 23413.3.6 溢出算术操作 23513.3.7 位操作 23613.3.8 移位操作 23613.3.9 转换操作 23713.3.10 溢出转换操作 23813.3.11 逻辑条件检查指令 23813.3.12 块操作 23913.4 寻址参数和局部变量 23913.4.1 方法参数加载 23913.4.2 方法参数地址加载 24013.4.3 方法参数存储 24013.4.4 方法参数列表 24013.4.5 局部变量加载 24013.4.6 局部变量引用加载 24113.4.7 局部变量存储 24113.4.8 局部块分配 24113.4.9 前缀指令 24113.5 寻址字段 24213.6 调用方法 24313.6.1 直接调用 24313.6.2 间接调用 24413.6.3 尾部调用 24513.6.4 带约束的虚调用 24613.7 寻址类和值类型 24713.8 向量指令 25013.8.1 向量创建 25013.8.2 元素地址加载 25113.8.3 元素加载 25113.8.4 元素存储 25213.9 代码可验证性 252第14章 托管异常处理 25514.1 EH子句的内部表示 25514.2 EH子句的类型 25614.3 EH子句声明的标号格式 25814.4 EH子句声明的作用域格式 25914.5 处理异常 26214.6 异常类型 26414.6.1 加载程序异常 26414.6.2 JIT编译器异常 26414.6.3 执行引擎异常 26514.6.4 互操作异常 26614.6.5 子类异常 26614.6.6 非托管异常映射 26614.7 EH子句结构化规则概要 267第五部分 特殊组件第15章 事件和属性 27015.1 事件和委托 27015.2 事件元数据 27315.2.1 Event表 27315.2.2 EventMap表 27415.2.3 MethodSemantics表 27415.3 事件声明 27515.4 属性元数据 27715.4.1 Property表 27815.4.2 PropertyMap表 27915.5 属性声明 27915.6 元数据有效性规则概要 28015.6.1 Event表有效性规则 28015.6.2 EventMap表有效性规则 28115.6.3 Property表有效性规则 28115.6.4 PropertyMap表有效性规则 28115.6.5 MethodSemantics表有效性规则 281第16章 自定义特性 28316.1 自定义特性的概念 28316.2 CustomAttribute元数据表 28416.3 自定义特性的值编码 28516.4 自定义特性的逐字描述 28716.5 自定义特性声明 28816.6 自定义特性的分类 29116.6.1 执行引擎和JIT编译器 29216.6.2 互操作子系统 29316.6.3 安全 29516.6.4 Remoting子系统 29616.6.5 Visual Studio调试器 29716.6.6 程序集链接器 29716.6.7 公共语言规范(CLS)兼容性 29816.6.8 伪自定义特性 29816.7 元数据有效性规则概要 300第17章 安全特性 30117.1 声明性安全 30117.2 声明性操作 30217.3 安全许可权限 30317.3.1 访问许可权限 30317.3.2 身份许可权限 30617.3.3 自定义许可权限 30817.3.4 许可权限集 30917.4 声明性安全元数据 31017.5 许可权限集的Blob编码 31117.6 安全特性声明 31117.7 元数据有效性规则概要 312第18章 托管代码和非托管代码的互操作 31418.1 Thunk和包装器 31518.1.1 P/Invoke Thunk 31518.1.2 实现映射元数据 31718.1.3 IJW Thunk 31718.1.4 COM可调用包装器 31818.1.5 运行时可调用包装器 31918.2 数据封送 32018.2.1 blittable类型 32018.2.2 in/out参数 32118.2.3 字符串封送 32218.2.4 对象封送 32318.2.5 更多对象封送 32418.2.6 数组封送 32518.2.7 委托封送 32518.3 为非托管代码提供托管方法作为回调 32618.4 作为非托管导出的托管方法 32818.5 小结 334第19章 多语言工程 33619.1 IL反汇编器 33619.2 双向解析的原则 34019.3 创造性的双向解析 34119.4 使用类的扩充 34219.5 通过双向解析进行模块链接 34219.6 ASMMETA:解决循环依赖 34419.7 内嵌在高级语言中的IL 34619.8 在调试模式下编译 34719.9 小结 352第六部分 附录附录A ILAsm语法 356附录B 元数据表 376附录C IL指令集 387附录D IL汇编器和IL反汇编器的命令行选项 394附录E 离线验证工具 399部分术语翻译说明 416

商品评论(0条)

暂无评论!

您的浏览历史

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