.net中WCF服务和Web服务之间的区别是什么?我何时应该使用WCF以及何时使用Web服务。REST和WCF服务是否相同?感谢
答案 0 :(得分:26)
Web服务是一个抽象术语,涵盖了分布式系统的各种数据提供程序。也许您指的是ASMX Web服务,它仍然可以在野外发现,但目前在新的开发中并没有被广泛使用。
WCF服务是Microsoft的SOAP实现。还有其他实现,或者您可以自己推送(不推荐)。
SOAP 是一种有状态的,基于会话的,基于消息的Web服务。如果您的服务被设计为一系列复杂的操作,那就太好了。
REST 是一种无状态,无会话,基于资源的Web服务。如果您的服务旨在访问数据并对其执行简单的CRUD操作,那就太好了。 SOAP和REST是互斥的。服务不能两者兼而有之。有些方法可以操作vanilla WCF来实现RESTful,但是这些技术已经被弃用了。如果要实现RESTful Web服务,Microsoft世界中有两个主要选择:WCF数据服务和ASP.NET Web API。
答案 1 :(得分:9)
REST是一个架构
WCF是.NET Framework中用于构建面向服务的连接应用程序的API。
过去,作为Web服务开发的功能可通过互联网访问,并且可通过远程处理在本地网络上获得。
使用WCF我们不需要开发不同的代码,因为它可以通过互联网和本地网络访问。只需使用绑定进行配置即可。
答案 2 :(得分:4)
这是一个非常广泛的问题......我只是给出一个简短的高级答案,并建议你再做一些搜索,因为已经有很多关于每个主题的文章。但是,希望这会让你朝着正确的方向发展。
首先,通常当人们引用WCF服务和Web服务时,他们指的是使服务调用相当通用的新WCF约定(它们可以是SOAP,REST等)和Web服务的旧.asmx SOAP方法。因此,在这些方面,我建议更多地了解WCF和SOAP / .ASMX以了解WCF和旧Web服务的区别。
对于WCF和REST,它们并不相同。 REST更像是一种架构,而WCF是一种框架。正如我已经提到的,WCF可用于进行SOAP调用或REST调用。我不确定如果不进一步详细说明我可以添加更多内容。
不过,我会看一下我是否可以稍后找到一些关于REST和WCF的好文章。就个人而言,我认为甚至没有理由对旧的调用Web服务(.ASMX页面)的方式进行深入研究,因为WCF几乎已经过时了。然而,学习许多不同的皮肤猫的方法可能有助于找到最适合你的东西。
同样,这是非常高级别的,但这些是非常一般的主题,每个都有很多,所以希望高级概述将有助于指导您深入研究每个主题。
答案 3 :(得分:3)
当他们说“网络服务”时,有些人的意思是“ASMX”。
其他人只是使用“Web服务”来表示通用技术,并认为WCF是在.NET平台上创建Web服务的当前方式。另一种是“ASMX Web服务”,与“WCF Web服务”不同。
“其他类型”是传统技术,仅支持向后兼容性。它们不应该被用于新的开发,所以你没有理解它们。
正如其他人所说,“REST”是一种架构风格,而不是一种技术。
答案 4 :(得分:1)
WCF是多方面的,所以我将谈谈它最常见的用法。 WCF和REST服务之间的一般区别在于内容。 REST调用通常以消息/文档/实体为中心(对于客户实体,找到以M开头的那些;使用订单实体,获得订单12并与HTTP协议绑定.WCF往往更多以操作为中心(调用查找操作) params,使用参数调用get操作。)WCF也不依赖于HTTP。
仅供参考,有使用WCF(WebInvoke,WebGet属性)创建基于REST的服务的扩展。
答案 5 :(得分:1)
Wcf :wcf是一种技术,作为.net框架的一部分,通过遵循统一的编程模型,提供了处理不同分布式技术的环境。 wcf创建代理。 wcf支持数据合同序列化器。 记录显示xml格式。
**休息:**休息是一种建筑风格。它表示以更有效,更高效,更简单的方式使用网络的现有功能。如插入,更新和删除。 休息无法创建代理。 休息记录显示jason格式。
Web服务:托管在网站上的服务称为webservice。 Web服务支持xmlserializer
答案 6 :(得分:0)
我认为这是一个很老的话题,但我最近也提出过类似的问题。
给出的答案具有相似的相关性,但在我看来,Ray与实际问题最接近。 在设计或重构基于Web的解决方案时,如果我们使用SOAP或REST,您总能得到问题。答案在于服务背后所需的业务逻辑的复杂性。 REST适用于简单的API调用,它通常包含少量请求的数据或过夜处理大型集合,但主要用于数据请求。 SOAP更像是一种具有业务逻辑的交互式日常服务。例如,许多方法都有很多参数。
我们作为基于网络的解决方案的一部分,是尝试并利用两者。对于内部方法和主要功能,我们使用SOAP,但对于公开的API,我们更喜欢REST。 框架相关,绝对是WCF的首选,无论是SOAP还是REST。