.NET开发框架概述
因特网尚且不能实现人们愿望的主要原因有两个:一个是因特网上还没有一种将各种服务进行集成的机制。毕竟,传统是很难改变的,产品的供应商总是喜欢使用自己的方式来描述他们的产品和服务。为此,微软决定打破这种格局,与其他大厂商一起提出了用来进行网络数据交换用的公共协议并制定相关业界标准(如SOAP、XML等)。另一个原因是应用程序的开发还显得太复杂。为此,微软准备为开发人员提供一个崭新的具有划时代意义的开发平台,以使应用程序的开发更为简单。这个开发平台就是我们本书讨论的中心内容之一—— .NET框架。
.NET框架是一个可以构造、发布以及运行Web服务的开发环境。从概念上讲,.NET框架平台代表了一种崭新的软件开发模式,它与Win32 API或COM一样,是把系统服务以接口形式提供给开发人员的软件开发平台。与以往不同的是,.NET框架能够更好地完成代码重用、资源配置、多语言集成开发和安全管理等任务,在安全性、易用性以及开发效率等方面远远超过了以前的开发模式。
.NET框架平台包含两个方面的核心内容:一个是运行时引擎(Runtime Engine),另一个是基类库(Base Class Library)。对于运行时引擎,可能所有的开发人员都不会感到陌生,因为,从使用标准C语言开发工具开始,我们就至少接触过C运行时库(C Runtime Library)。后来,我们使用的工具越来越强大,接触过的运行时库的种类也越来越多。像微软基本类库(MFC)、活动模板库(ATL)、VB运行时库(VB Runtime library)和Java虚拟机等。从广义上讲,Windows本身就可以被看成是一个运行时引擎和运行时库。开发人员都很喜欢使用这些库,因为这些库将复杂的、重复性的东西都准备好了,等着需要它们的人来调用,从而简化应用程序的开发。但是,这些还远远不能满足开发人员对快速开发的要求,于是微软在.NET框架中提供了一个基类库,这个基类库可以充分地将开发人员编程的难度降下来,让开发人员更为轻松地完成开发工作。
随着微软Visual Studio .NET Beta版本的发布,我们已经可以看到.NET开发框架,是按照基于互联网的Web服务的开发需 求,完全架构在一组开放的互联网协议上而推出的一系列产品、技术和服务(见图)。其最底层,即整个开发框架的基础是通用语言运行时,以及它所提供的一组基础类库;在开发技术方面,.NET提供了全新的数据库访问技术ADO .NET,网络应用开发技术ASP .NET和Windows编程技术Win Forms;在开发语言方面,.NET提供了VB、VC++、C#、JScript等多种语言支持;Visual Studio .NET则是全面支持.NET的开发工具。
1. 通用语言运行时(Common Language Runtime) 给开发人员带来了一种全新的开发概念,即为多种语言提 供了一种统一的运行环境。另外它还提供了许多新的功能和特性,比如,统一和简化的编程模型,使用户不再迷惑于Win32 API和COM,避免了DLL的版本和更新问题(常称为DLL地狱),多种语言之间的交互,以及自动地内存和资源管理等。
2. 基础类库(Base Class Library) .NET给开发者提供的编程接口,即基础类库,包括从输入、输出到数据访问等各方面, 它提供了一个统一的面向对象的、层次化的、可扩展的编程接口。
3. ADO .NET 提供了一组用来连接到数据库、运行命令、返回记录集的类库,其革新主要体现在提供了对XML的强大支持,为XML成为.NET中数据交换的统一格式提供了基础;引入了驻于内存的数据缓冲区;此外,还引入了一些新的对象,如用于高效率读取数据的DataReader。
4. ASP .NET 网络表单把VB中的快速开发模型引入到网络开发中来,从而大大简化了网络应用的开发。其网络服 务则是下一代可编程网络的核心,它实际上就是一个可命名的网络资源,可用来在Internet 范围内方便地表现和使用对象。 ASP .NET应用框架不再是解释脚本,而是编译运行,再加上灵活的缓冲技术,从根本上提高了性能,并提供了更多样的认 证和安全管理方式。
5. 开发语言 从上面的介绍中我们已经知道,Microsoft .NET开发框架支持多种语言。需要特别指出的是,微软在.NET中推 出了全新的C#语言,它使开发者可以快速地构建从底层系统级到高层商业组件的不同应用,同时C#还针对 .NET作了特 别设计,比如允许XML数据直接映射为它的数据类型等。
6. Visual Studio .NET 作为微软的下一代开发工具它和.NET 开发框架紧密结合,是构建下一代互联网应用的优秀工具。 Visual Studio .NET通过提供一个统一的集成开发环境及工具,大大提高了开发者的效率;集成了多种语言支持;简化了服 务器端的开发;提供了高效地创建和使用网络服务的方法等等。
编程模型
以前在Windows平台下进行软件开发的C++开发人员大多使用的是微软基础类库(MFC)或者Win32 APIs,Visual Basic用户使用的是Visual Basic API,Delphi用户使用的是Borland公司的VCL,Java用户使用JDK,彼此之间很难兼容、相互调用,软件开发人员有时也难以取舍,而.NET框架统一了当前各种不同的架构,.NET框架为开发人员提供了一个统一的、面向对象的、层次化的、可扩展的框架类库――FCL,开发人员不再需要学习多种架构只须学习.NET框架就能灵活的采用各种不同的编程语言进行开发,.NET框架还实现了跨语言的继承、错误处理、调试。
在.NET框架里从C#,VB.NET,J#到C++的所有编程语言都是相互平等的,开发人员可以自由选择自己喜欢的语言,如下不同语言的程序代码:
IL是CLR唯一理解的编程语言,所有的编译器都将源代码编译成IL,IL再被CLR处理。
输出的结果是非常熟悉的:Hello, World!。