.NET FrameWork是用于Windows的新托管代码编程模型,它包含CLR(Common Language Runtime)以及BCL(Base CLass Library)构成。
一、CLR
1、CLR是什么?
Common Language Runtime公共语言运行时和JVM(Java Virtual Machine,Java虚拟机实现了Java的与平台无关的特性,它屏蔽了平台的具体信息,只需生成在Java虚拟机上运行的目标代码就可以在任何平台上都可以运行。一次编译,到处运行)一样,是运行环境。
2、用来做什么?
CLR主要负责资源管理,例如内存管理,垃圾收集处理,以保证应用和底层操作系统之间必要的分离。
3、如何对代码进行管理
a. 选择编译器
b. 将托管代码(在CLR监视下运行程序的代码)编译为MSIL(Microsoft Intermediate Language微软中间语言),在产生MMSIL的同时产生元数据(Metadata,描述数据的语言,主要描述数据类型定义,代码引用等)共同包含在一个可移植的可执行PE(Portable Executable)文件中。
c. CLR自带的JIT编译器将MSIL编译成机器语言,JIT可以检测代码的安全性。
d. 执行代码,只需首次调用编译。
4、有点
CLR最重要的特性是:跨语言,也就是说用VB.NET写的类,可以被C#类继承。
二、BCL
1、BCL是什么?
Base Class Library基础类库,是一个公共编程框架,所有语言的开发者都可以利用它,是CLI(Common Language Infrastructure公共语言基础结构)的规范之一。主要包括:执行网络操作、执行I/O操作、安全管理、文本操作、数据库管理、XML操作、与事件日志交互、跟踪和一些诊断操作,使用非托管代码,创建与调用动态代码等。
2、有什么用?
a. 提供开发各种解决方案所需物件,加快开发解决方案的速度;
b. 将各种解决方案模型一致化。
c. 在.NET平台中开发小组可以使用不同语言。
3、组成
BCL基类库,包含数据库类别(ADO.NET)、Windows类别、XML类别、图形类别(GDI+)系统类别、以及ASP.NET类别等。
三、DLL
1、DLL
Dynamic Link Library,动态链接库,也称为元件,CLR与BCL都是由元件构成的。当我们执行.EXE文件的时候,相应的DLL文件也会被调用,一个程序被分割成多个独立的动态链接库,或者一个DLL文件也可以被多个应用程序共享。
2、DLL文件的作用
如果所有文件都放到程序里,那样应用程序就会很大,所占用的磁盘空间也会很大,重建时还需编译所有代码。而DLL文件就不同了,可以将程序模块创建独立的DLL文件,只有调用的时候,才会占用内存空间。