1.将源代码编译成托管模块
托管模块是一个标准的 windows可移植可执行(PE)文件。该文件需要CLR才能执行,最终用户必须在字迹的机器上安装CLR。
托管模块的组成部分:PE标头,CLR标头,元数据,中间语言IL代码。
其中,元数据包含两种主要类型的表:描述在源代码中定义的类型和成员的表,描述源代码引用的类型和成员的表。其作用:
1) 元数据在编译时不需要头和库文件。编译器可直接同托管模块中读取元数据
2) 使用编辑器的intellisence功能分析元数据
2. 将托管模块组合为程序集
程序集是一个或多个托管模块或资源文件的逻辑分组。
3. 加载公共语言运行库CLR
可以在System32目录下查找MSCoreEE.dll文件,来判断是否已经安装了.net框架。
4. 执行程序集代码
JIT编译器将IL编译成CPU指令。
CLR提供了一个在OS进程中执行多个托管应用程序的功能,称为AppDomain。
5. 公共语言规范CLS
CLS定义了所有语言必须支持的最小特性集。
在代码中,让编译器检查CLS兼容性
[assembly:CLSCompliant(true)]
6. 非托管代码的
1) 托管代码可以调用DLL中的非托管函数,基于P/Invoke平台机制
2)托管代码可以使用现有的COM组件