首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF Web Api vs WebHttpBinding

WCF Web Api vs WebHttpBinding
EN

Stack Overflow用户
提问于 2011-03-14 17:43:27
回答 4查看 5.3K关注 0票数 18

我是Web服务开发的新手,我正在寻找一些有用的信息和您对使用webHttpBinding与新的WCF Web API http://wcf.codeplex.com/进行比较的经验反馈。

我想知道的是webHttpBinding的缺点,以及为什么要使用新的Web api,特别是新的API解决了什么问题。如果你能给我一些比较两者的博客文章,或者只是谈谈使用webHttpBinding时的问题,我将不胜感激。提前谢谢你。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-15 04:25:43

我要说的主要缺点是,webhttpbinding使得处理HTTP特定问题变得困难。如果您所做的只是通过HTTP传递一个对象,该对象被序列化为XML或JSON,并且可以通过不同的格式进行传输,那么它将非常有用。

HTTP不仅仅是XML和JSON的简单传输协议,它还是一个具有丰富语义的应用层协议。Web API专门针对那些希望通过HTTP构建系统的人,这些系统充分利用了HTTP的丰富性。

HTTP支持资源可以根据不同客户端的需求有多种表示形式。它的一端可以是一个哑巴浏览器,它只使用表单url编码的post和GET与服务进行通信,而另一端可以是一个更丰富的客户端,它使用Atom/OData或基于超媒体的媒体类型。

  1. web API支持其他HTTP特定的问题,如conneg、etags等,它们可以更好地利用中间Web服务器。
  2. Web API的设计考虑了更多的可测试性,因此您可以以更可测试的方式处理HTTP消息或其他问题。
  3. Web API有一个更简单的配置故事。

你可以在这里阅读更多关于理由的内容:http://blogs.msdn.com/b/endpoint/archive/2010/11/01/wcf-web-apis-http-your-way.aspx

票数 22
EN

Stack Overflow用户

发布于 2011-03-14 22:39:06

对我来说,最重要的区别是编程模型的变化。您不再编写“服务”来公开绑定到HTTP习惯用法(GET、POST等)的“操作”。使用Web,您可以创建客户端可以与之交互的“资源”(POCOs)。

Web似乎更擅长处理各种自定义媒体类型(例如PNG图像)。

最后但并非最不重要的一点是,Web更适合自动化测试。例如,您不再需要使用静态上下文类来访问HTTP概念,例如响应码。您可以使用POCO请求和响应类,这些类可以使用旧式的new()操作符在自动化测试中轻松实例化。

我同意Ladislav的观点,Web现在只是一个预览,在它之上构建应用程序可能是有风险的,而且通过许可协议的方式是被禁止的(但我没有检查过这一点)。

你有没有考虑过@serialseb的OpenRasta?它是稳定的,并且为构建RESTful服务提供了非常好的编程模型。

票数 4
EN

Stack Overflow用户

发布于 2011-03-14 17:59:47

Web API可能是WCF中REST开发的未来。这只是一个预览,在最终发布之前(可能是在.NET框架的下一个版本中)可能会有显着的变化。因此,如果您想要构建生产REST服务,您应该使用webHttpBinding。

关于Web的可用信息可以在例如.NET Connected Framework team's blog和您提到的网站上找到。它是对当前REST API的简化和扩展。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5296936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档