.NET Framework是Microsoft为开发应用程序而创建的一个具有革命意义的平台。

  • 跨平台的
  • 没有限制应用程序的类型:可以使用.NET Framework创建桌面应用程序、Windows Store应用程序、云/Web应用程序、Web API和其它各种类型的应用程序。
  • 可用于各种语言:C# C++ Visual Basic Jscript等

.NET Framework的内容

 编译应用程序时,所创建的CIL代码存储在一个程序集中。

程序集 = 可执行的应用程序文件 + 其它应用程序使用的库

                (扩展名.exe 可直接在windows上运行) (扩展名.dll)

除了CIL外,程序集还包含元信息,和可选的资源(CIL使用的其它数据,如声音文件图片等)

元信息:程序集中包含的数据的信息,也称为元数据

 全局程序集缓存 Global Assembly Cache  ,GAC

通用中间语言 Common Intermediate Language , CIL

Just-In-Time JIT

CTS 公共类型系统

CLR 公共语言运行库

 在将代码编译为CIL后,再用JIT编译器将它编译为本机代码,然后还需要管理正在执行的代码(runtime)

在C#中,只能编写在托管环境下运行的代码。我们使用CLR的托管功能,让.NET处理与操作系统的任何交互。

CLR管理着应用程序,其方式是管理内存、处理安全性以及允许进行跨语言调试等。

代码托管最重要的一个功能是垃圾回收

.NET垃圾回收会定期检查计算机内存,从中删除不在需要的内容。执行垃圾回收的时间并不固定。

 创建.NET应用程序的步骤:

  1. 使用某种.NET兼容语言编写那些应用程序
  2. 把代码编译为CIL,存储在程序集中
  3. 在执行代码时(如果是一个可执行文件,就自动运行,或是在其它代码使用它时运行),首先必须使用JIT编译器将代码编译为本机代码。
  4. 在托管的CLR环境下运行本机代码,以及其它应用程序或进程