CLR

1.元数据  每个托管模块都包含元数据,主要有两种类型的表   1.描述源代码中定义的类型和成员   2.描述源代码引用的类型和成员 2.CLR头  包含使这个模块成为一个托管模块的信息  (可由CLR和一些实用程序进行解释)  头中包含 CLR版本,一些flag,托管模块入口方法(Main方

法)  的元数据,以及模块的元数据等

3.托管模块:源代码使用编译器编译后生成的IL代码和元数据          可以称作托管模块

4.元数据允许将一个对象的字段序列化到一个内存块中,    将其发送给另一台机器,然后反序列化,在远程机器上    重建对象的状态

5程序集:  程序集是一个或多个模块/资源文件的逻辑性分组.  程序集是重用,安全性以及版本控制的最小单元  在CLR世界中,程序集相当于一个组件.

6.响应文件  一个文本文件,其中包含一组编译器命令行开关.  执行csc.exe时,编译器会打开响应文件,并使用其中包含

的任何开关

7.一个托管PE文件(可移植执行文件)构成  PE32(+)头 :windows要求的标准信息  CLR头 : 小的信息块,是那些需要CLR的模块所特有的    CLR头中还包含模块内部的特定元数据

表的大小和偏移量  元数据 : 二进制数据块,由几个表构成        定义表   引用表   清单表  IL  :   中间代码

8. 编译器编译源代码时,代码定义的任何一样东西都会导致在某个

表中 创建一个记录项. (模块记录项,类型记录项..方法,字段,属性,参

数,事件...) 编译器还会检测源代码中引用的类型,字段,方法,属性和事件,并创

建 对应的元数据表记录项  在创建的元数据中,包含一组引用表,记录了所引用的内容

9.程序集:  一个或多个类型定义文件及资源文件的集合.  程序集中有一个文件容纳了清单  清单也是一组元数据表的集合,表中包含了作为程序集的

组成部分的那些文件的名称  此外还描述了程序集的版本,语言文化,发布者.

10重要提示:    总之,程序集是进行重用、版本控制和应用安全性设置的一个

基本单元。它允许将类型和资源文件划 分到单独的文件中。这样一来,无论你自己,还是你的程序集的用

户,都可以决定打包和部署哪些文件。 一旦CLR 加载包含了清单的那个文件,就可以确定在程序集的其他

文件中,具体是哪一些文件包含应用程 序引用的类型和资源。对于程序集的用户来说(其他开发人员),

他们只需知道含有清单的那个文件的名称。 这样一来,文件的具体划分方式在程序集的用户面前就是完全透明

的,以后可以自由地更改,不会干扰应 用程序的行为。    假如多个类型能共享相同的版本号和安全性设置,建议将所有

这些类型都放到一个文件中,而不要将 这些类型分散到多个文件中,更不要分散到多个程序集中。这是出

于对性能的考虑。每次加载一个文件或 程序集时,CLR 和Windows 都要花费一定的时间来查找、加载并初

始化程序集。需要加载的文件/程序集的 数量越少,性能越好,因为加载较少的程序集有助于减小工作集

(working set),并缓解进程地址空间的碎 片化。最后,nGen.exe 在处理较大的文件时,可以进行更好的优

化。

11.命名空间: 用于对相关的类型进行逻辑性分组,开发人员使用命

名空间来方便定位一个类型

12.

posted @ 2012-07-09 21:06  zxp19880910  阅读(171)  评论(0编辑  收藏  举报