background image

4.公共语言运行库(CRL)

公共语言运行库是

Microsoft .NET Framework 的基础内容,也是 Microsoft .NET

程序的运行环境,用于执行和管理任何一种针对

Microsoft .NET 平台的所有代码。CLR 可

以为应用程序提供很多核心服务,如内存管理、线程管理和远程处理等,并且还强制实施代
码的安全性和可靠性管理。

下面简要介绍

Microsoft .NET 框架的一些核心技术特点,以便读者能够更深入地了

 C# 程序后台运行的原理。

(1) 多语言支持。在 Microsoft .NET 平台上,所有的语言都是等价的,它们都是基于

公共语言运行库

(CLR)的运行环境进行编译运行。所有 Microsoft .NET 支持的语言,不管

Visual Basic .NET 、Visual C++、C# 还是 Jscript .NET,都是平等的。用这种语言编

写的代码都被编译成一种中间代码,在公共语言运行库中运行。在技术上这种语言与其他语
言相比没有很大的区别,用户可以根据自己熟悉的编程语言进行操作。在本书中使用

 C# 

进行编程,因为

C# 是一种优秀的程序开发语言,它简洁、高效且便于使用。主要用于

Microsoft .NET 框架中面向组件的领域。

(2) 多平台支持。Microsoft .NET 框架的另一个重要特点就是多平台支持。不过相对于 

Java 技术能够跨越 UNIX、Linux 和 Windows 等众多平台,目前 Microsoft .NET 的跨平
台性仅限于各种

 Windows 操作系统,如 Windows 95/98、Windows NT、Windows 

2000 和 Windows XP 等。

(3) 性能。Microsoft .NET 的基本设计目标之一就是具有强大的性能和可伸缩性。对于 

Microsoft .NET 来说,要具备很好的性能要靠公共语言运行库来执行中间代码。为了确保
最佳性能,在某种意义上公共语言运行库将所有引用程序代码都编译成本机代码。这种转换
既可以在应用程序运行时完成,也可以在应用程序首次安装时完成。

  

有了公共语言运行库,就可以很容易地设计出对象能够跨语言交互的组件和应用程序。

也就是说,用不同语言编写的对象可以互相通信,并且它们的行为可以紧密集成。例如,可
以定义一个类,然后使用不同的语言从原始类派生出另一个类或调用原始类的方法。还可以
将一个类的实例传递到用不同的语言编写的另一个类的方法。这种跨语言集成之所以成为可
能,是因为基于公共语言运行库的语言编译器和工具使用由公共语言运行库定义的通用类
型系统,而且它们遵循公共语言运行库关于定义新类型以及创建、使用、保持和绑定到类型
的规则。图

1.32 列出了各种程序与 CLR 之间的关系。