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

use*_*819 56 rest wcf soap web-services

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

Tre*_*vor 131

WCF是用于构建分布式系统的消息传递框架.分布式系统大多只是Web服务的另一个词.

这意味着您可以使用C#(或任何.NET语言)编写方法,然后将一堆配置应用于使您的代码可供其他人访问的代码,并将您的代码转换为Web服务.

那些"一堆配置"是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在企业对企业应用程序中非常流行.

  • 我认为你的答案是最好的 (3认同)
  • 数据通信早在互联网流行之前就已经存在,但年轻的开发人员描述了与互联网相关的数据通信(例如“分布式系统大多只是网络服务的另一个词”)。分布式系统在互联网普及之前就已经存在,并且可以在没有互联网的情况下存在。我假设 WCF 不需要“网络”,如果是这样,那么这个描述是有误导性的。 (2认同)
  • 派对有点晚了,但只是想澄清肥皂并不总是有头,因为肥皂协议是可选的. (2认同)

Mik*_* C. 32

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

WCF

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

休息

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

或者你可以自己做google/bing/metacrawler/altavista搜索.....

  • 根据我的经验,WCF 是 Web 服务的同义词。在工作中,我们可能将其称为 WCF Web 服务。WCF 的特点是它同时支持 REST 和 SOAP。IT 只取决于您如何编码服务。WCF 只是关于 ABC(地址、绑定、合同),在我提供的链接中解释得更好。 (2认同)

l46*_*kok 10

来自MSDN

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

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


Irf*_*Irf 5

虽然,这个问题已经得到了几个很好的答案,只是投入了我的 2 美分,以尝试让新手了解WCF SOAP REST -完整服务,让他们更容易理解。

我们感到困惑,WCF 是否同时支持RESTSOAP而且,通常,我们只看到有关SOAPREST 的通用定义 。所以,我们需要微软的一些东西来让我们感受到真相:) 所以这是微软 MSDN的截图:

MSDN 文章网址在此处输入图片说明

所以,是的,WCF 同时支持 .

在 OP 的上下文中:

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