.NET 框架

它是一个平台,或者说是许多技术的集合,这些技术被整合成单一技术,用于开发功能强大的应用程序。.NET 框架可以作为一个平台,让多种技术/语言协同工作。

框架:.NET 框架实际上是一个软件系统平台,有助于重用预定义的代码。这意味着该框架通过为代码库和多种脚本语言提供支持来鼓励代码的可重用性。

非 .NET 应用程序的执行

为了更好地理解 .NET 框架,让我们比较一下非 .NET 应用程序与 .NET 应用程序的执行过程。

在 C# .NET 框架出现之前,我们曾使用 VB6、VC++ 等来开发应用程序。当这些应用程序执行时,它们各自的编译器会用于生成一个程序集,其扩展名为 .dll 或 .exe,具体取决于应用程序的类型。例如,当一个 Windows 应用程序编译时,我们会得到一个 .exe 文件。然而,当一个 Web 应用程序编译时,它会生成一个 .dll 文件。

在这里,VB6 或 VC++ 编译器的任务是生成一个程序集(即操作系统能理解的语言,也就是 0 和 1)。因为没有相应的编译器,操作系统无法理解高级语言。

没有编译器,我们几乎不可能将高级语言转换为 0 和 1。

这个由编译器生成的程序集代码就是机器码/本机代码。

Dot Net Framework

.NET 应用程序的执行

非 .NET 和 .NET 应用程序执行的主要区别在于,.NET 应用程序的编译器,如 C#、VB 等,会生成中间语言(IL),而不是本机代码。

这种中间语言也称为 MSIL(微软中间语言)/ 托管代码 / CIL(通用中间语言)。

在这里,将中间语言转换为机器码的工作由一个名为 CLR(公共语言运行时)的运行时环境来完成。

当我们在计算机上安装 C# .NET 时,会自动安装两个关键组件。

  1. .NET 框架类库。
  2. 公共语言运行时 (CLR)。

在 CLR 内部,还有另一个组件叫做 JIT 编译器。它将中间语言作为输入,并生成本机代码。

这个 .NET 框架运行时环境的主要优点是其可移植性。如果操作系统是 Windows,那么安装在该操作系统上的运行时环境就适用于 Windows。但如果是 Linux,那么安装在该操作系统上的运行时环境就适用于 Linux 操作系统。它会将中间语言(IL)转换为底层操作系统可以理解的本机代码。

最后,我们可以说,只要任何平台上存在 CLR,.NET 程序就可以在该平台上执行。

运行时环境的另一个重要特性是垃圾回收(自动内存管理)。垃圾回收器通过清除不再使用的对象来限制内存溢出异常。这意味着它会负责内存管理。然而,在 .NET 环境或框架出现之前,我们有内存管理的负担。

分类 C#