MFC(Microsoft Foundation Class,微软基础类库)
微软公司提供的一个类库,以 C++ 类的形式封装了 Windows 的 API,并包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量 Windows 句柄封装类和很多 Windows 的内建控件和组件的封装类。
COM(Component Object Model,组件对象模型)
基于 Windows 平台的一套组件对象接口标准,由一组构造规范和组件对象库组成。组件对象不使用方法而用接口来描述自身。
.NET 框架的特点:
如图 1.1 所示。
CLR(Common Language Runtime,公共语言运行库)
在运行时管理程序的执行,主要内容有
BCL(Base Class Library,基类库)
是 .NET 框架使用的一个大类库,可以在程序中使用。
面向对象的开发环境
CLR、BCL 和 C# 完全面向对象,形成良好的集成环境。
自动垃圾收集
GC(Garbage Collector,垃圾收集器)
自动管理内存,删除程序不在访问的对象。
互操作性
简化的部署
类型安全性
CLR 检查并确保参数及其他数据对象的类型安全。
基类库
.NET 框架提供庞大的基础类库(BCL),有时也称为 FCL(Framework Class Library,框架类库)。
.NET 语言的编译器接受源代码,生成名为程序集的输出文件,如图 1.2 所示。
CIL(Common Intermediate Language,公共中间语言)
即程序集里的代码,不是本机代码。
程序集包含如下信息:
程序集的 CIL 直到被调用运行时才会被编译成本机代码,运行时执行的步骤如图 1.3 所示。
程序集中的可执行代码只在需要的时候由 JIT 编译,之后被缓存起来以备后续使用。一旦 CIL 被编译为本机代码,CLR 就在它运行时进行管理,如释放无主内存、检查数组边界、检查参数类型和管理异常等。
托管代码:由 .NET 框架编写的代码,需要 CLR。
非托管代码:不在 CLR 控制之下运行的代码,如 C/C++、DLL。
CLR 是 .NET 框架的核心组件,位于操作系统的顶层,管理程序的执行,如图 1.5 所示。
CLI(Common Language Infrastructure,公共语言基础结构)
一组 .NET 标准,将 .NET 框架的所有组件连接成一个内聚、一致的系统,详细说明了所有软件都必须遵守的规则和约定,如图 1.6 所示。
CTS(Common Type System,公共类型系统)
定义了在托管代码中一定会使用的类型的特征,如
CLS(Common Language Specification,公共语言规范)
详细说明了 .NET 兼容编程语言的规则、属性和行为,包括数据类型、类结构和参数传递。