1.2.3 从C++(www.cppentry.com)到.NET Framework的CLI
微软于2000年推出的.NET Framework,是支持快速开发、部署网站服务及应用程序的开发平台。这个框架有两个目标:第一个目标是提高Windows操作系统平台应用程序的开发效率,特别是改善组件对象模型(Component Object Model,COM)的开发;第二个目标是提供支持发展软件服务(software service)的开发平台。
为了使C++(www.cppentry.com)应对新的开发趋势,在这个面向未来的开发平台上占有一席之地,微软把C++(www.cppentry.com)改造成.NET Framework中的C++(www.cppentry.com)/CLI(Common Language Infrastructure,公共语言结构),代替C++(www.cppentry.com)托管扩展,从而允许大量熟悉C++(www.cppentry.com)的开发人员可以继续在.NET Framework平台上开发C++(www.cppentry.com)应用。
这门语言在兼容原有的C++(www.cppentry.com)标准的同时,简化了托管代码扩展的语法,提供了更好的代码可读性和易用性。微软向ECMA提交了C++(www.cppentry.com)/CLI的标准化请求,使其通过ECMA成为正式的标准。C++(www.cppentry.com)/CLI现在可以被Visual C++(www.cppentry.com) 2005和更高版本的编译器支持。C++(www.cppentry.com)/CLI的部分特性已经申请了专利。
到底什么是C++(www.cppentry.com)/CLI?它跟传统的C++(www.cppentry.com)又有什么不同呢?
CLI指的是通用语言结构,一种支持动态组件编程(www.cppentry.com)模型的多重结构。在整个CLI中,最重要的是公共语言运行时(Common Language Runtime,CLR),它负责管理微软中间语言(Microsoft Intermediate Language,MSIL)代码的运行环境。CLR位于CLI的下半部分(如图1-1所示),主要包括类加载器(class loader)、实时编译器(IL to native compilers)和一个运行时环境的垃圾收集器(garbage collector)。CLI运行在底层操作系统与程序之间,为MSIL代码提供运行的环境,这使得CLI成为一个实时的软件层、一个有效的执行系统。可以将任何语言编写的代码通过特定的编译器转换为MSIL代码,然后在CLI上运行。
|
| 图1-1 C++(www.cppentry.com)/CLI的结构 |
