CLR_via_C#.3rd 翻译[1.2将托管模块组合到集]
2010-08-22 14:15
351 查看
上节kinetics提到早就有中译本的了
周靖的blog:
http://transbot.blog.163.com/可以下载几百页中文翻译稿
china-pub的预定:
http://www.china-pub.com/196978
本来想就这样结束吧,但是开始了还是继续吧。学技术的同时学习英文,从英文翻译到中文每个词都要斟酌的,虽然速度慢下来,不像直接看中文一目n行,但是加深了我对作者意思的理解,对自己也是有好处的。所以继续下去,也谢谢kinetics给我提供了一个参考的地方。
[b]-----------------------------------------------------------------------------------[/b]
[b]1.2Combining Managed Modules into Assemblies 将托管模块组合到集[/b]
在CLR实际上并不是作用于模块(modules),而是作用于程序集(assembly)。程序集是一个抽象的概念,初学者可能难以把握。第一,程序集是由一个或多个模块或资源文件组成的。第二,集是可再利用,安全的,拥有版本的最小单位。根据您对编译器或工具的选择,你可以产生一个单文件或多文件程序集。 CLR中的世界,程序集就是我们常说的组件(component)。
在第二章中,我会很详细的介绍集(assembly),所以我就不在这里复述了。我现在想要做的就是让你知道,就是它还提供了一种将一组文件当作一个实体的方式。
图1-2集应有助于解释什么是程序集。在这幅图中,一些托管模块和资源(或数据)文件正在被一个工具处理。此工具生成一个单一的PE32(+)文件,表示文件的逻辑分组。PE32(+)文件包含一个称为清单的数据块。清单是一个简单的元数据表的集合。这些表描述了组成集的文件、由程序集里的文件实现的公共导出类型、以及与该程序集关联的数据文件和资源。
默认情况下,编译器实际上做的工作是将生成的托管模块转化成一个程序集,也就是说,在C#编译器会生成一个包含清单的托管模块。该清单显示,程序集只是一个文件集合。因此,对于一个只有托管模块而没有资源(或数据)文件的项目,程序集就是托管模块。如果你想将一组文件添加到程序集,您必须知道更多的工具(比如程序集连接器,AL.exe)及其命令行操作。我会在第二章对这些工具和操作进行介绍。
程序集可以让您分离可复用、安全、版本控制的组件的逻辑和物理概念。你如何划分代码和资源完全取决于你。例如,你可以把那些很少使用的类型或资源放到一个单独的程序集中。当有需求时,这个单独的文件都可以从网站上下载。如果文件没有必要,他们永远都不会下载,节省磁盘空间,减少安装时间。程序集同样允许你打破了文件的部署,但仍把所有文件当作一个集。
程序集的模块还包括有关程序集引用的信息(包括它们的版本号信息)。这一信息使程序集能够自我描述。换句话说,在CLR可确定程序集的直接依赖关系来保证程序集中的代码能够执行。不需要通过注册或者是在ADDS添加信息,正因为这样,部署程序集比部署非托管组件要容易的多。
周靖的blog:
http://transbot.blog.163.com/可以下载几百页中文翻译稿
china-pub的预定:
http://www.china-pub.com/196978
本来想就这样结束吧,但是开始了还是继续吧。学技术的同时学习英文,从英文翻译到中文每个词都要斟酌的,虽然速度慢下来,不像直接看中文一目n行,但是加深了我对作者意思的理解,对自己也是有好处的。所以继续下去,也谢谢kinetics给我提供了一个参考的地方。
[b]-----------------------------------------------------------------------------------[/b]
[b]1.2Combining Managed Modules into Assemblies 将托管模块组合到集[/b]
在CLR实际上并不是作用于模块(modules),而是作用于程序集(assembly)。程序集是一个抽象的概念,初学者可能难以把握。第一,程序集是由一个或多个模块或资源文件组成的。第二,集是可再利用,安全的,拥有版本的最小单位。根据您对编译器或工具的选择,你可以产生一个单文件或多文件程序集。 CLR中的世界,程序集就是我们常说的组件(component)。
在第二章中,我会很详细的介绍集(assembly),所以我就不在这里复述了。我现在想要做的就是让你知道,就是它还提供了一种将一组文件当作一个实体的方式。
图1-2集应有助于解释什么是程序集。在这幅图中,一些托管模块和资源(或数据)文件正在被一个工具处理。此工具生成一个单一的PE32(+)文件,表示文件的逻辑分组。PE32(+)文件包含一个称为清单的数据块。清单是一个简单的元数据表的集合。这些表描述了组成集的文件、由程序集里的文件实现的公共导出类型、以及与该程序集关联的数据文件和资源。
默认情况下,编译器实际上做的工作是将生成的托管模块转化成一个程序集,也就是说,在C#编译器会生成一个包含清单的托管模块。该清单显示,程序集只是一个文件集合。因此,对于一个只有托管模块而没有资源(或数据)文件的项目,程序集就是托管模块。如果你想将一组文件添加到程序集,您必须知道更多的工具(比如程序集连接器,AL.exe)及其命令行操作。我会在第二章对这些工具和操作进行介绍。
程序集可以让您分离可复用、安全、版本控制的组件的逻辑和物理概念。你如何划分代码和资源完全取决于你。例如,你可以把那些很少使用的类型或资源放到一个单独的程序集中。当有需求时,这个单独的文件都可以从网站上下载。如果文件没有必要,他们永远都不会下载,节省磁盘空间,减少安装时间。程序集同样允许你打破了文件的部署,但仍把所有文件当作一个集。
程序集的模块还包括有关程序集引用的信息(包括它们的版本号信息)。这一信息使程序集能够自我描述。换句话说,在CLR可确定程序集的直接依赖关系来保证程序集中的代码能够执行。不需要通过注册或者是在ADDS添加信息,正因为这样,部署程序集比部署非托管组件要容易的多。
相关文章推荐
- CLR_via_C#.3rd 翻译[1.1将源文件编译为托管模块]
- CLR via C# 3 读书笔记(2):第1章 CLR执行模型 — 1.2 将托管模块组合为程序集
- [CLR via C#]1.2 将托管模块合并成程序集
- [CLR via C#]1.2 将托管模块合并成程序集
- CLR_via_C#.3rd 翻译[1.6 框架类库]
- CLR_via_C#.3rd 翻译[1.8 通用语言规范]
- CLR_via_C#.3rd 翻译[25.4 CPU趋势 ]
- CLR via C# 3 读书笔记(13):第2章 生成、打包、部署和管理应用程序与类型 — 2.4 将模块组合为程序集(下)
- CLR via C# FOURTH EDITION (二) 将托管模块合并成程序集
- CLR_via_C#.3rd 翻译(OneDayOnePiece)
- CLR_via_C#.3rd 翻译[1.3加载CLR]
- CLR_via_C#.3rd 翻译[1.4执行程序集代码]
- CLR_via_C#.3rd 翻译[1.9 与非托管代码的操作]
- CLR_via_C#.3rd 翻译[25.3 停止疯狂 ]
- CLR_via_C#.3rd 翻译[25.1 为什么Windows支持线程]
- CLR via C# FOURTH EDITION(一)将源代码编译成托管模块
- CLR via C# 3 读书笔记(12):第2章 生成、打包、部署和管理应用程序与类型 — 2.4 将模块组合为程序集(上)
- CLR_via_C#.3rd 翻译[25.6 CLR线程和windows线程]
- CLR via C# 3 读书笔记(1):第1章 CLR执行模型 — 1.1 将源代码编译为托管模块