WCF 初识(一)

时间:2024-12-25 19:05:20

WCF的前世今生

在.NETFramework 2.0以及前版本中,微软发展了Web Service(SOAP with HTTP communication),.NET Remoting(TCP/HTTP/Pipeline communication)以及基础的Winsock等通信支持。

由于各个通信方法的设计方法不同,而且彼此之间也有相互的重叠性(例如.NET Remoting可以开发SOAP, HTTP通信),对于开发人员来说,不同的选择会有不同的程序设计模型,而且必须要重新学习,让开发人员在用户有许多不便。

同时,服务导向架构(Service-Oriented Architecture)也开始盛行于软件工业中,因此微软重新查看了这些通信方法,并设计了一个统一的程序开发模型,对于数据通信提供了最基本最有弹性的支持,这就WCF( Windows Communication Foundation)。

WCF是Microsoft为构建面向服务的应用提供的分布式通信编程框架,由.NET Framework 3.0开始引入,是.NET Framework 3.5的重要组成部分。根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的企业级互联应用解决方案,且能与已有系统兼容协作。

WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,如Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;

以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。

WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。

WCF的优势

  • l  统一性

  WCF涵盖了之前微软推出的所有用于分布式开发的技术,包括Remoting、Web Services、WSE、MSMQ等,并以一种统一的编程模式来实现。

  • l  互操作性

  WCF最基本的通信机制是SOAP(Simple Object Access Protocol 简易对象访问协议),这就保证了系统之间的互操作性,也能够实现.NET客户端与.NET服务端的通信,提供了分布式事务的支持。

  • l  安全性和可靠性

  WCF在安全性上,它完全遵循了WS-*的标准,在SOAP 的header中增加了WS-ReliableMessaging允许可信赖的端对端通信。而建立在WS-Coordination和WS- AtomicTransaction之上的基于SOAP格式交换的信息,则支持两阶段的事务提交(two-phase commit transactions)。

  • l  兼容性

WCF充分的考虑到了与旧有系统的兼容性。安装WCF并不会影响原有的技术如ASMX和.Net Remoting。即使对于WCF和ASMX而言,虽然两者都使用了SOAP,但基于WCF开发的应用程序,仍然可以直接与ASMX进行交互。

WCF与其他分布式技术对比表

特性

Web Service

.NET Remoting

Enterprise Services

WSE

MSMQ

WCF

具有互操作性的Web服务(跨平台)

支持

支持

.NET到.NET的通信

支持

支持

分布式事务

支持

支持

支持WS标准(安全可靠性)

支持

支持

消息队列

支持

支持

WCF的体系结构

WCF 初识(一)

WCF主要构成

WCF 初识(一)

 

Endpoint

Endpoint是WCF实现通信的核心要素。一个WCF Service由一个Endpoint集合组成,每个Endpoint就是用于通信的入口,客户端和服务端通过Endpoint交换信息。
Endpoint由三部分组成:Address,Binding,Contract。便于记忆,我们往往将这三部分称为是WCF的ABC。
Address

Address通过一个URI唯一地标识一个Endpoint,并告诉潜在的WCF service的调用者如何找到这个Endpoint。

Binding

Binding实现在Client和Service通信的所有底层细节。比如Client与Service之间传递的Message是如何编码的—— text/XML, binary,MTOM;这种Message的传递是采用的哪种Transport——TCP, Http, Named Pipe, MSMQ; 以及采用怎样的机制解决Secure Messaging的问题——SSL,Message Level Security。

Contract

Contract的主要的作用是定义通信协议,具体Service提供了哪些方法。

Behavior

Behavior: Behavior的主要作用是定制Endpoint在运行时的一些必要的Behavior。比如Service回调Client的Timeout;Client采用的Credential type;以及是否支持Transaction等。

WCF构建流程

(1)、定义服务协定。 服务协定指定服务的签名、服务交换的数据和其他协定要求的数据
(2)、实现协定。 若要实现服务协定,请创建实现协定的类并指定运行时应具有的自定义行为。
(3)、通过指定终结点和其他行为信息来配置服务
(4)、承载服务
(5)、生成客户端应用程序。

引用链接:

1,WCF系列学习5天速成 http://www.cnblogs.com/huangxincheng/category/340145.html
2,WCF入门学习【Sheldon_Lou】http://www.cnblogs.com/sheldon-lou/category/648478.html
3,无废话WCF系列教程 http://www.cnblogs.com/iamlilinfeng/category/415833.html
4,WCF编程 http://www.cnblogs.com/zxj159/category/604460.html
5,WCF入门【停留的风】http://www.cnblogs.com/yank/category/568085.html
6,WCF初探【wangweimutou】http://www.cnblogs.com/wangweimutou/tag/WCF/
7,WCF【指尖流淌】http://www.cnblogs.com/zhijianliutang/category/277163.html
8,WCF【xfrog】---重点 http://www.cnblogs.com/xfrog/tag/WCF/