.NET平台

一、CIL(Common Intermediate Language)----公共中间语言

1.1 公共

  因为不论C#语音也好,VB.NET语言也好,C++/CLI语言也好,甚至是重新开发一套以自己名字缩写命名的语言,只要他期望运行的目标平台是.net,在经过相应的编译器编译之后,所生成的程序集就是由CIL语言代码描述的。

1.2 中间

  因为这种语言只是比我们使用的高级语言,比如C#低一级,并不是CPU刻意直接执行的本地机器语言。这种语言还需要.NET运行时环境的支持,在执行之前,进行一个just-in-time(即时)的二次编译过程,才能转变成计算机可以识别的指令。

1.3 语言

  CIL不过是一种程序语言,相对于C#来说,它是一种更低级的语言。他是一种面向对象的语言。

由于程序集是由CIL语言所描述的,因此CIL也叫作程序集语言,又因为.NET程序集需要由.NET运行时加载才能运行,可以视其为.NET运行时进行管理的,所以CIL代码也叫作托管代码。相对的,不需要.NET运行时就可以执行的代码就叫做非托管代码。

二、BCL(Base Class Library)----基类库

  这个类库中包含的都是些最基本的类型,其本身已经和CIL语言融为一体了,为CIL语言提供基础的编程支持。

  string在Visula Studio中以深蓝色呈现,属于C#关键字,他是BCL中System.String类型的一个别名。这些由编译器直接支持,将语言本身的关键字类型转换为CIL类型的,就叫做基元类型。比如byte、int、string都是基元类型。

三、FCL(Framework Class Library)----框架类库

  BCL是FCL的一个子集。BCL中包含了与编译器及CIL语言关系紧密的核心类型,以及常见开发任务中都会使用到的类型。

  从功能上可以分为以下几层:

  • 最内一层,由BCL的大部分组成,主要作用是对.NET框架、.NET运行时及CIL语言本身进行支持,例如基元类型、集合类型、线程处理、应用程序域、运行时、安全性、互操作等。
  • 中间一层,包含了对操作系统功能的封装,例如文件系统、网络连接、图形图像、XML操作等。
  • 最外一层,包含各种类型的应用程序,例如Windows Form、Asp.NET、WPF、WCF、WF等

四、CTS(Common Type System)----公共类型系统

  要开发一套新语言,实际要做什么并不是由新语言决定的,而是由CIL来决定的。因此,需要一套CIL的定义、规则或标准。这套规则定义了我们的语言可以做什么,不可以做什么,具有哪些特性。这套规则就成为CTS。任何满足了这套规则的高级语言就可以成为面向.NET框架的语言。C#和VB.NET不过是微软自己开发了一套符合CTS的语言。

  CTS规定了可以在语言中定义诸如类、结构、委托等类型。规范了类型中可以包含字段、属性、方法、事件。规定了各种访问性。定义了一些约束。

  由于CIL是.NET运行时所能理解的语言,因此他实现了CTS的全部功能。虽然他是一种低级语言,但是实际上,他所具有的功能更加完整。

五、CLS(Common Language Specification)----公共语言规范

  CLS是CTS的一个子集,定义了一些常见的、大多数语言都共有的语言特性。

六、CLR(Common Language Runtime)----公共语言运行时

  CLR是一个软件层活代理,他管理了.NET程序集的执行,主要包括管理应用程序域、加载和运行程序集、安全检查、将CIL代码即时编译为机器代码、一场处理、对象析构和垃圾回收等。相对于编译时,这些过程发生在程序运行的过程中。

posted @ 2016-04-30 00:34  Leo的日记本  阅读(221)  评论(0编辑  收藏  举报