幸运星空

Lucker的程序人生

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Windows Communication Foundation(WCF)是由微软发展的一组用于公开和基于服务的数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分,由 .NET Framework 3.0 开始引入,与 Windows Presentation Foundation及 Windows Workflow Foundation并行为新一代 Windows 操作系统以及 WinFX 的三个重大应用程序开发类库。

从功能的角度来看,WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的并集。(注:这种说法仅仅是从功能的角度。事实上WCF远非简单的并集这样简单,它是真正面向服务的产品,它已经改变了通常的开发模式。)因此,对于上述汽车预约服务系统的例子,利用WCF,就可以解决包括安全、可信赖、互操作、跨平台通信等等需求。开发者再不用去分别了解.Net Remoting,ASMX等各种技术了。

概括地说,WCF具有如下的优势:
1、统一性
2、互操作性
3、安全与可信赖
4、兼容性

WCF 的基本概念是以合约(Contract) 来定义双方沟通的协议,合约必须要以接口的方式来体现,而实际的服务代码必须要由这些合约接口派生并实现。合约分成了四种:

  数据合约 (Data Contract),订定双方沟通时的数据格式。
  服务合约 (Service Contract),订定服务的定义。
  操作合约 (Operation Contract),订定服务提供的方法。
  消息合约 (Message Contract),订定在通信期间改写消息内容的规范。

示例代码:

[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")] // 服务合约

public interface ICalculator

{

  [OperationContract] // 操作合约

  double Add(double n1, double n2);

  [OperationContract] // 操作合约

  double Subtract(double n1, double n2);

  [OperationContract] // 操作合约

  double Multiply(double n1, double n2);

  [OperationContract] // 操作合约

  double Divide(double n1, double n2);

}

应用场景示例:

汽车租赁公司准备升级自己的汽车预订系统,该系统需要满足:
1,新建的呼叫中心的客户端高效访问;
2,原有的基于J2EE的应用也能安全稳定的与新服务通讯;
3,各合作伙伴(可能基于各种不同的平台的技术)可以通过互联网调用公司提供的服务;

1224907427_ddvip_6678

要想同时满足这三个需求,WCF正好能够提供统一的,互操作性的,安全稳定的,而且兼容各通讯技术标准的服务。因此,这个案例中,WCF技术成为技术首选。

另一个应用场景:

《完》

posted on 2012-09-25 15:23  Lucker  阅读(251)  评论(0编辑  收藏  举报