日期:2011-06-10  浏览次数:20410 次

      微软在其.Net战略中,对其主推的Web服务做了大肆的宣扬。现在,Web服务正如火如荼地发展着,相关的各项新技术层出不穷。Web服务的发展正构筑着互联网时代美好的明天。在本文中,我将向大家介绍Web服务的一些基本知识以及如何用Visual C#一步一步地创建一个简单的Web服务。

一.Web服务概述:

  Web服务是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以发布、定位、通过Web调用。Web服务可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web服务应用程序可以发现并调用它部署的服务。Web服务可以把业务逻辑划分一个一个的组件,然后在整个因特网的范围上执行其功能。所以,它是构造分布式、模块化应用程序的最新技术发展趋势。

二.为什么需要Web服务?

  以前,分布式的应用程序逻辑需要使用分布式的对象模型,通过使用DCOM、CORBA、RMI之类的基本结构,开发人员仍可拥有使用本地模型所提供的丰富资源和精确性,并可将服务置于远程系统中。 

  当已经有中意的中间件平台(RMI、Jini、CORBA、DCOM 等等)时,我们为什么还要为Web而烦恼呢?中间件确实提供了强大的服务实现手段,但是,这些系统有一个共同的缺陷,那就是它们无法扩展到互联网上:它们要求服务客户端与系统提供的服务本身之间必须进行紧密耦合,即要求一个同类基本结构。然而这样的系统往往十分脆弱:如果一端的执行机制发生变化,那么另一端便会崩溃。例如,如果服务器应用程序的接口发生更改,那么客户端便会崩溃。为了能扩展到互联网运用,我们需要一种松散偶合的基本结构来解决这个问题。如此的情况下就迎来了Web服务的诞生。

三.开发环境:

1.Windows 2000 Server操作系统或Windows XP操作系统;
2..Net Framework以及Visual Studio.net开发工具。

四.创建Web服务工程:

我在这里向大家介绍一个美元到人民币转换的Web服务实例,该实例完成的功能相当简单,从名字我们就能知道其中的功能。但是这也是一个非常不错的例子,特别对于初学者,能起到很好的指导作用。在创建Web服务过程中,我们用到的是C#语言。下面就是具体的项目步骤了。

  首先,打开VS.net,新建一个项目,在左边的面板中选择“Visual C#项目”,右边的面板中选择“ASP.NET Web服务”,并命名为“WebService1”,图示如下:


图1

  按下“确定”按钮后,VS.net就开始帮你新建该项目,期间还可能会出现一个用来显示Internet连接的对话框。在新建完项目后,在开发工具中会出现如下所示的界面:


图2

  因为我们要实现的是一个非常简单的Web服务,所以我们需要的功能和我们的代码量都很小,于是就不必去考虑上图中的“服务器资源管理器”和“工具箱”两个超链接,而可以直接点击上图中的“此处”链接进行代码编辑,点击后会打开代码编辑框,图示如下:

图3

  在上面的代码编辑框中,我们先把原有的“Hello World”Web服务的示例代码去掉,替换成我们的代码,最终如下:


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

namespace WebService1
{
/// 
/// Service1 的摘要说明。
/// 
public class Service1 : System.Web.Services.WebService
{
public Service1()
{
//CODEGEN:该调用是 ASP.NET Web 服务设计器所必需的
InitializeComponent();
}

#region Component Designer generated code

//Web 服务设计器所必需的
private IContainer components = null;

/// 
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// 
private void InitializeComponent()
{
}

/// 
/// 清理所有正在使用的资源。
/// 
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing); 
}

#endregion

// WEB 服务
// DollarConvertToRMB() 服务完成美元到人民币的转换
// 若要测试此 Web 服务,请按 F5 键

[WebMethod]
public double DollarConvertToRMB(double Dollar) 
{
return ( Dollar * 8.15);
}