我花了几个月的时间试图掌握WCF背后的概念,最近我开发了我的第一个WCF服务应用程序。
为了理解配置文件中的所有设置,我花了不少功夫。 我不相信环境,但似乎你可以用它做惊人的事情。
前几天我发现微软推出了一个叫ASP的新东西。NET Web API。
据我所知,这是一个RESTful框架,非常容易使用和实现。
现在,我试图弄清楚这两个框架之间的主要区别是什么,如果我应该尝试用新的API转换我的旧WCF服务应用程序。
有人能帮我了解一下这两种语言的区别和用法吗?
我花了几个月的时间试图掌握WCF背后的概念,最近我开发了我的第一个WCF服务应用程序。
为了理解配置文件中的所有设置,我花了不少功夫。 我不相信环境,但似乎你可以用它做惊人的事情。
前几天我发现微软推出了一个叫ASP的新东西。NET Web API。
据我所知,这是一个RESTful框架,非常容易使用和实现。
现在,我试图弄清楚这两个框架之间的主要区别是什么,如果我应该尝试用新的API转换我的旧WCF服务应用程序。
有人能帮我了解一下这两种语言的区别和用法吗?
当前回答
从业务角度讲,WebApi缺少WSDL,因此开发人员应该手动编写文档。如果,例如,WebApi操作返回一个对象列表,那么客户端应该手动创建对象,也就是说,WebApi确实容易出现定义错误。
Webapi的优点是它比WCF更轻量级。
其他回答
从业务角度讲,WebApi缺少WSDL,因此开发人员应该手动编写文档。如果,例如,WebApi操作返回一个对象列表,那么客户端应该手动创建对象,也就是说,WebApi确实容易出现定义错误。
Webapi的优点是它比WCF更轻量级。
在下面列出的场景中,你应该使用WCF:
如果您需要在TCP、MSMQ或MIME等协议上发送数据 如果消费客户端只知道如何消费SOAP消息
WEB API是用于开发RESTful/HTTP服务的框架。
有很多客户端不理解SOAP,比如浏览器,HTML5,在这些情况下,WEB api是一个很好的选择。
HTTP服务头指定如何保护服务,如何缓存信息,消息体的类型和HTTP正文可以指定任何类型的内容,如HTML,而不仅仅是XML作为SOAP服务。
在MSDN上有一个比较
WCF和ASP。NET Web API
对我来说,选择是关于客户是谁,他们在哪里?
在公司内部网络和基于。net的客户端:使用WCF和TCP绑定(比HTTP通信更快)
在公司网络之外,使用不同的技术,如PHP, Python等:使用Web API和REST
对我们来说,WCF用于SOAP, Web API用于REST。我希望Web API也支持SOAP。我们没有使用WCF的高级特性。以下是来自MSDN的对比:
ASP.net Web API是基于HTTP和REST的GET,POST,PUT,DELETE,熟悉ASP.net MVC风格的编程和JSON可返回;web API适用于所有轻量级进程和纯基于HTTP的组件。对于使用WCF的人来说,即使是简单或最简单的单个web服务,它也会带来所有额外的负担。对于ajax或动态调用的轻量级简单服务,WebApi总是能解决这一需求。这是对ASP.net MVC的补充或帮助。
查看播客:Hanselminutes播客264 -这不是你父亲的WCF -由Scott Hanselman与Glenn Block一起介绍WebAPI以获取更多信息。