微软的 .NET Framework是一套可以集成到Windows操作系统中的组件。它为应用程序提供了中间代码的支持,并且可以通过运行时来管理这些中间代码。.NET Framework是微软的一个关键产品,它更适合于在Windows平台上新编写的软件。
微软通过中间代码的形式提供了很多基于..NET Framework的类库,这其中包括很多我们常用的类库,如数据访问、密码技术、Web应用、数学算法以及网络通讯。开发人员可以通过这些类库建立强大的应用程序。
基于.NET Framework编写的应用程序可以执行在.NET运行时上。运行时环境是.NET Framework的一部分,我们可以简称它CLR。CLR可以使虚拟机变得透明,这样开发人员就无需考虑底层的执行细节问题。除了这些,CLR还提供了其它的功能,如安全机制、内存管理、错误处理等。因此,.NET Framework是由基础类库和CLR组成的。这个框架的目的就是使开发应用程序变得更容易,以及降低应用程序和计算机被攻击的可能性 比较稳定的.NET Framework版本是在2002年发布的1.1版。现在最新的发行版是2006年11月发布的3.0。这个版本可以运行在Windows XP SP2、Windows 2003 SP1以及Windows Vista上。
1..NET平台的意义
对于软件开发人员来说,.NET Framework是Windows平台最大的改变之一。.NET Framework的出现,使原来需要通过编程语言来做的一些工作转由.NET Framework来完成了。它的这些特性给我们带来了好处,这其中包括:
●可以保证所有支持.NET的语言编写的程序都可以使用这些特性。
●开发人员可以使用任何支持.NET的语言使用这些功能,也就是说,这些功能是语言独立的。
● 可以保证通过任何支持.NET的语言编写的软件都具有相同的行为。
●操作系统可以提供一些.NET Framework不支持的功能。
●降低程序之间通信的复杂性和局限性,这些程序可以是相同语言编写的,也可以是不同语言编写了。
2.基本原理
.NET Framework的诞生解决了许多开发人员多年来一直困扰的问题,并提供了这些问题的解决方案。
每一种编程语言都有自己的独特的地方,如它们可能是强类型的,有垃圾回收机制、基于例外的错误处理,或是以虚拟机方式运行,以及拥有强大的类库。Visual Basic、Powerbuilder以及C++标准模板库(STL)或是其它语言都有一些这样的特性。然而,Java语言以及基于Java的J2SE和J2EE框架表现得最为出色,以至于常常有人将Java和微软的.NET Framework相提并论。现在微软正在将最好的特性溶入自己的产品中,这其中包括支持多种语言的.NET Framework。微软所做的一切,将在它未来的开发语言和工具中得到体现。
3.设计目标和主要特性
.NET Framework的设计基于以下几个目的。
●互操作性 – 由于基于.NET Framework的程序有时需要和以前的程序进行交互,因此,.NET Framework为我们提供了访问.NET环境外部资源的能力。如EnterpriseServices命名空间提供了访问COM组件的能力,我们还可以通过P/Invoke访问其它的外部资源。
●公用运行时引擎 – 众所周知,基于.NET Framework的编程语言被编译成中间语言,也就是我们通常说的CIL(Common Intermediate Language)。微软的CIL的实现就是非常著名的微软中间语言(Microsoft Intermediate Language ,简称MSIL)。微软所实现的CIL并不是被解释执行的,而是以我们熟知的即时编译(JIT)的方式运行的,这种即时编译执行方式可以将中间代码编译成本地代码执行。这些概念合起来叫做公用语言架构(CLI),这个架构微软是以规范的形式发布的。微软关于CLI的实现就是共用语言运行时(Common Language Runtime ,简称CLR)。
●语言独立 – .NET Framework引入了共用类型系统(Common Type System,简称CTS)。在CTS规范中定义了所有可能的数据类型、CLR支持编程架构以及这些架构之间如何交互。正是因为.NET Framework提供了这个特性,所以它可支持多种编程语言。这一点在下面的部分将详细讨论。
●基础类库 – 基础类库(BCL),有时也被叫做框架类库(FCL),它是一套所在支持.NET Framework的语言都可以使用的类库。BCL提供了许多封装了通用函数的类,这些函数包括文件读写、图形操作、数据库操作以及XML操作等。
●简化开发 – Windows的注册表设置、文件分发以及DLL地狱一直困扰着应用程序的安装和发布。而基于.NET Framework的应用程序就完全不会遇到些问题。
●安全 – .NET允许代码运行在不同的安全层,而这一且无需其它系统的支持。
总而言之,.NET Framework是为平台独立而设计的。也就是说,一个为这个框架而编写程序无需做任何变化,就可以运行在任何实现这个框架的计算机上。目前,微软只在Windows操作系统上实现了这个框架。微软和其它厂商已经在非Windows操作系统上实现了这个框架的一部分,但这些实现并没有被广泛地使用。