从SOAP Toolkit移植到Web 服务[3]

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

本文简介:选择自 ch21st 的 blog

   "passed first name and last name, return an id")> _
public function createcustomer( _
      byval first as string, _
      byval last as string) as string
8. 从visual basic 6.0代码转换为visual basic .net只需修改一处。将函数中的createcustomer =用return代替,如下所示:
9.    return "a" & cstr(len(first)) & _
10.                         cstr(len(last))
11. end function
12. 从build菜单中选择build创建web服务。查看output窗口,检查建立中的错误。discovery文件被创建为此构建的一部分。
创建客户
不必创建.net客户——利用soap toolkit创建的visual basic 6.0应用程序能够访问xml web服务。下面这些步骤演示了如何为web服务创建.net客户,而不必考虑web服务是在visual basic 6.0 还是在 visual basic .net中编写的:
1. 从file菜单中,选择new,然后选择project,显示add project对话框。
2. 从visual basic projects部分中,选择windows application。
3. 在name框中指定工程名(migratetowebclient),单击ok创建工程。
4. 在方案管理器中右击工程,然后选择add web reference。add web reference对话框出现,如图6所示。
 
图 6. add web reference 对话框
5. 在address框中输入web服务工程中.vsdisco文件的url——例如http://localserver/customers/migratetonetservice.vsdisco。单击address框尾部的下拉箭头,选择引用。
注意  通过将.vsdisco文件从方案管理器拖放到代码模块中,也可以得到web服务工程中.vsdisco文件的url。然后在模块中剪切url,然后将它粘贴到add web reference对话框中的address框。
6. 单击add reference按钮返回工程。对web服务的引用就出现在方案管理器中,如图7所示。
 
图 7. 引用了 web 服务之后的visual basic windows应用程序
7. 在窗体上,文本框txtfirstname 和 txtlastname用于保存客户姓名,按钮代码调用web服务。
8. 添加代码,声明变量,用此变量引用处理web服务的代理类(默认类名由服务器名和web服务名组件):
private sub cmdcreate_click() 
dim cc as localhost.service1
9. 添加代码初始化代理类,调用web服务的方法:
set cc = new localhost.service1
me.txtcustid.text = _
       cc.createcustomer(me.txtfirstname.text, _
                     me.txtlastname.text)
end sub
10. 按f5运行客户端应用程序,访问web服务。
从 soap toolkit 转换到 visual studio .net
利用soap toolkit 或 xml web服务构建的应用程序符合soap准则。对于基于soap的应用程序,客户与web服务间的链接专门由wsdl文件定义。用soap toolkit构建的web服务可以被用.net构建的web服务调用,反之亦然。这样保留服务常量的wsdl定义,就可以分批将soap toolkit应用程序移植到.net中。例如,访问web服务的客户仍可以使用soap toolkit中的 soapclient客户端,同时将web服务转换为.net中。
保留web服务常量wsdl文件最简单的方法是从soap toolkit创建的wsdl文件中生成web服务的结构。如果向此应用程序传递如下参数,.net wsdl.exe实用程序将为web服务生成visual basic .net结构:
 /l 参数。控制生成代码的语言。默认是c#。传递/l:vb参数会生成visual basic代码。
 /server 参数。指示程序生成web服务的服务器端代码(原文有残)。默认是生成客户端代理。
 wsdl文件名。
要从cust.wsdl文件中为示例web服务创建代码,使用:
wsdl.exe /l:vb /server cust.wsdl
生成的结构代码将保存在cust.vb文件中。可以将代码从此文件中拷贝asmx模块中,然后将visual basic 6.0代码拷贝到asmx模块中的同一程序中。如果要创建完整的.net版本的web服务,由soap toolkit生成的wsdl文件可用于为web服务生成结构代码。
在客户端,访问web服务的不同客户应用程序可以分别从soap toolkit 转换到.net中。甚至单个客户端向.net的转换也可以分期进行,因为soap准则提供了交互操作性。在客户端要将应用程序soap toolkit转换到visual studio .net中,必须用对web服务代理的引用代替对soapclient的引用。
小结
本文中学习了如何从visual basic 6.0 和 visual basic .net访问web服务,也讨论了如何将现有soap应用程序转换到.net平台中。
需要记住的要点为:
 wsdl文件是用于描述发送到web服务的soap文档的。在visual basic 6.0中,可以使用soap toolkit中的wsdl generator创建此文件。在visual studio .net中,此文件将自动创建。
 在visual basic 6.0中创建web服务时,需要微软wsml文件和独立的asp接收器网页。而在visual studio .net中创建web服务时,两个文件都不需要。
 客户和服务可以自由混合而不管平台如何。利用soapclient可以从visual basic 6.0 客户端或asp页中调用visual basic .net服务。visual basic 6.0 web服务也可以利用soapserver处理来自visual studio .net 客户的请求。
 wsdl.exe实用程序用于从被soap应用程序使用的wsdl文件中为.net版本的web服务创建结构。
关于作者
peter vogel (mba, mcsd)是ph&v信息服务公司的主要负责人。ph&v专门设计和开发基于com/com+的系统。peter已经为bayer ag、exxon、christie digital以及canadian imperial bank of commerce设计、构建和安装了基于企业内部网和组件的系统。他还是smart access and xml developer时事通讯的编辑,著有the visual basic object and component handbook (prentice hall)一书,目前正在编写user interface design (apress)一书。peter还在learning tree international授课。他的文章已经在致力于基于visual basic开发的主要杂志上发表,并存入了microsoft developer network® (msdn)库。peter还经常出席在北美、澳大利亚及欧洲的会议。
关于 informant 通讯集团
informant通讯集团公司(www.informant.com)是以信息技术领域为核心的多样化媒体公司。它成立于1990年,并专注于软件开发出版物,讨论会,目录发行和网站。在美国和英国设有办事机构,icg成为一家受欢迎的媒体公司,并销售目录集成器,满足了it专业人员对于高质量技术信息不断增长的需求。
版权所有 © 2002 informant通讯集团公司和微软公司
技术编辑:pdsa公司及 kng consulting公司

本文关键:SOAP Toolkit Web 服务 Visual Basic .NET
  相关方案
Google
 

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

go top