Visual Basic 6.0 中的WEB 工具-2

modico
Web 应用开发:有关背景知识
在我们为你具体介绍利用Visual Basic 所提供的工具进行Web应用程序开发之前,我们有必要针对你现在的实际情况来作不同的说明和介绍。如果你是一位在Microsoft 平台上从事Web开发的老手,那么,阅读下面的内容对你来说可能没有什么必要。如果你还没有从事过Web应用程序的开发,请往下阅读。
你可能了解到,Microsoft公司将为创建基于Windows 的Web应用程序提供了一个完全,标准的体系结构,Microsoft公司对自己在不久的将来就能够做到这一点充满信心。Microsoft公司把这种体系结构称作为 "Microsoft Windows Distributed interNet 应用程序体系结构",简称为Windows DNA。在Microsoft 公司的Web站点:http://www.microsoft.com/dna/,对这种体系结构有详尽的说明,其中在http://www.microsoft.com/dna/images/dna.html,还包括一个三维的动画模型的演示。
在这篇文章中,我们将对Visual Basic 及其Web应用开发工具进行重点介绍。通过阅读这篇文章,你可以清楚地看出:在Windows DNA 中,Visual Basic 扮演了一个什么样的脚色,你的编程技巧达到了一个什么样的水准。
首先要指出的是:从定义上讲,Web应用程序是基于客户机/服务器的应用程序,它由浏览器(客户端)和一个Web服务器组成。最简单的Web应用程序是"静态的"Web应用程序:浏览器请求页面并显示它们。在这种情况下,除了Web服务器对页面作出响应和Web浏览器显示文本外,就没有其它的处理过程了。
当你想让在Web环境下运行的应用程序进行一些处理工作时,情况就变得复杂了。那么,应用程序需要进行哪些处理工作呢?这些处理工作包括:对用户输入进行效验;根据用户输入改变Web页;对事务进行逻辑处理;在数据库中执行查找操作或者存储数据;控制用户能够查看哪些页面。换句话说,在一个独立环境下运行的应用程序中进行的所有处理工作,如果你希望在Web的环境下也能实现,那么,在Web环境下运行的应用程序应该将这些处理工作都包括进来。
远程调用与本地执行, 功能简化与功能集中
与传统的基于Visual Basic 的应用程序不同,Web 应用程序的客户端通常是一个浏览器,而浏览器具有一些我们事先无法确定的功能特性和处理能力。比如:如果你为一个公共的Web站点创建应用程序,客户可以通过各种不同的浏览器来访问它。其中有些浏览器对我们刚才在上面所提到的某些任务的处理能力可能是有限的。
而另外一些浏览器则可以执行非常复杂的任务处理工作。Microsoft Internet Explorer (4.0 或是更高版本)就是这种具有很强的任务处理能力的一个很好的例子,它提供了对动态HTML语言(DHTML)广泛的支持。当然,在所有客户端实体中,标准的Visual Basic 所提供的信息内容最为丰富。利用Visual Basic,你甚至根本不通过浏览器就可以创建Web应用程序--与以前的Web应用程序不同的是:它使用了一个包含了Web浏览功能或者是其他Web 技术的Visual Basic 窗体。
在客户端处理能力的不同情况是决定如何设计你的Web应用程序的一个重要因素。比如:你的应用程序是否需要被不同的浏览器访问?或者是事先你是否知道所有的用户将会使用Internet Explorer 4.0 或其更高版本?你的应用程序是否包含Visual Basic 窗体?有时我们用术语"远程调用"和"本地执行" 来形容Web应用程序在客户端处理能力的这些不同情况。
一个"远程调用"应用程序指的是它能够被各种各样的客户所使用。在Web 环境中,它指的是可以被任何浏览器访问的一个应用程序。比如象Hotmail这样一个应用程序,你可以在任何一台计算机上用任何一种浏览器来访问它。因此,在Web 环境下就可以通过很多渠道对Hotmail进行访问。与此不同的是,一个本地执行的应用程序提供了对用户经常使用的一些操作的支持(这是理所当然的)。通常这种类型的应用程序提供了丰富的用户界面,并能对用户的操作作出更快的反应。
远程调用与本地执行之间并不是象黑与白那样区别明显,我们可以用一个度来描述两者之间的关系。下面的图示将使你对这个度的范围有一定的了解。

图1. 远程调用型与本地执行型应用程序

通常,我们又可以把客户端应用程序分为"功能简化型"和"功能集中型"这两种类型,它们也表现出了不同的客户端处理能力。一个"功能简化型"的客户端应用程序包含较少的处理功能,因此从定义上讲它不属于本地执行这种类型的应用程序。而一个功能集中型的客户端应用程序将许多功能特性集成到客户端,这样也使得它所包含的功能模块更多。按照上面的对"功能简化型"和"功能集中型"这两种类型客户端应用程序的定义和说明,一个集成了窗体,程序代码,和Visual Basic 运行库,典型的基于Visual Basic 的应用程序应当归入功能集中型这类应用程序。
客户机与服务器处理
远程调用和本地执行两类应用程序的根本区别在于:在何处完成处理任务?为了支持使用不同类型浏览器的用户,远程调用型的应用程序将处理任务提交给服务器去执行。而本地执行型的应用程序将大部分的处理任务由自己的前端来完成。
在此举一个例子来进行说明,比如有一个应用程序,它用来显示你的公司的职员列表,显示方式是在一个页面中显示五个职员的信息。在应用程序中,用户通过点击继续按扭,可以查看更多的职员信息。假设你认为客户端的处理能力不够强大,而采用远程调用类型的应用程序,你把"显示下一个页面"的处理任务放到服务器上。当用户点击"继续"按扭后,应用程序收集比如当前页面的信息,并将它发送到服务器。服务器根据接收到的当前页面的信息对查询进行刷新,然后创建一个新的页面,上面包含查找到的接下来的五个职员的信息,最后,将这个新的页面发回到提出请求的浏览器端。从这一过程我们可以看出,显示下一个页面的处理过程涉及及到从客户机到服务器之间的一个往返处理。任何类型的浏览器都可以运行这种类型的应用程序,但由于包含了到服务器的一个往返处理过程,因此,客户端应用程序的响应时间会变慢。

图2. 在远程调用型应用程序中服务器端的处理任务

在远程调用型应用程序中,Web页面是由Web服务器提供的,但是,具体数据是由客户端应用程序来处理的。当查询结果产生后,客户端应用程序就可以使用所有相关的数据(整个记录集)了。此后,当用户点击了继续按扭,就由客户端应用程序自己来完成所有的页面逻辑处理任务了。此时,应用程序的响应速度就变得快多了。

图3.在远程调用型应用程序中客户端的处理任务

确定放置处理任务的位置
通过上面的介绍,我们可以看出,对是由客户机还是由服务器来完成处理任务这一问题,我们考虑的一个主要因素是:客户机的处理能力到底有多大。如果你创建一个远程调用型的应用程序,处理任务是基于服务器的。允许公众访问的Internet Web 站点所提供的应用程序通常是属于远程调用型的,因为你希望访问你的站点的人越多越好(不管他们使用的是何种浏览器)。
然而,假设你正在为一个已经把Internet Explorer 选定为其客户端唯一浏览器的公司进行Intranet 应用程序的开发,在这种情况下,你会自然而然地决定将客户端应用程序设计成本地执行吗?虽然你的直觉会告诉你:"理所当然哪!",但在实际中答案通常是:"视情况而定"。
在确定放置处理任务的位置时,除了要考虑客户端的处理能力外,你还要将以下因素考虑在内:
  • 安全。在一个基于服务器的应用程序中,任何用户都不应该访问到处理过程,安全性检查的代码。在一个基于客户机的应用程序中,由于部分甚至是所有的代码存放和运行在客户端,因此用户能够对应用程序中的代码和相应的处理过程进行访问。
  • 处理工作量。如果很多用户在同一时间段对服务器提出了访问请求,并且服务器完成任何一个用户的请求都要进行大量的处理工作,此时,服务器可以通过设置标志位,用分时的调度方式来为用户提供服务。这样做的一个显而易见的问题是:某些用户会因为长时间的等待而变得不耐烦。(实际上,如果浏览器等待服务器作出响应的时间超过某一限制,就会自动断开与服务器的连接。)在这种环境下,将一部分的工作交给客户端处理会减轻服务器的处理工作量。
  • 脱线使用。一个基于客户机的应用程序不与服务器连接就能运行。而一个基于服务器的应用程序只有在用户与它连接上后才能使用它。
  • 部署能力。如果你需要对某个处理过程进行更新,那么,在一台中心服务器上完成这项工作要比分别在各个客户端完成容易得多。
  • 可伸缩性。当在某个时候需要把应用程序移植到一个使用范围更广的平台上时,如果应用程序具有一致的客户端界面,那么,移植工作就会容易得多,你所要进行的处理工作仅仅是把服务器的处理移植到一个更加强大的平台上。但是,如果你在一个用户界面变化多样的本地执行型的应用程序上完成这项任务,你要进行的处理工作就会复杂得多。
    在决定将处理任务交给客户机处理还是服务器处理时,需要考虑的最后一个因素是网络的拓扑结构。如果你正在进行Intranet 应用程序的开发,你可能想让某台客户机能够直接对网络中的其它计算机进行访问-比如在客户机和数据库之间建立一条直接的链接的方式来实现。在Internet 环境下,通常选用HTTP作为通信协议,该协议通常不允许应用程序直接访问分布在网络上的数据库。因此,对一个远程调用型的应用程序来说,一般需要通过服务器,而不是客户机来提供对分布在网络上的数据库的访问。
    注意:如果没有合理地对客户机和服务器进行配置,应用程序将会自动调用Microsoft 远程数据服务(RDS)来进行客户机到服务器的通信。如果你想对此了解更多信息,请查看Web站点:http://www.microsoft.com/data/ado/rds/。
    Microsoft Web技术
    Micorsoft公司为你提供了很多可以选择的工具,使你能够创建基于客户机或者是服务器的Web应用程序。如果你想创建本地执行型,基于客户机的应用程序,你可以选用下面的工具:
  • 带有Internet控件的Rich Microsoft Win32窗体。显然,我们在此指的是Visual Basic 窗体。
  • 在Internet Explorer 4.0或者更高版本中所提供的DHTML页面。动态HTML页面在浏览器中运行,它使你能够对页面中的所有元素用程序进行控制-动态HTML页面与Visual Basic 中的窗体类似,只不过是加进了象客户端数据绑定和丰富的用户界面这样一些功能特性。到现在,只是在Internet Explorer 4.0或其更高版本中提供了对DHTML 的支持。
    与此不同的是,对于远程调用型,基于服务器的应用程序,Microsoft为其提供动态服务器页面(ASP)的支持,这是一项被Microsoft Internet 信息服务(IIS)所支持的技术。ASP将HTML文本与代码(通常是脚本语言)进行了结合。当客户机对页面提出请求时,脚本就在服务器上执行。
    下面的图示将帮助你理解以上这些技术是如何有机地结合在一起的。

    图4.0.在基于客户机/服务器的应用程序中可以利用的Web技术

    现在,让我们继续往下阅读,看看我们在Visual Basic 中能做些什么。
    ※编辑: typhoon 于 2001-5-9 9:06:23 在 [202.117.82.2] 编辑本文

  • 欲求无限
    立地成佛
    .
    有时候
    交谈变得空洞
    沉默却像沟通