微软.NET3.5 开发服务的主要过程

 本文结合实例描述了用VisualStudio2008如何开发WCF服务。

一、服务编程生命周期

   

    1、服务设计

    2、服务实现

    3、配置服务

    4、服务宿主运行(Hosting Service in an application)

        相当于服务的部署,以及服务运行环境

    5、构建客户端

   

二、服务设计

    服务设计的内容包括:

  • 服务接口设计:        

        主要是设计服务的接口,通过两种方式进行服务契约设计,一是手工编写接口类,二是通过类图设计(图形化),类图感觉用起来不是很方便。

          接口设计也包括交换的数据类型的设计、请求与响应模式、单向、双工模式设计。

 

public interface ICalculatorService

{

    [OperationContract]

    double add(double n1, double n2);

    [OperationContract]

    double minus(double n1, double n2);

    [OperationContract]

    double multiply(double n1, double n2);

    [OperationContract]

    double divide(double n1, double n2);

    // 任务: 在此处添加服务操作

}

  

  • 服务安全与事务设计
  • 可靠性设计

   

三、服务实现

    实现服务设计中定义的接口。WCF中即可通过实现"服务设计"中定义的接口来创建服务,也可以通过直接创建一个带标记的类来实现服务(与SCA类似)。

 

public class CalculatorService : ICalculatorService

{  

#region ICalculatorService 成?员?

public double add(double n1, double n2)

{

return n1 + n2;

}

public double minus(double n1, double n2)

{

return n1 - n2;

}

public double multiply(double n1, double n2)

{

return n1 * n2;

}

public double divide(double n1, double n2)

{

return n1 / n2;

}

#endregion

}

  

    在编写好上述服务代码后,可以对服务进行调试,在VS2008中,可以直接运行一个服务,此时,系统自动启动服务,并弹出一个服务测试的客户端,通过这个客户端开发人员可以进行服务的测试。

    服务测试客户端界面:

   

四、配置服务

    服务调试完毕,需要对服务的绑定协议、端口、安全策略进行配置。

     

 

<service name="CalculatorServiceLib.CalculatorService" behaviorConfiguration="CalculatorServiceLib.CalculatorServiceBehavior">

<host>

   <baseAddresses>

   <add baseAddress = "http://localhost:8731/Design_Time_Addresses/CalculatorServiceLib/CalculatorService/" />

  </baseAddresses>

</host>

<!-- Service Endpoints -->

<!-- 除非完全限定,否则地址将与上面提供的基址相关-->

<endpoint address ="" binding="wsHttpBinding"    contract="CalculatorServiceLib.ICalculator">

<!-- Metadata Endpoints -->

<!-- 元数据交换终结点由服务用于向客户端做自我描述-->

<!-- 此终结点不使用安全绑定,应在部署前确保其安全或将其删除-->

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>

   

</service>  

     

五、服务客户端

    通过svcutil命令行生成客户端Stub代码。命令行为:

    svcutil.exe /language:cs /out:"e:/tmp/vs2008/CalcSvc/CalculatorClient.cs" http://localhost:8731/Design_Time_Addresses/CalculatorServiceLib/CalculatorService/mex

这一点,用起来很不爽,命令行的方式让习惯了Eclipse开发的人非常难以接受。

   

 

// Create a client.
CalculatorClient client = new CalculatorClient();

// Call the Add service operation.
double value1 = 100.00D;
double value2 = 15.99D;
double result = client.Add(value1, value2);
Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result);

   

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值