WCF学习与实践——基础知识

WindowsCommunication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分。由 .NET Framework 3.0 开始引入。

WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。

WCF合并了Web服务、.net Remoting、消息队列和Enterprise Services的功能并集成在Visual Studio中。

WCF专门用于面向服务开发。

构建一个WCF程序通常分为三个部分:服务类(Server)、宿主(Host)、客户程序(Client)。有一个很重要的程序集(System.ServeiceModel)要引用,它包含WCF的核心功能。主要内容

1.地址(addresses)

2.契约(contracts)

3.绑定(bindings)

4.端点(endpoints)

5.寄存

一、地址(addresses)

   地址由模式、域、端口和路径组成。模式指所用的传输协议如TCP、命名管线、HTTP、MSMQ等,WCF中针对这些协议的模式为net.tcp 、net.pipe、 http 、net.msmq。

   地址通常采用如下格式:
    [基地址]/[可选的URI]
基地址(Base Address)通常的格式如下:
[传输协议]://[机器名或域名][:可选端口]

http://localhost:8001
http://localhost:8001/MyService
net.tcp://localhost:8002/MyService
net.pipe://localhost/MyPipe
net.msmq://localhost/private/MyService
net.msmq://localhost/MyService

二、契约(contracts)

WCF 的所有服务都会公开为契约(Contract)。契约与平台无关,是描述服务功能的标准方式。WCF 定义了四种类型的契约。

服务契约: 定义一个接口,给接口附加[ServiceContract],给接口方法附加[OperationContract]

数据契约: 数据契约定义将在客户端与服务器端传送的各种数据类型。定义数据契约时需要使用[DataContract] 和[DataMember] 。

消息契约: 可以使用消息契约来定制WCF 服务与WCF 客户间相互通讯的SOAP 消息格式。

错误契约: 定义在服务中如何处理异常,以及这些异常又如何传送到客户端。

三、绑定(bindings)

   Binding实现的是在客户端和服务端进行通讯的底层细节,包括数据如何传输(比如采用Tcp,Http等),如何解决安全问题(SSL,Message LevelSecurity等),传输的消息的格式(如text/xml,MTOM,binary等)。

Binding包括三个组成部分:NameSpace,Name和BindingElement

HTTP协议:BasicHttpBinding 、WSHttpBinding 和WSFederationHttpBinding 。

两个HTTP 通道实现双向通讯:WSDualHttpBinding。

TCP协议:NetTcpBinding。

P2P:NetPeerTcpBinding。

 命名管道:NamedPipeBinding。

消息队列:NetMsmqBinding 和MsmqIntegrationBinding。

四、端点(endpoints)

  端点的用处是方便客户程序调用服务的操作。端点定义了在什么地方可以访问服务、用什么方式访问以及有哪些操作可用,这就是端点的三要素(地址绑定 契约)。端点可以在程序中设置也可以用配置文件的形式设置。

五、寄存

  服务做好了后需要能够运行,因为客户在调用服务的时候服务必须是处在运行状态的,这就需要将服务寄存在一个地方,在一些Demo中会使用控制台程序来做宿主寄存服务,除此之外还可以是WinForm程序、WPF应用、Windows 服务、IIS、WAS等。

参考资料有:

http://www.cnblogs.com/wujy/archive/2013/04/07/3006196.html

http://www.cnblogs.com/jillzhang/category/121346.html

http://www.cnblogs.com/xiaowuzi/p/3547341.html

 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值