什么是WCF服务与Web服务在.net中的区别?
何时应该使用WCF,何时应该使用Web服务。REST和WCF服务是否相同?谢谢。
什么是WCF服务与Web服务在.net中的区别?
何时应该使用WCF,何时应该使用Web服务。REST和WCF服务是否相同?谢谢。
Web Service 是一个抽象的术语,包括了许多为分布式系统提供数据的数据提供者。也许你指的是 ASMX Web 服务,在现今的开发中已经不被广泛使用。
WCF Service 是微软对SOAP的实现。还有其他的实现方式,但自己编写并不推荐。
SOAP 是一种有状态、基于会话、基于消息的 Web 服务。如果你的服务被设计成一组复杂的动作,则很适合使用它。
REST 是一种无状态、无会话、基于资源的 Web 服务。如果你的服务被设计成访问数据并对其执行简单的 CRUD 操作,则很适合使用它。SOAP 和 REST 是相互排斥的。一个服务不能同时是两者。有一些方法可以操纵原始 WCF 使其变得符合 RESTful,但这些技术正在过时。如果你想要实现一个 RESTful 的 Web 服务,在 Microsoft 的世界里有两个主要的选择:WCF 数据服务和 ASP.NET Web API。
有些人在说“Web Services”时指的是“ASMX”。
而另一些人则将“Web Services”用于指代通用技术,并认为WCF是在.NET平台上创建Web Services的当前方式。这些Web Services被称为“ASMX Web Services”,与“WCF Web Services”区别开来。
“其他类型”的Web Services是一种遗留技术,只支持向后兼容。它们不应该用于新的开发项目,所以学习它们没有任何意义。
正如其他人所说,“REST”是一种架构风格,而不是一种技术。
Wcf: WCF是.NET Framework的一部分技术,提供了与不同分布式技术一起工作的环境,并遵循统一的编程模型。WCF创建代理,支持数据合同序列化,记录以XML格式显示。
Rest: Rest是一种体系结构风格,它说使用Web的现有功能以更有效、高效和简单的方式。动词如插入、更新和删除。Rest不能创建代理,记录以JSON格式显示。
Web Service: 托管在网站上的服务称为Web服务。Web服务支持XML序列化器。
WCF 是多方面的,因此我将从其最常见的用法方面进行讲解。WCF 和 REST 服务之间的一般区别集中在内容上。REST 调用通常更加以消息/文档/实体为中心(使用客户实体,查找以 M 开头的实体;使用订单实体,获取订单 12),并与 HTTP 协议相关联。WCF 倾向于更加以操作为中心(使用参数调用查找操作,使用参数调用获取操作)。WCF 也不局限于 HTTP。
顺便说一下,有扩展可以使用 WCF 创建基于 REST 的服务(WebInvoke、WebGet 属性)。
我看到这是一个相当旧的帖子,但我最近问了一个类似的问题。
给出的答案都有相似的相关性,但在我看来,Ray最接近实际要求。 在设计或重构基于Web的解决方案时,您总是会遇到这样的问题:我们应该使用SOAP还是REST。答案取决于服务所需的业务逻辑的复杂性。REST适用于简单的API调用,通常包含请求的小数据集或大量数据集的过夜处理,但主要用于数据请求。 SOAP更多地是具有业务逻辑的交互式日常服务。例如许多带有大量参数的方法。
作为我们基于Web的解决方案的一部分,我们尝试利用两者。对于内部方法和主要功能,我们使用SOAP,但对于暴露的API,我们更喜欢REST。 与框架相关,无论是SOAP还是REST,WCF都是首选。