摘要: 信道架构把一系列分布式编程技术统一为一个单独的编码模型。这个架构允许服务独立于传输协议和编码协议而创建,因此支持多种通信形式。绑定是支持特殊通信类型的预先设置好的信道栈。WCF提供9种预定义绑定。 阅读全文
posted @ 2011-06-29 10:31 Gavin Liu 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 通过在一个服务中使用多个终结点,你可以配置一个服务通过多个绑定暴露它的能力,这就像在第二章”一个服务中的多个契约和终结点”描述的那样。这意味着客户端可以使用更多被支持的可选绑定来连接到服务端。通用的场景是使用netTcpBinding绑定把一个服务暴露给一个.NET应用程序,使用wsHttpBinding绑定把同样的服务暴露给一个Java应用程序,使用basicHttpBinding绑定再次把服务暴露给原有的旧的客户端。 阅读全文
posted @ 2011-06-29 10:30 Gavin Liu 阅读(276) 评论(0) 推荐(0) 编辑
摘要: WCF在预设绑定中提供了很多信道和编码器。这些信道提供了在自定义绑定中使用的绑定元素。这一部分提供WCF内部绑定元素列表以及它们的使用方面。传输信道存在于TCP,HTTP,命名管道,HTTP(SSL/TSL加密),MSMQ和对等网络。 阅读全文
posted @ 2011-06-29 10:29 Gavin Liu 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 有很多时候预先设置好的绑定不满足你的服务的需求。一般的场景包含了自定义安全和额外传输协议,都不被WCF支持。一个例子是WCF中不支持UDP协议。对UDP协议的支持是以Windows SDK 中的例子来实现的。考虑到这些情况所以WCF提供了创建自定义绑定的能力。自定义绑定可以由代码或配置文件创建。一个自定义绑定的代码使用System.ServiceModel.Channels命名空间中的CustomBinding 类来生成。这个类暴露了一个你可以添加绑定元素的绑定元素集合。这允许你构造一个基于一系列现有绑定元素的新的绑定。 阅读全文
posted @ 2011-06-29 10:28 Gavin Liu 阅读(213) 评论(0) 推荐(0) 编辑
摘要: msmqIntegrationBinding 绑定用来在一个WCF应用程序和一个直接利用MSMQ的应用程序间通信-比如,使用System.Messaging.这允许开发人员利用WCF同时也使用他们已有的MSMQ应用程序。msmqIntegrationBinding绑定允许MSMQ消息映射到WCF消息。这通过在MsmqMessage类中对MSMQ消息包装来实现的。类位于System.ServiceModel.MsmqIntegration命名空间里。实例可以使用单向契约被发送或接收。 阅读全文
posted @ 2011-06-29 10:27 Gavin Liu 阅读(172) 评论(0) 推荐(0) 编辑
摘要: MSMQ 为使用队列创建分布式应用程序提供支持。WCF支持将MSMQ队列作为netMsmqBinding绑定的底层传输协议的通信。netMsmqBinding绑定允许客户端直接把消息提交到一个队列中同时服务端从队列中读取消息。客户端和服务端之间没有直接通信过程;因此,通信本质是断开的。也意外着所有的通信必须是单向的。因此,所有的操作必须要在操作契约上设置IsOneWay=true属性 阅读全文
posted @ 2011-06-29 10:26 Gavin Liu 阅读(220) 评论(0) 推荐(0) 编辑
摘要: WCF使用微软消息队列(MSMQ)来提供基于队列的通信能力。有两个使用MSMQ的绑定: netMsmqBinding和msmqIntegrationBinding. netMsmqBinding绑定一般在创建以WCF和MSMQ作为传输方式的应用程序时使用。msmqIntegrationBinding绑定用来于一个已有的MSMQ应用程序进行交互。 阅读全文
posted @ 2011-06-29 10:24 Gavin Liu 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 开发人员需要知道绑定的性能和可扩展性特点。当你在与现实中的应用程序打交道时,性能和可扩展性对服务层次的协议和用户体验很重要。用户会对性能表现差的应用抱怨。应用通常不扩展意味着商业对象的需求没有被满足。服务在四个不同的绑定上暴露出来: netNamedPipeBinding, netTcpBinding, wsHttpBinding和basicHttpBinding.一个测试客户端依次调用Get256Bytes操作50,000次来比较绑定间的不同。 阅读全文
posted @ 2011-06-29 10:23 Gavin Liu 阅读(304) 评论(0) 推荐(0) 编辑
摘要: wsDualHttpBinding绑定类似于wsHttpBinding绑定,它额外支持双向通信但不支持传输级别的安全。双向通信通过两个形状改变绑定元素完成: OneWayBindingElement和CompositeDuplexBindingElement绑定元素。CompositeDuplexBindingElement绑定元素在两个单向信道上加了一个双向通信信道。wsDualHttpBinding绑定使用HttpTransportBindingElement绑定元素。这是传输仅支持请求-回复消息交换模式。OneWayBindingElement 绑定元素允许HttpTransportBindingElement绑定元素与CompositeDuplexBindingElement绑定元素一起使用。 wsDualHttpBinding绑定不支持传输层次的安全。这意味着在使用wsDualHttpBinding绑定时不可以使用SSL/TLS加密。 阅读全文
posted @ 2011-06-29 10:22 Gavin Liu 阅读(348) 评论(0) 推荐(0) 编辑
摘要: .NET Framework 3.5 介绍了一种用于Web 服务交互称为ws2007HttpBinding绑定的新的绑定。这个绑定类似于ws2007HttpBinding绑定除了它支持最新的WS-* 消息,安全,可信赖消息和事务标准。 阅读全文
posted @ 2011-06-29 10:21 Gavin Liu 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 对WS-* 标准的支持一直贯穿于WCF架构中。wsHttpBinding绑定是这个支持的一个例子。这个绑定提供了在异构平台上交互通信的能力同时提供了高级架构级别的协议,比如安全,可信赖消息和事务。wsHttpBinding绑定是.NET Framework 3.0 的默认绑定,当你需要基于网络服务的交互通信时。 阅读全文
posted @ 2011-06-29 10:20 Gavin Liu 阅读(235) 评论(0) 推荐(0) 编辑
摘要: Web 服务时异构系统之间进行通信的基础。高级Web 服务是那些使用WS-*规格(显著的WS-星号)的Web 服务。WCF已经支持WS-*标准,包括安全,可信赖消息和事务。 阅读全文
posted @ 2011-06-29 10:17 Gavin Liu 阅读(159) 评论(0) 推荐(0) 编辑
摘要: Web 服务时异构系统间相互通信的基础。比如,基于JAVA平台创建的IBM Websphere或者BEA WebLogic服务必须与基于.NET 平台创建的客户端和服务端进行无缝连接。基于.NET平台创建的服务必须与基于JAVA平台创建的客户端和服务端进行无缝连接。在WCF出现之前,ASP.NET Web 服务(ASMX)和高级Web 服务在.NET平台上提供了这种能力。在.NET 3.0时,WCF直接取代了这些技术并提供了一个单独的统一的架构来创建Web 服务。WCF包括了很多种暴露交互式Web 服务的绑定,包括basicHttpBinding, wsHttpBinding, wsDualHttpBinding和wsFederationHttpBinding绑定。 阅读全文
posted @ 2011-06-29 10:16 Gavin Liu 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 进程间,跨进程,通信就是在同一台机器上的两个独立进程间的通信。进程内,或者在进程中,通信就是在一个进程内两个软件模块的通信。这些通信类型一起组成了我们所称的本机通信。 应用程序域是通过进一步对一个Windows进程拆分并将多个.NET应用程序在安全性和活动范围层次进行隔离的.NET中的架构。这意味着应用程序域是另一个可以被.NET程序跨越的边界。因为这些我们定义了两个额外的名词: 应用程序域间和内部应用程序域。 应用程序域间或者跨应用程序域。在同一个Windows进程内运行的独立应用程序域是两个.NET应用程序进行通信的场所。也可以在一个单独的设计可以运行多个应用程序域的.NET应用程序中进行通信。 阅读全文
posted @ 2011-06-29 10:14 Gavin Liu 阅读(351) 评论(0) 推荐(0) 编辑
摘要: WCF把所有在.NET应用程序之间使用的绑定加上”net”前缀。绑定名字的前缀是一个暗示,让我们知道应该选择一个特定的绑定来使用。这意味着这些绑定有特殊的仅能用于.NET应用程序的特性。相反的,所有以”ws”为前缀的绑定意味着使用Web Services的非.NET应用程序。 阅读全文
posted @ 2011-06-29 10:12 Gavin Liu 阅读(285) 评论(0) 推荐(0) 编辑
摘要: WCF 第四章 绑定 选择一个合适的绑定 2011-06-26 19:40 by DanielWise, 32 visits, 收藏, 编辑 WCF中有9个预设绑定。这些绑定中的每一个都满足一个特殊分布式计算的需求。很多因素决定了为一个特殊应用选择哪一个绑定,包括安全,互通性,可信赖,性能和事务需求。 阅读全文
posted @ 2011-06-29 10:11 Gavin Liu 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 信道栈是一个由一个或多个信道组成用来处理消息的层次通信栈。绑定是预先设置的信道栈。它们代表了在客户端和服务端之间的线上契约。每个绑定由通信中涉及的传输,编码和协议确定。WCF使用绑定为多样化通信场景集合配置信息。最普通的通信场景,比如网络服务,REST/POX 服务和基于队列的应用都在盒子外面提供。例如,basicHttpBinding绑定意味着使用基于ASP.NET Web Services的服务或者与WS-I 基础协议1.1 相适应的服务。ws2007HttpBinding 和wsHttpBinding 绑定类似于basicHttpBinding绑定,但是它们支持更多的特性,比如可信赖消息和事务,而且使用新的标准WS-Addressing. ws2007HttpBinding 绑定继承自.NET 3.5而且比wsHttpBinding基于更新的标准。 阅读全文
posted @ 2011-06-29 10:10 Gavin Liu 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 信道栈是由一个或者多个信道组成用来处理消息的分层通信栈。信道可以是协议信道或者传输信道。传输信道位于信道栈的最底层用来在一个传输协议(比如,HTTP,TCP,MSMQ)上传输消息。协议信道(又名层次信道)通转发和修改消息来实现协议(安全,可信赖消息,事务,等等)。 阅读全文
posted @ 2011-06-29 10:09 Gavin Liu 阅读(159) 评论(0) 推荐(0) 编辑
摘要: ICommunicationObject 接口(查看列表3.8)是WCF中所有通信对象(信道,信道工厂,信道监听器,等等)的基础。打算创建自定义信道或者直接使用信道的开发人员需要了解这个接口。WCF中的通信对象需要实现一个特殊的状态机。状态机表示了所有通信对象的状态变化。这种情况就像其他通信对象(比如,套接字)所处理的那样。ICommunicationObject接口(还有与它相关联的方法,状态和事件)的目的是为了实现状态机。这允许WCF能够将按同样的方式处理通信对象,并让他们下层实现与抽象层分离。 阅读全文
posted @ 2011-06-29 10:08 Gavin Liu 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 信道通过信道形状来完成它们所支持的多种类型消息交换模式。比如,一个基于Tcp的传输信道将会实现IInputChannel和IOutputChannel,因为这些通道都是固有单向的。其他的传输信道基于其他协议比如TCP可能需要实现多个信道形状。开发人员不直接与信道形状打交道。对应的,WCF选择一个服务的基于OperationContract的信道形状。 阅读全文
posted @ 2011-06-29 10:07 Gavin Liu 阅读(201) 评论(0) 推荐(0) 编辑

Right people get the right information at the right time.
以技术求生存,以市场求发展;学以至用,开拓创新;达技术之颠峰,至市场之广阔!