WCF 学习笔记一 (wcf 基础)
一.摘要
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用终结点表示这样一种组成关系。终结点就是地址,契约与绑定的混成品。
出处:http://www.cnblogs.com/liuyong/
作者喜欢研究 Sql Server ,ASP.NET MVC , Jquery WCF 等技术,同时关心分布式架构的设计应用。转载请保留原文链接,谢谢!