一、.NET Framework是一种技术平台
Microsoft .NET Framework是为开发应用程序而创建的一个技术平台。.NET Framework这个技术框架可以作为集成各种操作系统的方式。.NET Framework可以创建 windows应用程序,web应用程序和web服务,以及其他应用程序。它的设计保证了它可以使用多种语言,C#、F#、C++、VB、JavaScript等,彼此间还可以相互交互。
.NET Framework没有限制应用程序的类型,使用C#可以编写windows应用程序,web应用程序和web服务等。同时,需要某种形式的数据库访问,这可以通过.NET Framework的Active Data Object.NET(ADO.NET)部分或C#的LINQ新功能来实现。
二、.NET Framework有一个庞大的代码库
.NET Framework主要包含一个非常庞大的代码库,可以在客户语言(指开发人员采用的计算机编程语言,如C#,C++等)中通过面向对象编程技术来使用这些代码。这个代码块分为不同的模块,用户可以根据需要(例如编写网络程序就选择网络编程的代码模块,windows程序的就选择相应的模块代码等)部分。.NET Framework库定义了一些基本的数据类型,以便使用.NET Framework在各种语言之间进行交互操作,这称为通用类型系统(CTS)。除了支持这个库外,.NET Framework还包含.NET 公共语言运行库(Common Language RunTime CLR),它负责管理用.NET 库开发的所有应用程序的执行。
使用.NET Framework编写应用程序,就是用.NET代码库编写代码。VS和VCE是两个集成的开发环境,VS支持C#、C++和VB等;VCE是VS的一个删节版本,仅支持C#。为了执行C#代码,必须把它们转换成目标操作系统都能够理解的语言,即机器代码,这种转换成为编译代码,由编译器执行。在.NET Framework下,编译代码有两个阶段(MSIL和JIT)。先将源代码编译为Microsoft中间语言(Microsoft Intermediate Language,MSIL)代码,这些代码不专用于任何一种操作系统,也不专用于C#。接着,Just-In-Time(JIT)编译器将MSIL编译为专用于OS和目标机器结构的本机代码。创建的MSIL代码存储在一个程序集中,程序集包括可执行的应用程序文件和其他应用程序使用的库。.NET Framework的托管代码,代码编译为MSIL,再用JIT编译器将它编译为本机代码后,CLR的任务还没有全部完成,还需要管理正在执行的用.NET Framework编写的代码,即CLR管理应用程序,其方式是管理内存、处理安全性,以及允许进行跨语言调试等。相反,不在CLR控制之下运行的应用程序是非托管的,如C++可以用于编写这类应用程序。托管代码最重要的一个功能是垃圾回收。这样,可以确保应用程序不再使用某些内存时,这些内存就会被释放。.NET垃圾回收会频繁检查计算机内存,从中删除不再需要的内容。需要许多内存才能运行的代码应自己执行这样的检查,而不是坐等垃圾回收。
创建.NET应用程序所需要的步骤:
1.使用某种.NET兼容语言(如C#)编写应用程序代码;
2.把代码编译为MSIL,存储在程序集中;
3.在执行代码时,首先必须使用JIT编译器将代码编译为本机代码;
4.在托管的CLR环境下运行本机代码,以及其他应用程序或进程。
三、C#程序的执行环境——CLI(公共语言基础结构)了解
CLI(Common Language Infrastructure): 公共语言基础结构
CIL(Common Intermediate Language): 公共中间语言
CLR(Common Language Runtime): 公共语言运行时
VES(Virtual Execution System): 虚拟执行系统
CLS(Common Language Specification): 公共语言规范
CTS(Common Type System): 公共类型系统
JIT(Just In Time): 运行时
BCL(Base Class Library): 基础类库