设为首页 收藏本站
查看: 934|回复: 0

[经验分享] http服务 WCF、Web API、Web service、WCF REST之间的区别

[复制链接]

尚未签到

发表于 2017-12-29 06:48:11 | 显示全部楼层 |阅读模式
  http服务 WCF、Web API、Web service、WCF REST之间的区别
  在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API。在.net平台下,你有很多的选择来构建一个HTTP Services。我分享一下我对Web Service、WCF以及Web API的看法。
  Web Service
  1、它是基于SOAP协议的,数据格式是XML
  2、只支持HTTP协议
  3、它不是开源的,但可以被任意一个了解XML的人使用
  4、它只能部署在IIS上
  WCF【Windows Communication Foundation】是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。
  1、这个也是基于SOAP的,数据格式是XML
  2、这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.
  3、WCF的主要问题是,它配置起来特别的繁琐
  4、它不是开源的,但可以被任意一个了解XML的人使用
  5、它可以部署应用程序中或者IIS上或者Windows服务中
  WCF Rest
  1、想使用WCF Rest service,你必须在WCF中使用webHttpBindings
  2、它分别用[WebGet]和[WebInvoke]属性,实现了HTTP的GET和POST动词
  3、要想使用其他的HTTP动词,你需要在IIS中做一些配置,使.svc文件可以接受这些动词的请求
  4、使用WebGet通过参数传输数据,也需要配置。而且必须指定UriTemplate
  5、它支持XML、JSON以及ATOM这些数据格式
  Web API
  1、这是一个简单的构建HTTP服务的新框架
  2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术
  3、不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)
  4、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮
  5、它可以部署在应用程序和IIS上
  6、这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好
  7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。
  WCF和WEB API我该选择哪个?
  1、当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF
  2、当你想创建一个服务,可以用更快速的传输通道时,像TCP、Named Pipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。
  3、当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择Web API
  4、当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-429206-1-1.html 上篇帖子: 一键去除域名非80端口,去掉域名后面带的端口号快速解决方案 下篇帖子: php,cgi,nginx关系
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表