在.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

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

欢迎关注我的公众号(同步更新文章):DoNet技术分享平台

阅读原文

关于WCF、WebAPI、WCFREST、WebService之间的区别总结相关推荐

  1. 关于WCF、WebAPI、WebService之间的区别总结 分布式通信技术

    早在1996年Gartner就前瞻性地提出了面向服务架构的思想(SOA),SOA 的走红在很大程度上归功于 Web Service 标准的成熟和应用的普及. Service Oriented Ambi ...

  2. WCF、WebAPI、WebService之间的区别

    在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API. 在.net平台下,你有很多的选择来构建一个HTTP Services. 我分享一下 ...

  3. WCF、WebAPI、WCFREST、WebService之间的区别

    注明:转载 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下,你有很多的选择来构建一个HTTP Services.我 ...

  4. 【转】WCF、WebAPI、WCFREST、WebService之间的区别

    在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下,你有很多的选择来构建一个HTTP Services.我分享一下我对 ...

  5. .NET 的 WCF 和 WebService 有什么区别?(转载)

    .NET 的 WCF 和 WebService 有什么区别?(转载) [0]问题: WCF与 Web Service的区别是什么? 和ASP.NET Web Service有什么关系? WCF与ASP ...

  6. Remoting和Webservice有什么区别

    REMOTING和WEBSERVICE有什么区别 其实现的原理并没有本质的区别,在应用开发层面上有以下区别: 1.Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Serv ...

  7. .NET Core、Xamarin、.NET Standard和.NET Framework四者之间的区别

    2019独角兽企业重金招聘Python工程师标准>>> 前段时日微软(Microsoft)正式发布了.NET Core 2.0,在很多开发社区中反响不错.但还是有一些开发者发出了疑问 ...

  8. FPGA与ASIC:它们之间的区别以及使用哪一种?

    FPGA与ASIC:它们之间的区别以及使用哪一种? FPGA Vs ASIC: Differences Between Them And Which One To Use? VL82C486 Sing ...

  9. Python 应用领域以及版本之间的区别

    Python 应用领域以及版本之间的区别 一.Python应用领域 Python+人工智能,给你更多研究方向选择! 企业级综合实战项目,集六大前沿技术为一体 二. Python 2与Python 3的 ...

最新文章

  1. 网站SEO优化中导航对用户体验的重要性
  2. JavaScript时间日期格式转化
  3. spring配置druid连接池和监控数据库访问性能
  4. java面试常考系列四
  5. 花旗linux 内核 如何调试,揭秘首个运行在Linux平台的核心银行系统
  6. 产品经理学习总结(1)——人人都是产品经理之需求文档语法
  7. 洛谷 | P1605 迷宫(DFS) C++
  8. 以下实例在用户点击按钮后对字符串进行反转操作
  9. 基于Tight VNC的远程协助功能的实现
  10. linux下如何在线添加和移除scsi磁盘?
  11. HDU 3401 Trade dp+单调队列优化
  12. 邮箱是互联网的个人中心
  13. [lammps教程]OVITO绘制原子应力云图
  14. 《当程序员的那些狗日日子》三
  15. linux网络编程(一)
  16. 信息系统管理——项目立项管理(详细可行性研究的结构)
  17. java batter_android电池管理系统从上层的java到底层驱动的调用(转载)
  18. XiaoWei的战斗力
  19. Linux下GPT分区,gdisk修复损坏的分区表
  20. Android 调用系统相册选取视频,过滤视频(兼容小米)

热门文章

  1. 比微软kinect更强的视频跟踪算法--TLD跟踪算法介绍
  2. win10水印烦死了_win10系统下word去水印的方法【图文】
  3. 为什么只看重结果_猫很现实?猫只是看重结果
  4. selenium的三种等待时间
  5. 状压dp之二之三 炮兵阵地/玉米田 By cellur925
  6. [BZOJ4033][HAOI2015]树上染色(树形DP)
  7. ajax如何处理服务器返回的三种数据类型
  8. linux安装nagios客户端
  9. unity中如何解决镜头穿透模型?
  10. 《Two Dozen Short Lessons in Haskell》学习(十八) - 交互式键盘输入和屏幕输出