学C++编程也这么长时间了,有几个概念一直混淆不清,今天总算理解了个大概,这里和大家分享一下
.NET Framework: 主要由两个部分组成CLR(Common Language Runtime)公共语言运行时 和 .NET Framework类库,.NET Framework实际上不是Visual Studio的组件,而是Windows系统的组件
CLR标准化的程序执行环境,也就是CLI(Common Language Infrature 通用语言基础结构)这套标准的一个实现。在该实现中可以使用各种高级语言(如:C++、C#、VB等)进行编程,CLR使得编写出来的程序可以在不同系统环境中执行而不需要对程序进行修改或重新编译。
CLI本质上是一种虚拟机环境规范,咋CLI中定义了一种供虚拟机使用的标准中间语言,高级语言编写的程序将被编译成这种语言,在.NET Framework中,这种语言被称为MSIL(Microsoft Intermediate Language,Microsoft 中间语言)。执行程序时中间语言由JIT(实时,just-in-time)编译器映射为机器代码。
在CLI中还定义了CTS(Common Type System 通用类型系统),使用任何针对CLI实现的编程语言编写程序时都应该使用该类型系统,CTS定义了在CLR中使用数据类型的方式,还包括了一套预定义的类型,同时也可以自定义类型。
CLR大大增强了数据的安全性和程序的可靠性,部分原因是因为完全自动的动态分配、释放供数据使用的内存。
总的来说,CLI是一套标准,CLR就是Microsoft针对这套标准的一个实现,该实现也是.NET Framework的一个重要组成部分