WCF,Rest和SOAP之间有什么关系?

WCF和REST和SOAP之间有什么关系? WCF是基于这些技术之一(REST还是SOAP),还是一种独立的技术?

WCF不是自动的REST或SOAP,但你可以这样做。 你需要的是一个教程:

WCF

http://www.codeproject.com/Articles/406096/A-beginners-tutorial-for-understanding-Windows

rest

http://rest.elkstein.org/

这里有一些其他有趣的东西:

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

或者你可以做你自己的谷歌/ BING / metacrawler / altavistasearch…..

WCF是构build分布式系统的消息传递框架。 分布式系统大多是Web服务的另一个词。

这意味着你可以用C#(或任何.NET语言)编写方法,然后将一些configuration应用到代码中,使其他代码可以访问代码,并将代码转换为Web服务。

那些“一堆configuration”是WCF。 WCF允许您使用REST将您的方法公开给其他计算机或应用程序,如果您围绕C#代码设置WCFconfiguration以将其公开为REST式服务。 或者,您可以轻松使用相同的C#方法,并通过SOAP协议使其可用。

如果您有一个名为“GetData()”的方法,则可以设置WCFconfiguration,使该方法在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消息被devise为传输中立。 它们使用XML进行编码,并且XML始终在信封节点内具有头部和身体节点。 例如,围绕SOAP的Web标准有很多,例如,将安全性,会话和其他function添加到消息标题中的标准。 另外,使用SOAP,您将获得一个WSDL,我不会在这里进行解释,但它使得客户可以更容易地进行编程。 大多数编程语言都有一种方法来获取WSDL并将其转换为强types的方法和对象,以便您的服务很容易调用。

REST在互联网上非常受欢迎,并且可以像互联网一样扩展(即可伸缩性)。 SOAP在企业对企业应用程序中非常stream行。

来自MSDN

WCF编程模型提供了各种function,如SOAP服务,Web HTTP服务,数据服务,富Internet应用程序(RIA)服务和工作stream服务。 SOAP服务支持使用Java,其他平台构build的系统和使用Microsoft®支持的消息传递标准的系统之间的互操作性。 SOAP服务还支持传输,如HTTP,TCP,命名pipe道和MSMQ。 Web HTTP服务和数据服务都支持REST。 Web HTTP服务使您能够控制服务位置,请求和响应,格式和协议。 数据服务使您能够将数据模型和数据驱动的逻辑公开为服务。 WCF还包括两种编程模型:服务模型和信道模型。 服务模型提供了一个定义数据合同,服务合同和服务行为的框架。 通道模型支持指定格式,传输和协议。

SOAP和REST服务都可以为Web应用程序提供function,并且都可以用来在Web分布式环境中交换信息。 每个人都有自己的优势和局限性。

虽然这个问题有好几个很好的答案,但为了让WCF vs SOAP vs REST成为 全新的服务,我只需要投入2美分就可以让他们更容易理解。

WCF是否支持RESTSOAP 通常,我们只看到有关SOAP和REST的通用定义。 所以,我们需要一些来自微软的东西,让我们感受到这个道理:)所以这里是微软 MSDN的截图:

MSDN文章URL 在这里输入图像说明

所以, 是的 ,WCF支持两者。

在OP的背景下:

  • SOAP服务:
    在WCF编程模型中,支持使用Java,其他平台以及使用Microsoft®支持的消息传递标准的系统之间的互操作性。 这些还支持传输,如HTTP,TCP,命名pipe道和MSMQ。
  • Web HTTP服务
    在WCF编程模型中支持REST 。 [源代码: MSDN ]