几个重要概念
1. .NET框架
.net框架不仅仅是一组类库。它以使用多种语言的编译器为目标,并负责为这些语言创建的程序提供一个共享的基础平台。该平台包括公共语言运行库。
2. 公共语言运行库(Common Language Runtime)
CLR的任务是管理和执行为.NET框架编写的代码。运行于CLR上的代码称之为托管代码(managed code)。CLR负责监视代码执行的各个方面,包括:
1> 确定加载代码时间,管理对象在内存中的布局。
2> 处理managed code的内存需求。
3> 确保代码的类型安全。
4> 使用基于异常的公共错误处理框架来处理和传播managed code中的错误。
5> 维护运行库和应用程序的安全。有2个方面:
代码访问安全:保证代码在安全的上下文中执行
基于角色安全:控制对系统资源的访问。
3.程序集(assembly)
程序集是重用,版本控制和.NET平台部署的单元。由两个部分组成:
1> 中间语言(Intermediate Language,IL)。包含了程序的可执行部分。不可直接执行。
2> 元数据(Metadata)。描述了程序集的内容。实现自描述。
4.其他概念
私有程序集:仅有单个应用程序使用。
共享程序集:由多个应用程序共享。可置于全局程序集缓存中。全局程序集缓存使用工具(Assembly Cache Utility)--gacutil.exe。共享程序集必须是强命名程序集(strong-named assembly)。其标识由以下4个部分组成:
程序集名称,程序集版本号,唯一标识程序集创建者的一对公/私密钥,用于本地化的语言标识(可选)。
实时编译:Just-in-time Compilation,简称jitting。各方法的代码只在需要的时候才编译。比解释执行快。
预实时编译:prejit。使用本机映象生成器(Native Image Generator,即 ngen.exe eg:egen hello.exe)把程序集编译成专用处理器可直接执行的代码。