世界软件巨擘微软公司提出的.NET概念给全世界的IT产业指明了新的发展方向,无论是IT业内人士、还是企业决策者,快速领会这个新概念的含义及深远影响,都显得非常必要。
本文通过一个经典学习例程讲述.NET之ASP Web Services的编程、测试及使用,并介绍Web Services中涉及到的数据类型,旨在带领你快速理解其相关概念、含义及作用。全文包括:
概 要
编写代码、领会含义
例程测试
从客户端进行访问
Web Services中的数据类型
结 语
概 要
Internet进化得飞快,Web站点从仅仅提交给浏览器一个用户界面页面,到现在已经转变为能够将组织、应用、服务以及设备迅速联结在一起的可设计Web站点。Web站点不再处于被动的地位,它们变成了可再用的智能化Web Services,即Web服务。
通用语言执行环境(Common Language Runtime,简称CLR)本身就支持创建及使用Web Services。它使用可编程抽象概念,无论对于ASP.NET Web Form开发人员还是VB用户,这都是一致的且熟悉的。而且,结果模型可升级、可扩展,支持开放的Internet标准,比如HTTP、XML、SOAP、SD,因此,它可以被任何客户端或者具备Internet功能的设备访问和使用。
为了更快更好地理解.NET的ASP Web Service应用,下面我们举一个例子来说明。例子就是经典的Hello World应用,也就是简单地返回一个"Hello World"字符串信息。
编写代码、领会含义
ASP.NET通过.asmx文件来支持Web Services,一个.asmx文件就是一个文本文件,类似于.aspx文件。这些文件可以属于包含.aspx文件的ASP.NET
应用程序的一部分。同时,与.aspx文件一样,它们是按照URI方式寻址的。
可以使用最简单的文本编辑器来编写.asmx文件。下面就是.asmx 文件的全部代码。为对照方便,我们列出了使用VB、C#以及JScript三种语言编写的代码:
C#
using System;
using System.Web.Services;
public class HelloWorld : WebService {
[WebMethod] public String SayHelloWorld() {
return "Hello World";
}
}
VB
<%@ WebService Language="VB" Class="HelloWorld" %>
Imports System.Web.Services
Public Class HelloWorld :Inherits WebService
Public Function SayHelloWorld() As String
Return("Hello World")
End Function
End Class
JScript
import System;
import System.Web.Services;
public class HelloWorld extends WebService {
WebMethodAttribute public function SayHelloWorld() : String {
return "Hello World";
}
}
上面的代码包含了以下几个含义:
代码最开始必须进行WebService声明,从而定义这个文件为一个Web Service。而且,在同一行中设置好编程语言的类型。
然后,引入名字空间System.Web.Services。注意,这个名字空间属于最基本的元素,必须要包含它。
接着,声明service中的功能模块,也就是类模块,这里的类名叫HelloWorld。这个类来源于基类WebService,而且应该是public类型。
最后,定义service的可访问方法。在表示方法的符号前面,要设置好自定义属性。对应于C#语言,属性值就是[WebMethod];对应于VB,就是。如果没有设置这个属性,那么这个方法就不能从service中访问。一个局部应用可以使用任何的public类型的类,但是只有具备[WebMethod]的类才可以通过SOAP被远程地访问。
例程测试
当对service的请求发生时,.asmx文件将自动地被ASP.NET运行环境所编译。随后的请求就可以由缓冲的预编译类型对象执行。
为了测试编写好的代码,我们需用一个支持ASP.NET的Web服务器。假设这个Web服务器的名称叫做Foo,其上有一个虚拟目录Bar。请跟随下面步骤开始测试:
将代码保存为HelloWorld.asmx
放到Web服务器Foo的虚拟目录Bar下
打开Internet Explorer5,在地址栏输入http://Foo/Bar/HelloWorld.asmx
这时,我们将看到关于这个Web Service的公用方法-也就是那些标记为WebMethod属性的字符,并得知调用这些方法可以使用的协议,比如SOAP或者HTTP GET。
在Internet Explorer的地址栏中输入http://Foo/Bar/HelloWorld.asmx?SDL后,将产生基于服务描述语言(Service






