使用VB创建ASP服务器端组件[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 griefforyou 的 blog

使用vb创建asp服务器端组件
 
本篇文章通过与传统的设计方法相比较,介绍了如何在asp代码中调用vb组件的方法。在本篇文章中,我们假设读者具有vb和asp的相关入门知识。

服务器端组件和客户端组件的比较

服务器端组件和客户端组件有许多不同之处。服务器端组件是在计算机服务器上注册的dll文件,客户端组件则在浏览器运行的计算机上注册,在ie中,这些客户端组件被称作activex浏览器插件组件。

activex客户端组件可以使用vb编写,并通过互联网或内联网发送给浏览器,生成很精彩的效果。问题是,activex客户端组件只限于ie,而使用vb编写的服务器端组件则能够产生纯html代码,适用于所有的浏览器。服务器端组件的最大问题是该组件必须在windows+iis环境中或与iis的api兼容的应用中运行。相比较而言,在服务器端实现这种兼容性似乎更容易一些。

iis服务器端组件驻留在与iis相同的内存空间中,并随时准备服务器上处理的asp网页的调用。从理论上说,我们可以在返回浏览器的asp代码中插入任何文本或代码,但一般来说,大多数服务器端组件被用来处理需要大量时间的计算或数据库信息查找,然后将所得到的结果以html代码的形势返回给浏览器。

vb组件的解析

由于本篇文章旨在讨论编写vb组件的基本方法,因此在能够说明问题的情况下,其中的例子将是十分简单的。在详细讨论编写vb组件之前,我们将首先从概念上对vb组件作一番剖析。

在使用vb编写服务器端的组件时,有三个分层次的概念(在vb和asp代码中都会用到)需要注意:

·project名字

·class名字

·method名字

vb工程的名字就是project名字。许多开发人员都将project名字看作是组件名字,但vb只将它看作是工程的名字。在我们的例子中,project名字是exampleproject,当然了,我们可以随意命名自己的工程名字;class名字名字是exampleclass,method名字是examplemethod。

工程名字(组件名字)也可以是由组件代码编译后得到的dll文件的名字,该dll文件将包含有被iis用来向浏览器返回文本或html代码的经过编译的vb代码。

方法名字指的是管理特定代码功能的vb代码部分,例如计算日期或显示数据库中所有作者的清单。组件方法有点角个黑盒子,它完成特定的工作或根据输入的信息返回特定的信息。一般情况下,在一个组件中可以有多个方法。为了更有效地管理组件的方法,可以将方法按照相似的分类组合在一起,这就是组件类的作用。

组件类能够在内存中生成组件类代码的一个拷贝,在使用asp代码创建对象时,它也被称作对象,这就是实例化。一旦有了组件类代码实例的对象引用,我们就可以从asp代码中调用类中包含的方法。

在我们的例子中,工程、类、方法的名字将用来在asp代码中实例化vb组件,并以方法参数的形式从asp代码中向vb代码传送值,在asp代码中接收从vb方法中返回的值。

从asp文件中调用vb组件

我们用来调用vb组件的asp文件将使用对象变量保存vb对象的引用。在asp文件中,可以使用asp server对象的createobject()方法创建一个对象,该方法将返回一个它创建的对象的引用。在例子中,我们将使用objreference作为组件的对象变量。下面的代码显示asp代码在实例化vb组件时需要使用组件的工程名和类名(exampleproject和exampleclass)。

实例化vb组件的asp代码:

set objreference = server.createobject("exampleproject.exampleclass")


vb组件将从asp代码中接受3个变量的值,并向asp代码返回一个值,该值将存储在名字为strmethodreturn的asp变量中。下面的代码显示出asp代码是如何得到由vb组件返回的值的,它向vb方法传送三个名字分别为param1、param2和parma3的三个参数值:

strmethodreturn = objreference.examplemethod(param1, param2, param3)

param1、param2、param3这三个参数必须与vb组件中方法的定义完全相同,下面是二行实例化vb组件的类、并调用类的方法获得返回值的asp代码的例子:


set objreference = server.createobject("exampleproject.exampleclass")
strmethodreturn = objreference.examplemethod(param1, param2, param3)


下面的图表直观地显示了vb组件的工程、类和方法名字是如何与asp文件中的组件实例化代码协调的。在逐步地学习如何编写例子中的vb代码和asp文件时,可以将下面的图表作为参考。



vb方法的作用

我们例子中简单的vb组件将获得用户的名字和年龄,然后返回一个以天计的用户的年龄,而且有一个可选项,能够提醒某个用户是否已经超过了45岁。

如果我们向组件传送一个虚构的eric clapton作为方法的第一个参数值,将第二个参数设置为56,我们将得到下面的返回字符串:

eric clapton is over 20440 days old.

如果我们将可选的第三个参数设置为true(这一参数将使方法判断用户是否已经超过45岁),我们将会得到下面的返回字符串:

eric clapton is over 20440 days old.

由于使用了三个完全不同的变量━━用户的姓名、年龄以及表示他们是否超过了45岁,因此我们需要使用三个方法参数将这些信息从asp文件传送给vb代码。在vb中,考虑要使用哪些数据类型是十分重要的。我们将使用一个名字为strname的字符串型变量表示用户的姓名,名字为intage的整型变量表示用户的年龄,名字为blnageemphasison的布尔型变量表明用户是否已经超过了45岁。

三个方法参数(传送给vb组件的方法代码的变量):

strname (string)
intage (integer)
blnageemphasison (boolean)

本文关键:使用VB创建ASP服务器端组件
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top