在利用ASP技术进行动态Web开发的时候,应遵循这样一个原则:即ASP的服务器端脚本必须与微软倡导的组件对象( Component Object Model )配合使用才能研制出具有实用价值的信息产品。ASP脚本相当于一种粘合剂,把一个个具有特定功能的组件对象粘合在一起,以形成最终的软件产品。这一软件制作的工艺思想颇类似于硬件工厂生产板卡的过程,那一个个的组件对象就相当于集成电路的芯片,而ASP脚本只是焊接芯片的焊接剂,由此可见组件对象起着核心作用。
组件对象模型COM是微软提出的一种基于二进制的Windows软件标准,它是由OLE 技术逐渐发展而来的。在使用不同语言工具写成的组件对象之间,依据COM 的标准可以进行交互。COM是技术概念和标准,其商业概念的称谓则使用ActiveX。
上文提到的ADO就是系统提供的用于访问后台数据库的组件。此外,ASP本身还提供了五个内置的对象。这五个内置对象可被ASP 脚本直接使用,它们是:
1. Request 取得用户信息;
2. Response 传递信息给用户;
3. Server 提供访问服务器的方法和属性;
4. Application 在一个应用程序的多个主页之间保留和使用某些共同的信息;
5. Session 在一个用户的多个主页之间保留和使用某些共同的信息。
其中,使用内置对象1、2可实现Web的交互功能,使用内置对象4、5可解决要求具有协作机制的应用问题。
ASP的一大特色是可以用它来编写具有协作机制的应用程序,在多个用户的多个主页之间共享信息。使用内置的Application和Session对象可实现这些功能。
Application对象保存一个应用程序共同的信息,使用此应用程序的所有用户都可以共同分享。为防止其被多个用户同时更改,提供lock和unlock方法来实现互斥。
Session对象比Application对象的使用外延范围小,它保存仅属于一个用户的一个应用程序的信息。ASP的应用程序可以只有一个首页,也可以有多个主页文件,所有的文件均位于一个虚拟路径下。Session对象可让同一个用户在多个主页之间共享信息。当用户第一次在一个应用程序中申请一个 *.asp主页时,ASP将为该用户分配一个SessionID号,它将唯一地标识用户的身份,从而能将同一应用程序的不同用户区分开来。
根据需要还可以自行研制开发具有某些特色的定制组件对象,以完成特殊的任务。用Visual Basic、Visual C++、Delphi和Java等语言都可以编写。自制的组件对象分成两类:
一是由类打包而成的*.dll文件,经注册器注册后,在ASP脚本中可通过 Set 对象名 = 类名来引用。对象在这种使用过程中是在服务器的后台运行的,其运行的结果通过系统自动生成的HTML作用到前端浏览器。
二是生成*.ocx文件,一般用作为可视化的对象ActiveX。它可直接将其嵌入*.asp主页中,在页面中插入时需使用HTML语言的< OBJECT>标记加以引用。通常构件制作完成并按下载的要求打包后,生成*.cab文件。对象在这种使用方式下要先从服务器下载,然后在客户的前端浏览器运行。在第一次下载时被展开成相关的*.dll和*.ocx文件进行本地安装及注册。以后再使用时,就可直接从本地获得,免去了下载之苦,这也是 ActiveX优于Java Applet的地方。
从长远来看,ASP和组件对象的应用方法不啻为一种很酷的新技术,更重要的是由此而提出了一种全新的软件设计方法,把硬件的工艺思想恰如其分地融化于软件的面向对象的分析、设计和施工之中,使面向对象的概念和方法从工具语言的层次一下子跃上了系统的应用层,对快速开发多层的客户/服务器分布式应用效果极佳,由此而引起的震撼效应正在慢慢显现出来。 |