WCF与REST&SOAP之间的关系是什么? WCF是基于这些技术之一(REST还是SOAP)还是单独的技术?
答案 0 :(得分:121)
WCF是用于构建分布式系统的消息传递框架。分布式系统主要只是Web服务的另一个词。
这意味着您可以使用C#(或任何.NET语言)编写方法,然后将一堆配置应用于代码,使其他人可以访问您的代码并将代码转换为Web服务。< / p>
那些“一堆配置”是WCF。如果您围绕C#代码设置WCF配置以将其公开为RESTful服务,则WCF允许您使用REST将方法公开给其他计算机或应用程序。或者,您可以轻松地使用相同的C#方法,并通过SOAP协议使它们可用。
如果您有一个名为“GetData()”的方法,则可以设置WCF配置,以使该方法在IIS中托管的服务中可用。当有人调用该服务时,他们可以向http://www.yourdomain.com/SomeService/GetData发送HTTP GET请求,GetData方法将收到该消息并发回响应。当您通过HTTP发出GET请求时,您正在使用REST。 REST几乎与HTTP绑定为传输协议。 REST也没有标准的消息格式。无论你想在HTTP消息中发送什么,然而你想发送它都没关系。您可以发送XML或JSON,也可以只发送纯文本。您也可以使用POST,GET或PUT或任何HTTP动词。
使用SOAP,您可以使用任何传输协议将消息发送到服务 - 您不依赖于HTTP。 SOAP消息旨在实现传输中立。它们以XML编码,XML始终在信封节点内部具有头部和主体节点。 SOAP有许多Web标准 - 例如,用于将安全性,会话和其他功能放入消息标题中的标准。此外,使用SOAP,您将获得一个WSDL,我不会在这里解释,但它使客户端编程更容易。大多数编程语言都有一种获取WSDL并将其转换为强类型方法和对象的方法,以便您的服务易于调用。
REST在互联网上非常流行,并且可以像互联网一样可扩展(即非常可扩展)。 SOAP在企业对企业应用程序中非常流行。
答案 1 :(得分:27)
WCF不是自动REST或SOAP,但您可以这样做。你需要的是一个教程:
WCF
http://www.codeproject.com/Articles/406096/A-beginners-tutorial-for-understanding-Windows
REST
以下是其他一些有趣的内容:
WCF - REST / SOAP
https://msdn.microsoft.com/en-us/library/hh323708(v=vs.100).aspx
WCF和REST
https://msdn.microsoft.com/en-us/library/ee391967.aspx
或者您可以自己进行google / bing / metacrawler / altavista搜索.....
答案 2 :(得分:10)
来自MSDN
WCF编程模型提供各种功能,例如SOAP 服务,Web HTTP服务,数据服务,富Internet应用程序 (RIA)服务和工作流服务。 SOAP服务支持 使用Java构建的系统之间的互操作性,其他 平台,以及那些使用受支持的消息传递标准的平台 通过Microsoft®。 SOAP服务还支持HTTP等传输, TCP,命名管道和MSMQ。 Web HTTP服务和数据服务 支持REST。 Web HTTP服务使您可以控制服务 位置,请求和响应,格式和协议。数据服务 使您能够将数据模型和数据驱动逻辑公开为服务。 WCF还包括两种编程模型:服务模型和 渠道模型。服务模型提供了一个定义框架 数据合同,服务合同和服务行为。这个频道 model支持指定格式,传输和协议。
SOAP和REST服务都可以为Web提供功能 应用程序,两者都可用于交换信息 网络的分布式环境。每个人都有自己的优势,而且 限制。
答案 3 :(得分:4)