[WCF]Choosing a binding
[Programming WCF Services]
If your service needs to interact with non-WCF clients.
A.[yes]:(第一个分支向左(走[no]))
1.If the client is a legacy MSMQ client,choose the MsmqIntergrationBinding (that enables your services to interoperate over MSMQ with such a client.)
2.If you need to interoperate with non-WCF client and that client expects basic web service protocol (ASMX web services), choose the BasicHttpBinding, which exposes your WCF service to the outside world as if it were an ASMX web service (that is , a WSI-basic profile) .(The downside is that you cannot take advantage of most of the modern WS-* protocols.)
3.However, if the non-WCF client can understand these standards, choose one of the WS bindings, such as WSHttpBinding, WSFederationBinding, or WSDualHttpBinding.
B.[no]:(第一个分支向右(走[yes]))
4.If it yet requires offline or disconnected interaction, choose the NetMsmqBinding that use MSMQ for transporting the messages.
5.If the client requires connected communication, but could be calling across machine boundaries, choose the NetTcpBinding that communicates over TCP.
6.If the client is on the same machine as the service, choose the NetNamedPipeBinding that uses named pipes to maximize performance.
You may fine-tune binding selections based on additional criteria such as the need for callbacks (WSDualHttpBinding) or federated security (WSFederationBinding).
[Bruce Zhang]对本段内容所作的翻译:(本书译者)
http://www.cnblogs.com/wayfarer/archive/2007/09/10/888337.html
“首先需要叩问自己服务是否需要与非WCF的客户端交互。如果是,同时客户端又是旧的MSMQ客户端,选择MsmqIntegrationBinding绑定就能够使得服务通过MSMQ与该客户端实现互操作。如果服务需要与非WCF客户端交互,并且该客户端期望调用基本的Web服务协议(ASMX Web服务),那么选择BasicHttpBinding绑定就能够模拟ASMX Web服务(即WSI-Basic Profile)公开WCF服务。缺点是我们无法使用大多数最新的WS-*协议的优势。但是,如果非WCF客户端能够识别这些标准,就应该选择其中一种WS绑定,例如WSHttpBinding、WSFederationBinding或者WSDualHttpBinding。如果假定客户端为WCF客户端,同时需要支持脱机或断开状态下的交互,则可以选择NetMsmqBinding使用MSMQ传输消息。如果客户端需要联机通信,但是需要跨机器边界调用,则应该选择NetTcpBinding通过TCP协议进行通信。如果相同机器上的客户端同时又是服务,选择NetNamePipeBinding使用命名管道可以使性能达到最优化。如果基于额外的标准,例如回调(选择WSDualHttpBinding)或者联邦安全(选择WSFederationBinding),则应对选择的绑定进行微调。”
……
posted on 2007-11-08 22:30 volnet(可以叫我大V) 阅读(371) 评论(0) 编辑 收藏 举报