Welcome

首页 / 软件开发 / C# / .NET结构

.NET结构2007-09-09 本站 .NET包括四个组成部分:

●VOS类型系统

●元数据

●公用语言规范

●虚拟执行系统

下面分别对它们进行简要介绍。

2.1.1、虚拟对象系统

.NET跨语言集成的特性来自于虚拟对象系统(VOS)的支持。

在不同语言间进行代码复用和应用集成中所遇到的最大的问题,是不同语言类型系统间的相容性问题。可以想象,不同的语言虽然语法结构大体相同,但数据类型与语言环境本身的各种特点联系紧密,很难想象一种解释性的语言所拥有的数据类型会与一种编译语言相同,而即使相同的数据类型在不同的语言环境中表示的意义也存在差别。例如,同样是整数类型,在MSSQL中的长度是32位,而在VB中却是16位,至于日期时间与字符串类型在这方面的区别就更加明显了。

VOS的建立就是为了改变这种状况。它既支持过程性语言也支持面向对象的语言,同时提供了一个类型丰富的系统来容纳它支持的各种语言的特性。它在最大程度上屏蔽了不同语言类型系统间的转换,使程序员能够随心所欲地选择自己喜欢的语言(当然,这种语言必须支持.NET应用)从事开发,保证了不同语言间的集成。

对于过程性语言,它描述了值的类型并指定了类型的所有值必须遵守的规则;在面向对象语言方面,它统一了不同编程语言的对象模型。每一个对象在VOS中都被唯一标识以与其它对象相区别。

2.1.2、元数据

元数据是对VOS中类型描述代码的一种称呼。在编译程序将源代码转换为中间代码时,它将自动生成,并与编译后的源代码共同包含在二进制代码文件中。元数据携带了源代码中类型信息的描述,这在一定程度上解决了版本问题:程序使用的类型描述与自身绑定在一起。

在CLR定位与装载类型时,通过读取并解析元数据来获得应用程序中的类型信息,JIT编译器获得加载的类型信息后,将中间语言代码翻译成为本地代码,在此基础上根据程序或用户要求建立类型的实例。由于整个过程中,CLR始终根据元数据建立并管理对应特定应用程序的类型,从而保证了类型安全性。

此外,元数据在解决方法的调用,建立运行期上下文界限等方面都有自己的作用。而关于元数据的一切都由.NET在后台完成。

2.1.3、公用语言规范

公用语言规范(Common Language Specification,CLS),是CLR定义的语言特性集合,主要用来解决互操作的问题。如果一个类遵守CLS,那么同样遵守CLS规范的其它编程语言将能够使用它的外部可见项。详细的介绍见本章第二节。

2.1.4、虚拟执行系统

虚拟执行系统(Visual Execution System,VES)是VOS的实现,它用来驱动运行环境。元数据的生成与使用、公用语言规范的满足性检查以及应用程序执行过程中的内存管理均由它来完成。具体来说,VES主要完成以下功能:

●装入中间代码

●使用JIT将中间代码转换为本地码。

●装入元数据。

●代码管理服务--包括垃圾收集器和异常处理。

●定制与调试服务。

●线程和环境管理。