首先 咱们来理解这个几个相关概念。php
一、什么是.NET框架?web
.NET框架(.NET Framework) 是由微软开发,一个致力于敏捷软件开发(Agile software development)、快速应用开发(Rapid application development)、平台无关性和网络透明化的软件开发平台。.NET是微软为下一个十年对服务器和桌面型软件工程迈出的第一步。NET包含许多有助于互联网和内部网应用迅捷开发的技术。编程
.NET框架是微软公司继Windows DNA以后的新开发平台。.NET框架是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种语言(C#、VB.NET、C++、Python等)的开发。api
.NET也为应用程序接口(API)提供了新功能和开发工具。这些革新使得程序设计员能够同时进行Windows应用软件和网络应用软件以及组件和服务(web服务)的开发。.NET提供了一个新的反射性的且面向对象程序设计编程接口。.NET设计得足够通用化从而使许多不一样高级语言都得以被聚集。安全
二、什么是通用语言架构?服务器
通用语言基础架构(Common Language Infrastructure,简称CLI)是一个开放的技术规范。它是由微软联合惠普以及英特尔于2000年向ECMA倡议的。通用语言基础架构定义了构成.NET Framework基础结构的可执行码以及代码的运行时环境的规范,它定义了一个语言无关的跨体系结构的运行环境,这使得开发者能够用规范内定义的各类高级语言来开发软件,而且无需修正便可将软件运行在不一样的计算机体系结构上。网络
CLI有时候会和CLR混用。但严格意义上说,这是错误的。由于CLI是一种规范,而CLR则是对这种规范的一个实现。架构
CLI标准包包含如下更详细的规范app
适合CLI规范的程序都是编译成通用中间语言,以后在执行过程当中被虚拟执行系统的即时编译技术编译为机器码从而执行。框架
三、什么是通用语言运行库?
通用语言运行平台(Common Language Runtime,简称CLR)是微软为他们的.NET的虚拟机所选用的名称。这是通用语言架构(简称CLI)的微软实现版本,它定义了一个代码运行的环境。CLR运行一种称为通用中间语言的字节码,这个是微软的通用中间语言实现版本。
CLR的主要功能以下
开发人员使用高级编程语言撰写程序。接下来编译器将代码编译成微软的中继语言(MSIL)。运行的时候CLR会将MSIL码转换为操做系统的原生码(Native code)。CLR自带有实时编译)编译器。
CLR运行在微软的视窗操做系统上。查看通用语言架构能够找到该规格的实现版本列表。其中有一些版本是运行在非Windows的操做系统中。
四、什么是微软中间语言?
通用中间语言(Common Intermediate Language,简称CIL,发音为"sill"或"kill")是一种属于通用语言架构和.NET框架的低阶(lowest-level)的人类可读的编程语言。目标为.NET 框架的语言被编译成CIL,而后汇编成字节码。CIL相似一个面向对象的汇编语言,而且它是彻底基于堆栈的。它运行在虚拟机上,其主要的语言有C#、Visual Basic .NET、C++/CLI以及 J♯。
在.NET语言的测试版中,CIL本来叫作微软中间语言,即Microsoft Intermediate Language,简称MSIL。因为C#和通用语言架构的标准化,在.Net开发平台下,全部语言(C#、VB.NET、J#、Managed C++)都会被编译为MSIL,再由CLR负责运行,字节码如今已经官方地成为了CIL。所以,CIL仍旧常常与MSIL相提并论,特别是那些.NET语言的老用户。