微软的.NET开发平台已经发布好长时间了,我们现在需要放弃以前编写的组件而转到VB.NET和C#吗?答案是否定的。我们既不需要放弃以前的组件,反而可以加以利用。大多数程序开发人员要从以前的开发环境迁移到VB.NET和C#是需要付出一定的代价的。然而,为了保持现存程序的兼容性,仍然需要使用VB6。值得庆幸的是,微软的SOAP开发工具Simple Object Access Protocol (SOAP) Toolkit给了我们一个既可以利用以前的我们用VB6编写的ActiveX DLL,又可以利用Web Services的给我们带来的好处,它可以让我们的组件作为一种服务通过SOAP在WEB上使用。
SOAP为我们编写分布式的应用程序提供了方便,我们可以利用它以一种平台无关和位置无关的方式来调用组件。SOAP客户端向服务器发送请求信息,要求执行组件的功能,服务器处理发送的请求,执行我们需要的函数,然后把执行结果以响应信息发送到客户端。这些消息都是XML格式的,而且可以以多种协议在客户端和服务器之间进行传输,我们就以最常用的HTTP协议做为例子。
SOAP利用HTTP作为传输机制能够让我们创建的应用程序不但可以是本机的,还可以是局域网的,还可以是因特网的。由于XML是平台无关的,因此我们写的应用程序可以在Windows,Unix,以及手持或无线设备上应用。
现在我们就看看如何把我们的ActiveX DLL通过SOAP ToolKit转换成Web Services。调查是因特网上最常见的一项内容,我们就把调查作为一个组件,能够让其它应用和网页使用,调查组件TestServey实现三个函数:RequestSurvey,RespondToSurvey和SurveyResults。
打开Visual Basic6.0,新建一个ActiveX DLL工程,名为TestSurvey,VB6会自动添加一个名为Class1的类,把它更改为Survey,工程属性如下图所示:
然后输入下面的代码:
Option Explicit
Public Function RequestSurvey(intSurveyID As Integer) As String
Dim strSurvey As String
'只是简单的例子
strSurvey = "您认为Web Services能够对IT产生革命性的影响吗?"
RequestS