您的位置:首页 > 编程语言 > C#

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添加信息,正因为这样,部署程序集比部署非托管组件要容易的多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: