(1).NET Framework:
.NET框架。.NET Framework包含类库和CLR。类库分为不同的模块,不同的操作系统可以根据自身的特性支持其中或全部的模块。
(2)CTS(Common Type System):
通用类型系统。CTS是一种能够让CLR确定如何定义、使用和管理类型的规范。类型是数据的一种表达方式,通过指定其中最基础的部分,来使得.NET Framework能够在各种语言之间进行交互操作。CTS确保所有托管代码都是自我描述的。
(3)CIL(Common Intermediate Language):
.NET 编程语言的编译器生成的代码称为通用中间语言,也被称为托管代码。CIL独立于计算机、操作系统和CPU,是一种属于通用语言架构和.NET框架的人类可读的编程语言,这是一组可以有效地转换为本机代码而且独立于CPU的指令。它运行在CLR上,其主要支持地语言有C#、VB .NET 、C++以及J#。
(4)程序集:
在编译应用程序的时候,编译器生成的CIL代码存储在程序集中,程序集包括了可执行的应用程序文件(.exe)和其使用的类库(.dll);除此之外程序集还包含了元信息(数据的信息)和可选的资源文件(CIL使用的其他资源,例如声音文件和图片)。因为程序集是可以自我描述的,所以程序集不需要目标系统的其他信息就可以运行应用程序文件(安装了.NET CLR)。
(5)CLR(Common Language Runtime):
公共语言运行库。CLR包括JIT编译器、垃圾回收、调试器扩展和线程实用工具等。CLR是类似于java虚拟机(JVM)的运行时环境,它负责资源管理,并保证应用和底层操作系统之间必要的分离。CLR的核心功能包括内存管理、程序集加载、安全性、异常处理和线程同步。由CLR监视之下运行的程序属于托管代码,不在CLR监视之下,直接在裸机上运行的应用或组件则属于非托管代码。(C#只能编写运行在CLR的代码)。
(6)JIT编译器(Just-In-Time Compiler):
JIT编译器能够将CIL编译成各种不同地机器代码,以适应对应地系统平台,最终使得程序在目标系统中顺利地运行。
(7)垃圾回收(garbage collection):
托管代码能够在CLR下进行垃圾回收,其确保了应用程序不再使用某些内存时,就会完全释放这些内存。GC会定期检查计算机的内存,从中删除不再需要的内容。GC不设置时间帧,不会按照固定时间间隔进行检查。
(8)调试器扩展:
调试器扩展允许在不同的编程语言之间启动调试会话。例如在Visual Basic 中启动调试会话,在C#库中可以继续调试。
(9)线程实用工具:
线程实用工具负责在底层平台上创建线程。