我们目前只使用soap webservices进行所有通信,但一直在考虑转移到WCF。使用它而不是asmx服务有什么好处?
如果我们使用WCF服务,其他语言是否仍然可以与之通信? SOAP是标准化的,所有语言都可以与之交互。
有没有一个很好的例子说明如何开始使用WCF来展示它比肥皂的好处?
修改
答案 0 :(得分:15)
WCF有一点学习曲线,但是一旦你学会了它,就不会比asmx web服务更难实现。一个优点是您可以轻松地将协议和序列化从二进制远程处理切换到web protocols。它也很容易在IIS或外出主机。
其他语言可以与Web协议进行通信。二进制,而不是......
我刚刚进入Getting Started Tutorial。它很好地展示了相对易用性。在那里,请查看Hosting和更详细的Features。
答案 1 :(得分:4)
WCF不是SOAP的替代品,事实上,SOAP可以用作端点之间的序列化格式以进行通信。 SOAP标准也没有真正定义消息体中的内容,因此在WCF到WCF通信的情况下,使用SOAP信封,但内容是二进制的,所以这是您的主要优势,至少在术语上表现。另一个优点是WCF的编程模型更简单,或者至少是更直接的;特别是因为听起来你真的只是使用Web服务进行内部通信。在这种情况下,大多数工作都是预先设置的,配置端点(尽管在.NET中使用asmx WSDL显然非常容易)。
我不是WCF的专家,但我所知道的是来自Juval Lowy(撰写O'Reilly WCF书籍)的.NET用户组演示,his site提供了大量的信息。除了Microsoft站点之外,参考资料部分中的截屏视频和示例的方式(你检查过Channel9吗?)。
答案 2 :(得分:4)
基于问题中链接的this MSDN article,WCF不仅仅支持SOAP。它支持:
<强> basicHttpBinding的强>
与支持WS-BasicProfile 1.1和基本安全配置文件1.0的Web服务和客户端的互操作性。
<强> WsHttpBinding的强>
与通过HTTP支持WS- *协议的Web服务和客户端的互操作性。
<强> WSDualHttpBinding 强>
双工HTTP通信,初始消息的接收者不通过该通信直接回复初始发送者,但可以通过使用符合WS- *协议的HTTP在一段时间内发送任意数量的响应。
<强> WSFederationBinding 强>
HTTP通信,其中可以基于由明确标识的凭证提供者发布的凭证来控制对服务资源的访问。
<强> NetTcpBinding的强>
通过网络在WCF软件实体之间进行安全,可靠,高性能的通信。
<强> NetNamedPipeBinding 强>
在同一台机器上的WCF软件实体之间进行安全,可靠,高性能的通信。
<强> NetMsmqBinding 强>
使用MSMQ在WCF软件实体之间进行通信。
<强> MsmqIntegrationBinding 强>
使用MSMQ在WCF软件实体和另一个软件实体之间进行通信。
<强> NetPeerTcpBinding 强>
使用Windows Peer-to-Peer Networking在WCF软件实体之间进行通信。