ASP+介绍
尽管ASP3.0墨迹未干,微软已经在紧锣密鼓地进行下一代服务器端编程技术的开发.在下面三部分中,我们将对这个被称为 ASP+(名称未定)的新产品做一粗略介绍.本文对象主要是那些经验丰富的 ASP 开发者,为你决定是否移植到ASP+提供一些概念.
ASP+被设计成与早期版本的ASP兼容,在环境要求方面仅有一些微小的差别.比较特别的一点是,ASP+可以与 Windows2000 上的 ASP 3.0同时安装.这样一来,你就可以在测试 ASP+ 的同时继续提供已有的 ASP 服务,当一切准备就绪时再切换到 ASP+ 上,而不用另装一台测试服务器.
虽然可以简单地将原来的 ASP 应用原封不动地转换到 ASP+ 上,但这样做从新版本上得到的好处并不多. ASP+ 有许多新特性,例如更容易使用,功能更强劲,运行效率更高等等.但要真正发挥作用,还需要了解 ASP+ 的工作方式.
在7月11-14日,于佛罗里达奥特兰市举行的微软开发者大会2000上,微软发布了 ASP+ 的 Preview 版本,让开发者体验用比以往更少的代码来构筑动态网站.
ASP 的演变
ASP 的历史其实并不长,1996年首发,然后迅速发展为 Windows 环境下的主流开发环境.此外,在其他平台上也有第三方厂商开发的模拟环境,例如 ChilliASP.
动态服务器端 Web 编程
传统上,动态页面由服务器端可执行程序产生.标准的Web服务器界面称为 CGI,基本原理是让一个可执行程序取得从客户端传过来的信息,然后收集输出信息生成返回页面(HTML,script代码,文字等),最后发送到客户端.后来出现了例如 Perl 这样的解释器,程序员只需编写一些宏代码,就可以让服务器解释执行.
微软 ISAPI 技术
微软随着IIS推出了另一个工具:ISAPI(Internet Server Application Programming Interface ),其不同于CGI的是ISAPI允许调用动态链接库(DLL).许多微软开发者都曾在 ISAPI 上开发过.另一个短命产品叫 dbWeb,提供一定程度的交互式数据查询,过滤,格式化功能.
第二代开发工具叫IDC(the Internet Database Connector),开发环境稍有改善.不仅因为它比 dbWeb 速度更快,效率更高,而且因为它使用更加方便.IDC引入模板的概念,让程序员更容易地在此基础上构筑应用系统.每个页面 IDC 要使用两个文件.其中query文件包含简单的宏语句,定义从数据库中取得数据的方法.实际上就是SQL描述加配置信息.
{query文件 getuserlist.idc}
Datasource: GlobalExampleData
Username: examples
Password: secret
Template: getuserlist.htx
SQLStatement:
+ SELECT DISTINCT UserName
+ FROM Person ORDER BY UserName;
服务器执行这个文件获取结果集,然后调用模板文件
{模板文件 getuserlist.htx}
...
<TABLE>
<TR>
<TD>User name:</TD>
<TD>
<SELECT NAME=selUserName>
<%BeginDetail%>
<OPTION VALUE="<%UserName%>"><%UserName%>
<%EndDetail%>
</SELECT>
</TD>
</TR>
</TABLE>
...
模板文件基本上就是一个普通的Web文件,包括HTML,文本和其他部分,但带有一些括起来的代码,这些代码有基本语法,有简单的编程结构,已经具有 ASP 的一些雏形.
ASP的版本
在1996年初,Denali(ASP的开发代号)发布了0.9beta版,在Web开发领域掀起了一场风暴.Web页面的制作变得如此简单而强大,附带的一系列组件提供了更先进的功能,新的ADO(ActiveX Data Objects )技术.建立动态网页如同儿戏.
最终的发行版ASP1.0是作为IIS3.0的组件一起发布的.与ADO技术的捆绑,无疑是 ASP 大受欢迎的最主要原因之一.程序员几乎可以随心所欲地通过script任意打开,存取,操作数据库.
1998年,作为 WindowsNT4 Optoin Pack 的一部分,微软推出了 ASP2.0.与 ASP1.0 的主要区别是 ASP2.0 支持外部组件的调用.这样,ASP 应用程序可以在单独的内存空间中运行组件.MTS(Microsoft Transaction Server )的引入将组件的运行也归入事务处理过程.
Windows 2000, COM+ 和 ASP 3.0
今年初,Windows2000推出,包含了IIS5.0和ASP3.0.撇开一些细微的改进,最主要的区别在于COM的运行机制.在 Windows2000 中,微软将核心COM运行库结合了MTS,创建了COM+.使组件的使用更方便,整个运行平台更稳定,伸缩性更强,效率更高.
IIS5.0在界面上的变化不大,但在底层,改为使用COM+组件服务,提供了更佳的组件运行环境,包括每个组件可以有自己单独的进程.
ASP+和下一代Web服务框架
ASP+的下层结构与ASP的以前版本截然不同,尽管从程序员的开发界面上看似曾相识.ASP+是完完全全地基于组件,并且完全地模块化.你所使用的每个页面,部件,HTML元素都可能是一个单独的运行组件.新的运行环境将自动管理,协调系统的运行.程序员可以按照微单元的开发风格来建立功能强大的应用系统.
面向对象的ASP+提供了对环境的扩展.开发者可以通过新增组件或继承原组件基本类的方式,增加和扩展应用环境.
新一代Web Services框架
显然,COM+构筑了操作系统运行的基本框架.作为一套全新的运行环境,ASP+为Widnows中各种类型的应用程序提供支持.这个框架也是微软NGWS(Next Generation Web Services)的关键.一旦你安装了这个框架,ASP+就会成为其中的一个部分.该框架同时支持其它服务器端编程技术,例如新的组件管理服务,建立可执行的应用和Windows服务,性能统计API,事件日志API等.
通过增加新的和增强分布式服务来扩充我们现在用于创建可重复使用的和可同时使用的COM+模块。这些新的特征包括:
一套统一的和丰富的编程库。
一套安全的和多语言的运行库引擎。
简单的创建、开发和维护。
增强分布式应用的适用范围。
保护现有的软件和培训的投资。
下面我们将一步步来看这些特征。
什么是NGWS架构?
将ASP融入操作系统,这和早期版本的ASP有非常大的不同,它将作为操作系统的一个插件存在。一直到现在,ASP都是通过名为ASP。DLL的ISAPI动态链接库来负责解释运行的,或者可以作为有些新型的系统文件和ASP用户组件数据包中的一部分来运行的。
然而,最值得我们注意的是该架构并不是为了ASP+而存在的,而是可以支持基于WINDOWS上的所有应用。以上图表显示了该架构是怎样支持ASP+应用的。
NGWS架构提供了用来运行代码执行引擎和一套用于建立application的面向对象的类和组件。他还充当了系统内核跟用户界面中间的层。你也许会问:直接和系统或服务对话不是更方便吗,为什么还要这个层呢?原因就是:我们能否最好地利用操作系统,采用一种标准方式来使开发更快、更简单。在今天的竞争激烈的商业社会里,这是一个很有必要的需求。
为了达到这个目的,引进了许多特征的该架构。这些特征包括:自动内存碎片整理、丰富的可满足那些大多数共同任务需要的可重复利用的对象库、增强的安全性能。最后一点,对网络应用特别是对INTERNET应用是非常重要的
共同的中间语言。
NGWS架构的最大贡献就是提供了一个中立的运行环境。所有的代码,不管任何语言的源代码,无论是重新加载还是第一次执行,都将被自动编译成一个中间的伪代码(IL)。然后由该架构产生最终2进制代码并执行。该编译后的伪代码将一直被使用直到该源代码给改变。根据以上说明,所有缓冲版本的代码将是无效和被弃用的。)
因此,无论你使用VB、C#、Perl或者其他任何可被支持的语言,直接代码都可以同样的编写。并且缓冲二进制代码可以具备和运行库一样的高效和兼容性。
**C#是一种微软开发出的针对下一代WEB服务架构和ASP+的新型语言,他同时具备了C++的高效和VB,JSCRIPT的方便快捷。**
.该特性之一就是能够从一种语言里调用另一种语言,甚至能够继承并修改另一种语言开发的对象。举个例子,在VB的开发环境里,你可以继承、添加属性或方法、重载已有的方法和属性一个由C#语言开发的对象。实际上在C#里我们就应用了该架构的许多新的特性。
因此,新型的架构引进了一个真正的多语言平台来开发各种各样的应用程序。该新型特征就是直接瞄准了当前多数的分布式应用领域的开发,特别是基于internet和inranet的应用开发。
WEB应用架构
(上个图表中突出显示的以下3个部分就构成了ASP+本身,也就是我们所感兴趣的东西)
还有,这3个部分也指出了该结构的WEB APPLICATION的新的特征:
用户界面
作为ASP+库的一部分,将许多基于服务器端的控件以帮助用户迅速方便地建立起WEB上的用户界面我们可以为使用低版本浏览器的用户输出HTML 3。2代码,然而我们可以利用高级版本的客户端(如:IE4极其以上版本)中自带的统一运行库以获得更好的交互性。可以使用现有控件用某种逻辑关系建立起其他的服务端的控件)
支持数据库访问
公共运行库支持一种新的ADO,我们叫他ADO+。ADO+提供了完整的访问数据库的服务,无论该数据库是远程的还是本地,是何种格式的。ADO+提供了面向对象的访问相关数据的设想,这样开发者就能够迅速快捷地访问各种不同的数据源)
ADO+支持从XML获取或输入记录集(或他们现在称为数据库)。于是我们将看到,对于在使用了ASP+的WEB服务中发布数据是非常有用的。
对分布式应用的兼容性
任何基于WEB应用的服务都有2个关键的要求:1是方便的操作平台,2是可升级性以能够处理大量用户请求。NGWS提供了这些先进的特征:允许自动跳过错误,过载保护,重载和管理一次性使用的应用程序和组件。这些都防止了错误的代码和内存漏洞给系统带来崩溃的灾难性后果。)
.除此之外,他还带来了一些新的系统服务,包括:内存管理,内存碎片整理、保持和维护内存连续性,先进的安全性。这些特征还包括更可靠的内存分配和应用程序。
现有的软件和开发上的投资
不用考虑操作系统和运行库的改变带来的后果,该技术很体贴地为你考虑了WINDOWS的版本,COM和ASP的兼容性。在大多数情况下,现有的应用程序,COM和COM+组件,ASP页面及其他的脚本都可以在NGWS下很好地运行。你可以基于您的商业目的来随时升级他们。)