在真实世界里使用Web服务

ZDNet软件频道 时间:2004-10-27 作者:Builder.com |  我要评论()
本文关键词:TonyPatton
尽管Web服务在过去几年里掀起了狂潮,但是我不是一定要使用Web服务,—直到最近。我使用了用Java创建的后端和用.NET构建的用户界面。
本文译自Builder.com,未经许可请勿转载

尽管Web服务在过去几年里掀起了狂潮,但是我过去不是一定要使用Web服务的——直到最近。我当时正在进行一个项目,它使用了用Java创建的后端和用.NET构建的用户界面。Java和.NET组件之间的通讯是成功项目所需要的,所以Web服务被安装在Java端,由.NET前端使用。

Web服务简化了把两个单独的环境集成到一起的过程,所以它对双方来说是一种双赢的因素。而且,我对在.NET端使用外部Web服务是多么容易的印象十分深刻。在本周的专栏里,我将说明这有多么简单;而且,在本时事通讯未来的文章里,我将谈到使用.NET框架构建Web服务的诸方面内容。

你需要什么
在.NET项目里使用Web服务涉及到创建和编译代理类,它的生成是从参照到Web服务的。这个参照可以是多种格式:

  • ASMX文件:用.NET框架创建的Web服务
  • WSDL文件:含有Web服务描述语言(Web Services Description Language,WSDL)的文件或者URL,它用来描述服务及其接口
  • DISCO一项微软用来发布和发现Web服务的技术(它让客户端在端点处折返,从而发现服务及其相关WSDL文档成为可能。)

如果你使用Visual Studio .NET,那么通过添加Web索引(Web Reference)把Web服务加入到你的项目里就很容易了。此外,你可以使用.NET框架里的WSDL.exe工具。

下面就是使用Web服务的过程:

1.       找到带有文件或者URL的Web服务。

2.       使用WSDL.exe或者你最喜欢的集成开发环境(IDE)创建Web服务的代理类。

3.       使用合适的编译器(或者IDE)编译代理类。

4.       在代码里使用代理类来利用Web服务。

为了更好地说明这一点,我将要使用来自xMethod Web网站的一个Web服务示例。这个服务可利用给定的美国邮政编码来获得(当地)的温度。在这里,第一步已经完成了,所以WSDL文件被用来创建代理类:

WSDL.exe /out:TemperatureService.cs /n:BuilderWS /l:CS
http://www.xmethods.net/sd/2001/TemperatureService.wsdl

如果使用VB.NET的话,就要进行一点改变:语言选择应该是/l:VB。这一步的结果是一个源代码文件。

下面列出了使用C#完成相同目的的代码:

现在你可以用自己的IDE或者命令行来编译源代码。下面几行显示了如何使用命令行的C#编译器来编译代码:

csc /t:library /out:TemperatureService.dll TemperatureService.cs
/reference:System.Web.Services.dll /optimize


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134