您的位置:首页 > 其它

web service, wcf, wcf rest, web api之间的区别

2016-03-30 21:07 337 查看
在.NET Framework中,有很多种技术可以创建基于http协议的服务,譬如说web service, wcf,wcf rest和web api等等。网上有很多的文章教我们如何开发、使用这几种技术,但是没有说明他们之间的关系,经过一段时间的查阅资料,现将我的理解整理如下。

web service:

基于SOAP,仅仅支持http协议。

数据传输格式是xml。

只能部署在iis上面。

wcf:

基于soap,支持多种传输协议,如http,https,tcp,msmq和命名管道等等。

数据传输格式是xml。

服务配置比较繁琐。

可以host在应用程序、iis或者windows service中。

wcf rest:

需要配置webHttpBindings节点。

数据传输格式可以是xml、json、atom等。

默认支持http get和post操作,可以通过在iis中对可接受的request进行额外的配置来支持更多http操作,譬如说put、delete等等。

通过webGet方式来传参,则必须指定UriTemplate模版。

web api:

是一种轻量级的构建http服务的框架,是在.NET平台下构建restful web service的理想框架。

和wcf rest service相比,web api提供http的全部特性,如URIs、request/response headers、 caching、versioning、various content format。

同时支持mvc的特性。

能host在应用程序和iis中。

适用于各种不同的客户端,譬如浏览器、手机app、pc端应用等等。

response被序列化成json、xml或者其他种类的格式。

何时使用wcf或者web api:

如果有如下特殊场景:单向消息、消息队列、双工通信等等,请使用wcf。

当传输通道不局限于http的时候,譬如更想支持tcp、udp等,推荐使用wcf。

当要创建面向资源的服务或者希望支持http的全部的特性的时候,推荐使用web api。

当需要支持多种客户端时,推荐使用web api。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: