您的位置:首页 > 其它

WCF 学习笔记一 (wcf 基础)

2011-04-11 23:45 218 查看
一.摘要

WCF基于Windows 平台下开发和部署服务的SDK,WCF为服务提供了运行时环境,使得开发者能够将CLR类型公开为服务,又能够以CLR类型的方式使用服务。

二.前言

Service是公开的一组功能的集合。从软件设计的角度考虑,软件设计思想经历了从函数发展到对象,从对象发展到组件,再从组件发展到服务的几次变迁,最后发展到面向服务,SO是一组原则的抽象。

   服务内部包含了诸如语言,技术,平台,版本与框架等诸多概念,而服务之间的交互,则只允许指定的通信模式。

客户端与服务通过消息的发送与接收进行交互。WCF 中的消息通常是SOAP消息,与Web服务不同,这些消息与传输协议无关,因此,WCF服务可以在不同的协议之间传输,而不仅限与HTTP,WCF客户端可以与非WCF服务完成操作,WCF服务也可以与非WCF客户端交互。如果需要同时开发客户端和使用服务,则创建的应用程序两端都要求支持WCF,如此才能利用WCF的特定优势。

三 服务的组成

地址:wcf的每一个服务都具有一个唯一的地址(Address)。地址包含两个重要元素:服务位置与传输协议(transport protocol),或者是用于服务通信的传输样式(transport schema)服务位置包括目标机器名,站点或网络,通信端口,管道或队列,以及一个可选的特定路径或者是URL. Wcf 支持HTTP TCP Peer network(对等网) IPC(内部进程通信) MSMQ

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

服务契约 Service Contract:

服务契约描述了客户端能够执行的服务操作。

数据契约 Data Contract:

数据契约定义了与服务交互的数据类型,WCF 为内建类型如int和string隐式地定义了契约;我们也可以非常便捷地将定制类型定义为数据契约。

错误契约 Fault Contract:

错误契约定义了服务抛出的错误,以及服务处理错误和传递错误到客户端得方式。

消息契约 Message Contract:

消息契约允许服务直接与消息交互,在互操作性的场景下,消息契约非常有用。

托管:WCF 服务都必须托管host 在windows进程中,该进程被称为宿主进程 Host Process ,单个宿主进程可以托管多个服务,而相同的服务类型也能够托管在多个宿主进程中。宿主可以由Internet 信息服务 windows 服务,或者是应用程序的一部分。

绑定:服务之间的通信方式是多种多样的,有多种可能的通信模式。

基本绑定: Basic Binding

由BasicHttpBinding类提供。基本绑定能够将WCF服务公开为传统的ASMX Web服务,使得旧的客户端与新的服务协作。如果客户端使用了基本绑定,那么新的WCF客户端就能够与旧的ASMX服务协作。基本绑定使得你的服务看起来像是一个传统的web服务,能够基于基本的Web服务信息进行通讯。

TCP 绑定:

由NetTcpBinding类提供。TCP绑定使用了TCP 协议实现在intranet中跨机器的通信。TCP 绑定支持多种特性,包括可靠性,事务性,安全性以及WCF之间通信的优化。需要客户端与服务都必须使用WCF 。

IPC 绑定:

由NetNamedPipeBinding类提供。

WEB服务(WS) 绑定:

由WSHttpBinding类提供。WS绑定使用HTTP或 HTTPS进行传输,为基于internet的通信提供了多种特性(诸如可靠性,事务性与安全性) 这些特性均遵循WS标准 该绑定被设计用来与支持WS标准的系统进行互操作。

WS双向绑定 Duplex WS Binding

由WSDualHttpBinding类提供。WS双向绑定与WS绑定相识,但它还支持从服务到客户端的双向通信。

MSMQ绑定

由NetMsmqBinding类提供。它使用MSMQ进行传输,用以提供对断开的队列调用的支持。

终结点:

服务与地址,绑定以及契约有关。其中,地址定义了服务的位置,绑定定义了服务通信的方式,契约则定义了服务的内容,为便于记忆,我们可以将这种类似于” 三权分立”一般管理服务的方式简称为服务的ABC。WCF用终结点表示这样一种组成关系。终结点就是地址,契约与绑定的混成品。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: