.NET架构三大核心技术  应用软件的开发正在经历一次巨变-——将最终增强开发人员的生产力并开启新一代应用程序之门。  传统上,软件开发人员通过集成本地系统服务的方式开发应用程序。这种模型使开发人员有权使用一整套丰富的开发资源,精确控制应用程序的性能。   开发人员已经在很大程度上超越了这种模型。今天,开发人员正在建造复杂的多层系统,可以将来自网络的所有应用程序集成在一起,并在其上提供独特增值。这使得开发人员能够将重点放在自身独特的商业价值,而不是建造基础体系结构上。结果是缩短了产品推向市场的周期,大大提高了开发人员的生产力。而且,最终得到了高质量的软件产品。   我们正在进入计算机发展的下一个阶段——基于Internet的阶段,特别是基于Internet核心技术——XML扩充标记语言。尽管多层应用程序开发将焦点集中在建造大型企业级应用程序上,但现在XML使得能够创建可用于任何人、任何场所的大型应用程序。它扩大了应用程序的使用范围。这样,软件就不是只能从CD上安装的某种东西,而是一种服务——就像呼叫服务或者计费电视一样,可以通过通信媒体来预订。   实现这一点是通过把多层计算中的紧密连接、高生产力的部分和Web概念的松散连接的、面向消息的部分相结合而成。这种被称作为Web服务(Web Service)的计算类型代表了应用程序开发的下一代变革。Web服务就是指一种应用程序,它在Internet或 Intranet上使用像HTTP和XML等标准Internet协议来实现其可编程的功能。也许把它看作Web上的组件编程设计更准确。   从概念上来讲,开发人员通过调用Web应用编程接口,将Web服务集成进他们的应用程序,就像调用本地服务一样。两者区别在于前者能够通过Internet发送到某个远程系统的服务上。例如,像微软护照(Microsoft Passport)这样的服务,可以给开发人员提供应用程序身份确认的功能。通过对护照服务编程,开发人员就可以利用护照服务的基础体系,实现维护用户数据库,确信服务开启和运行、以及正确地备份等等功能。 松散联接  跨越网络的分布应用程序逻辑的概念并不是一个新名词,但跨越Web的分布和集成应用程序逻辑的概念却是。   此前,象微软的DCOM (Distributed Component Object Model )、Object Management Group公司的CORBA (Common Object Request Broker Architecture )以及Sun公司的RMI(Remote Method Invocation )这些分布式对象模型被称为分布应用程序逻辑。运用这些系统结构,虽然服务放在远程系统上,开发人员仍然可以像原来本机编程那样维护和丰富应用程序的功能。   但这种系统的问题是不能扩展到Internet。因为该体系的基础是服务器上的客户端和服务器的紧密联结。这意味着两者必须是同质的基础体系,但也就常常意味着这种系统是非常脆弱的——如果有任何一端接口发生变化,另一端程序必然就会被中断。举个例子,如果服务器应用程序的接口改变了,那么客户端也将会失效。   要求有一个紧密联接的系统这本身没有错,而且许多应用程序也一直就是建立在这些系统上的。但最终,随着时间的流逝,这种模型是不会扩展的。因为众多公司企业要求相互沟通,这很难保证会有一个统一的系统,同样也很难保证,你的客户的服务器会有你所需要的完全一致的系统,你甚至都不可能猜想到它所用的是什么操作系统、什么对象模型和什么编程语言。   相反,Web服务的联接非常松散。这就意味者你可以在连接的任何一端任意改变接口,而应用程序可以不受影响地照常工作。从技术上说,这主要是由于使用了拥有稳固性能的基于消息的异步技术;如像HTTP、SMTP等Web标准协议。而且最重要的是,XML可以实现帮助实现其通用性。   消息系统将通信的基本单元打包进自描述的、运用于网络通信层的包(被称做消息)。消息系统和分布式对象系统的关键区别在于,发送者需要对接受者的系统了解多少。使用分布式的对象系统,发送者需要帮助接受者考虑许多问题——应用程序将如何激活和卸载、调用的是什么接口等等。   另一方面,消息系统在通讯层上达成协议。发送者只需考虑的是接受者能够知道信息正被发送。发送方不需要了解一旦消息被收到后将会如何处理,也不需要对发送方和接受方之间作任何考虑。   在通讯层上达成协议的优势是显而易见的。例如,协议能够使接受方随时作修改而无须中断发送方,只要该协议始终明白是同一条消息。接受方不用中断任何当前应用程序,可以自由升级和改进。更进一步说,就是发送方不用要求任何特殊的软件就可以和接受方交谈,只要他发送的是符合格式的信息,接受方就可以作出应答。 XML的通讯基础:SOAP  建造跨越Web的 Web服务的工作和异步系统的关键是使用统一的数据说明格式。这就是XML。特别说明的是,Web服务器在三方面需要XML来实现:基础语言、服务说明以及服务发现。   ● SOAP:系统在底层需要有统一语言,特别地,应用程序相互通讯需要建立一套规则来说明如何表示不同数据类型(如整数和数组),如何表示命令(如何进行数据处理)。同时,应用程序在需要时还可以扩充这种语言。简单对象存取协议SOAP(Simple Object Access Protocol),XML的一种实现,代表了一组如何表示和扩充数据和命令的规则集。   ● WDSL(Web Services描述语言) 一旦应用程序有了如何表述数据和命令的基本规则,他们就需要如何描述可以接受的特定数据和命令。应用程序只是声明如何接受整数是不够的,他们必须用明确的方法声明。如给你两个整数,把他们相乘。WDSL是一种XML语法,开发人员和开发工具可以用它来表示Web服务的功能。   ● SOAP Discovery 最后需要一组规则来定位服务的描述-对于开发者和开发工具在什么地方可以发现一个Web服务。SOAP Discovery规范提供了一组规则让开发者和开发工具可以自动发现Web服务的描述。   一旦这些准备好了,开发者可以方便地发现Web 服务,把它作为一个对象集成进他们的应用程序,并使应用程序和Web服务相互通讯。.NET Framework: Web 服务引擎  很明显,需要大量的基础工作才能使这个过程对开发者和用户透明。.Net Framework就提供了这个基础,在.Net Framework中,所有的控件都是Web 服务, Web 服务也只是一种控件。实际上,.Net Framework体现了微软Component Object Model (COM)的最好方面,而且将其与松散联接计算的最佳方面结合起来。这样的结果是产生了一个强大高效的Web组件系统。该系统可以简化编程人员繁重的劳动、深入地集成安全性,并具有基于Internet的扩展(Deploy)系统,极大地改善了应用程序的可靠性和扩充能力。 .NET Framework由三个主要部分组成:通用语言运行库、一套层次结构的统一类库和一个被称为ASP+的高级ASP版本。 通用语言运行库   除了通用语言运行库的字面含义外,在开发阶段和运行过程中它还扮演着另一个角色。在组件运行时,运行库负责管理内存分配、启动和中止线程和进程、强化安全系数,同时还调整任何该组件涉及到的其他组件的附件配置。在开发阶段,运行库的角色稍微有点变化:因为很多方面可以自动实现(例如内存管理等)。运行库可以使开发过程变得非常简单,特别是同今天的COM编程相比更是如此。特别典型的是,像Reflection这样的特性可以极大地缩短开发人员将商业逻辑转化成一个可重复使用的组件而不得不编写的代码数量。 运行库对于编程语言来说并不是新鲜的东西。实际上每一种编程语言都已包含一个运行库。Visual Basic(r)开发系统有最明显的运行库(正规名字为VBRUN),Visual C++(r)也有一个MSVCRT,此外,像Visual FoxPro(r)、Jscript(r)、SmallTalk、Perl、Python和Java等等都如此。.NET Framework的关键角色就是它提供了一个跨所有编程语言的统一环境。统一编程类  .NET Framework类为开发人员提供了一套可以使用的统一的面向对象、异步、层次结构的可扩展类库。现在,C++的使用者使用Microsoft Foundation Classes,Java程序员使用Windows Foundation Classes、Visual Basic的用户使用Visual Basic APIs。微软用.NET Framework统一了这些不同的框架。结果是,开发人员不用去非学多个框架来完成自己的工作。而且,通过创建一套跨编程语言的通用API,.NET Framework可以实现跨语言继承、纠错处理以及程序调试。实际上,从JScript 到C++的所有编程语言,对于.Net Framework都变成同等的,开发人员可以自由地选择他们想使用的任何语言。ASP+  ASP+构建在.NET Framework的可编程类库上,提供了Web应用程序模型,可以很简单地开发web应用程序。   ASP+包括封装通用HTML接口的文本框和下拉菜单等等控件。无论如何,这些组件实际运行在Web服务器上,并用HTML实现其用户接口。在服务器上,这些组件展现了面向对象的编程模型,它能够给Web开发人员带来丰富的面向对象程序设计。ASP+同样也提供了像会话任务状态管理和进程循环等的基础服务,进一步减少了开发人员必须编写的代码数量,同时增加了程序的可靠性。此外,ASP+能够使开发人员将软件作为服务来发布。使用ASP+的 Web 服务特性,ASP+开发人员可以简单地编写他们的商业逻辑,同时ASP+系统也将负责通过SOAP分发该种服务。   即便目前ASP+还没有发行,但它已经在Web应用程序方面表现了极大的改进:基于现有应用程序的three-fold性能改善、生产力的极大提高。 .NET Framework的核心部分   .NET Framework中有几个部分值得称道。其中最主要的是它的安全和配置系统。这两个系统同时工作可以减低执行不安全代码的几率、减少经常被称为“该死的DLL”的应用程序配置冲突。   安全系统是粒度和基于认证。这就意味着它能够给开发人员和管理员们一组对代码的特权(不只是on或off)。此外,它还意味着如何应用这些特权是基于代码本身的核心部分。   当一个.NET Framework应用程序被下载到某个系统时,例如,它将要求一套许可权(比如编写一个临