我是Web服务开发的新手,我正在寻找一些有用的信息和您对使用webHttpBinding与新的WCF Web API http://wcf.codeplex.com/进行比较的经验反馈。
我想知道的是webHttpBinding的缺点,以及为什么要使用新的Web api,特别是新的API解决了什么问题。如果你能给我一些比较两者的博客文章,或者只是谈谈使用webHttpBinding时的问题,我将不胜感激。提前谢谢你。
发布于 2011-03-15 04:25:43
我要说的主要缺点是,webhttpbinding使得处理HTTP特定问题变得困难。如果您所做的只是通过HTTP传递一个对象,该对象被序列化为XML或JSON,并且可以通过不同的格式进行传输,那么它将非常有用。
HTTP不仅仅是XML和JSON的简单传输协议,它还是一个具有丰富语义的应用层协议。Web API专门针对那些希望通过HTTP构建系统的人,这些系统充分利用了HTTP的丰富性。
HTTP支持资源可以根据不同客户端的需求有多种表示形式。它的一端可以是一个哑巴浏览器,它只使用表单url编码的post和GET与服务进行通信,而另一端可以是一个更丰富的客户端,它使用Atom/OData或基于超媒体的媒体类型。
你可以在这里阅读更多关于理由的内容:http://blogs.msdn.com/b/endpoint/archive/2010/11/01/wcf-web-apis-http-your-way.aspx
发布于 2011-03-14 22:39:06
对我来说,最重要的区别是编程模型的变化。您不再编写“服务”来公开绑定到HTTP习惯用法(GET、POST等)的“操作”。使用Web,您可以创建客户端可以与之交互的“资源”(POCOs)。
Web似乎更擅长处理各种自定义媒体类型(例如PNG图像)。
最后但并非最不重要的一点是,Web更适合自动化测试。例如,您不再需要使用静态上下文类来访问HTTP概念,例如响应码。您可以使用POCO请求和响应类,这些类可以使用旧式的new()操作符在自动化测试中轻松实例化。
我同意Ladislav的观点,Web现在只是一个预览,在它之上构建应用程序可能是有风险的,而且通过许可协议的方式是被禁止的(但我没有检查过这一点)。
你有没有考虑过@serialseb的OpenRasta?它是稳定的,并且为构建RESTful服务提供了非常好的编程模型。
发布于 2011-03-14 17:59:47
Web API可能是WCF中REST开发的未来。这只是一个预览,在最终发布之前(可能是在.NET框架的下一个版本中)可能会有显着的变化。因此,如果您想要构建生产REST服务,您应该使用webHttpBinding。
关于Web的可用信息可以在例如.NET Connected Framework team's blog和您提到的网站上找到。它是对当前REST API的简化和扩展。
https://stackoverflow.com/questions/5296936
复制相似问题