菜鸟学习WCF笔记-契约(Contract)
契约,契约确保了服务的正常调用,客户端以契约的方式进行服务端调用,而服务则需要按照契约规定的方式提供服务。
契约是服务提供的一组操作的描述
功能上讲:每个操作对应着某个具体的功能实现,以及调用这个操作的输入和输出。
消息交换层面上讲:每个操作定义了所采用的消息交换模式和消息本身的结构。
WCF支持请求-恢复,单向,双工三种消息交换模式,其中前面两种是基本的消息交换模式,是可以直接在操作中进行描述的,双工模式的消息交换可以看成是这两种基本消息交换模式的组合。
如果按照双工模式进行消息交换,则意味着参与消息交换的双方均可以向对方发送消息,双工通信不仅使服务回调客户端成为可能,还可以帮助我们实现基于发布-订阅的方式进行通信。
在众多系统绑定中,除了NetTcpBinding之外,WSDualHttpBinding也支持双向通信。不过就实现双向通信的机制来说,它们之间不具有本质的不同。就传输协议本身来说,TCP是支持双向通信的,而HTTP则不支持。WSDualHttpBinding提供的双向通信实际上是通过创建两个关联的HTTP通道实现的。
数据契约
契约是交互双方或多方就某个问题达成的一种共识,而消息交换是WCF通信的唯一手段,所以四大契约(服务契约,数据契约,消息契约和错误契约)最根本的目的在于对消息的结构进行规范。
菜鸟学习WCF笔记-契约(Contract)的更多相关文章
- 菜鸟学习WCF笔记-概念
背景 WCF这个词语一直不陌生,以前也使用过多次在实际的项目中,但是一直没有时间来做个系统的学习,最近抽点时间,看看 蒋金楠的<WCF全面解析>学习下,顺带做些笔记,如有错误,欢迎各路大神 ...
- 菜鸟学习WCF笔记-Address
终结点是WCF最为核心的对象,因为它承载了所有通信功能.服务通过相应的终结点发布出来,客户端通过与之匹配的终结点对服务进行调用.终结点有地址.绑定和契约ABC三要素构成. Address 作为终结点 ...
- WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]
WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...
- 学习WCF笔记之二
一.学习文章http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html 二.步骤 学习WFC,按照大神的文章一步步学习,不过 ...
- 开心菜鸟学习系列笔记-----Javascript(1)
js 一些常见的使用方法 // target : 不管是否出现冒泡,他都是代表最开始引发事件的对象 // this : 是指当前函数. //ie 事件对象 : window ...
- 开心菜鸟学习系列学习笔记------------nodejs util公共函数
global 在最外层定义的变量: 全局对象的属性: 隐式定义的变量(未定义直接赋值的变量). 一.process process 是一个全局变量,即 global 对象的属性 ...
- WCF分布式开发步步为赢(6):WCF服务契约继承与分解设计
上一节我们学习了WCF分布式开发步步为赢(5)服务契约与操作重载部分.今天我们来继续学习WCF服务契约继承和服务分解设计相关的知识点.WCF服务契约继承有何优势和缺点?实际项目里契约设计有什么原则和依 ...
- 重新学习WCF
近来工作不怎么忙,一直在想一个问题,今年刚刚毕业,对于我们这应届生到底应该学习那些技术呢? 面对着现在技术横生,到底哪项是适合自己的呢?自己一直都在迷茫,若有那位大神再次经过,望给出您宝贵的建议. 最 ...
- WCF 笔记 (2) - 传输泛型 List 对象
WCF 笔记 (2) - 传输泛型 List 对象 本帖介绍怎么在 WCF 中,在 Server-side 和 Client-side 之间,传递默认无法传输的 List<T>.List& ...
随机推荐
- java.net.URL 模拟用户登录网页并维持session
java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStream ...
- OpenLDAP与phpldapadmin的搭建
最近一直在看LDAP的东西,把自己的记录下来,以后可以看看. 1:环境 1):关闭防火墙 service iptables stop 2):setenforce 0 vim /etc/sysconfi ...
- Arduino 报错总结
Arduino出现avrdude: stk500_getsync(): not in sync: resp=0x00 )首先检查是否选择了合适的板子,选错主板型号也会造成上述错误 )重新安装驱动,换个 ...
- HttpClient请求发送的几种用法:
/// <summary> /// HttpClient实现Post请求 /// </summary> static async void dooPost() { string ...
- color 和 mode
------siwuxie095 color 设置默认的控制台前景和背景的颜色 语法:COLOR [attr] attr 用于指定控制台输出的颜色属性,此属性由两个十六进制数字指定, 第一个为背景颜 ...
- linux下mysql集群的安装
3台redhat服务器: SQL节点(mysqld): 192.168.1.77;192.168.1.78 数据节点(ndbd): 192.168.1.77;192.168.1.78 管理节点(ndb ...
- win7添加鼠标右键关联
背景: hfs升级把右键给升没了 搜索了下 都是如何删除的 但没有怎么添加 添加: 保存如下内容为.reg 然后双击导入即可 Windows Registry Editor Version 5.00 ...
- android中的MVP模式
1.建立bean public class UserBean { private String mFirstName; private String mLastName; public UserBea ...
- Windows CMD命令大全【转】
命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全.稳定,有的用户还在使用,所以一 ...
- Linux ps命令详解与示例说明
ps:要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结 ...