.NET的定义
.NET技术是微软公司推出的一个全新概念,“它代表了一个集合、一个环境和一个可以作为平台支持下一代Internet有可编程结构。”.NET的最终目标就是让用户在任何地方、任何时间,以及利用任何设备都能访问所需的信息、文件和程序。
.NET开发平台
.NET开发平台包括.NET框架和.NET开发工具等组成部分。
- .NET框架(Framework)是整个开发平台的基础,包括公共语言运行库(CLR)和框架类库。
- .NET开发工具包括Visual Studio.NET集成开发环境和.NET编程语言。
.NET Framework 结构
- VB/C++/C#/j#开发语言及公共语言规范层(CLS)
- ASP.NET与UI层:WEB窗体和Windows窗体
- ADO.NET与XML层:数据访问服务。所有的.NET配置文件都以XML为基础。
- 基类库(BCL,Base Class Library),定义所有的基本数据类型,还包含用于管理.NET核心特性(如文件,线程处理,串行化和安全性)的类。
- 公用语言运行库(CLR):负责.NET基础服务,如内存管理、垃圾回收、结构化异常处理,以及多线程等。
- 操作系统层:Windows API和COM+服务
托管与非托管代码
托管代码:运行在公共语言运行时 CLR 之上的代码;unsafe 代码(例如指针)是非托管代码。
程序集:就是指经由编译器编译得到的,在 CLR 支持下编译执行的代码。如项目编译后得到的 dll、exe 文件。
.NET语言默认生成的都是托管代码,这种代码在运行库的控制之下运行;
- . NET编译生成的可执行文件是一种托管代码,称为微软中间语言(MSIL,MicroSoft Intermediate Language),可以“一次编写,随处运行”,前提是有框架的支持。是独立于CPU的指令集,它可以被高效地转换为特定于某种CPU的指令。
- 基于Linux的mono项目。
CTS、CLS、CLR、IL
CTS:通用类型系统、CLS:通用语言规范、CLR:公共语言运行时(库)、IL:中间语言;
GC垃圾收集器(Garbage Collection)
垃圾收集器会自动进行管理,因此程序员不用担心内存管理。GC 只能处理托管内存资源的释放,对于非托管资源则不能使用 GC 进行回收,必须由程序员手工回收,一个例子就是 FileStream 或者 SqlConnection 需要程序员调用 Dispose 进行资源的回收。要请求垃圾收集,可以调用:GC.Collect(),一般不需要手动调用。当一个对象没有任何变量指向(不再能使用)的时候就可以被回收(不一定马上回收)。