原文地址:http://www.dotnet-tricks.com/Tutorial/webapi/JI2X050413-Difference-between-WCF-and-Web-API-and-WCF-REST-and-Web-Service.html

WCF

1.基于Soap协议,以XML形式返回。

2.是Web Service的进化 支持多种协议:TCP,HTTP,HTTPS,命名管道,消息队列。

3.缺点:冗长的大量配置。

4.不开源,但是可以被懂xml的定制。

5.可以部署在应用、IIS或windows 服务。

Web API

1.创建http服务的一个简单快捷的框架。

2.开源。

3.WCF不同的:使用了整个HTTP特性。

4.支持MVC特性包括:routing, controllers, action results, filter, model binders, IOC container or dependency injection, unit testing

5.部署在应用或IIS上。

6.轻量级的,适合对带宽有要求的像智能手机等设备。

7.Responses 格式是多样的,例如json,xml等任何可以转化为MediaTypeFormatter 的。

WCF Rest

1.使用WCF Rest 需要webHttpBindings;

2.支持HTTP Get 和HTTP Post

3.支持其他http verbs 需要对IIS进行设置。

4.使用webGet 参数传递数据需要设置。

5.支持XML、json和ATOM数据

WEB Service

1.基于SOAP 返回数据为xml类型

2.仅支持http 协议

3.不开源,但是可以被懂xml的定制。

4.仅能在IIS上发布。

选择WCF还是Web API

1.在特定的情景下,如单向传递,消息队列,双端通信等选择WCF。

2.需要快速可靠的传输通道TCP 命名管道 UDP 同事需要在传输信道不可靠时支持http。

3.需要创建资源导向的基于http的服务(用到HTTP所有特性)时 使用Web API

4.向多种客户例如浏览器,移动端等同时提供服务的选择Web API

最新文章

  1. 树莓派 config.txt
  2. 使用ycsb测试cassandra
  3. Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js
  4. DataGridView key points
  5. 查看BADI有哪些实现
  6. Could not load the assembly 'App_Web_cwclgcuu'. Make sure that it is compiled before accessing the page.
  7. 水池(DFS)
  8. MySql模糊查询like通配符简介
  9. CodeForces 660D Number of Parallelograms
  10. Android必知必会--GreenDao缓存
  11. 冬瓜头答疑:磁盘阵列内部FC-AL的性能问题
  12. [iOS] UICollectionView初始化滚动到中间的bug
  13. c数组
  14. log4j.properties的配置与详细说明
  15. 微信Android热补丁实践演进之路
  16. Visual Studio 2013 osg
  17. fork和multiprocessing
  18. 解决微信小程序中Date.parse()获取时间戳IOS不兼容的问题(IOS为NaN的问题)
  19. VS2013\VS2017 使用git 总是需要输入账号密码
  20. Navicat设定mysql定时任务步骤示例

热门文章

  1. jquery+ajax+struts2
  2. python学习笔记(基础二:注释、用户输入、格式化输出)
  3. 让linux开机默认开启小键盘
  4. freemarker页面中文乱码
  5. 微信小程序社区上线
  6. 在xampp中配置dvwa
  7. SDK接入(1)之Android Facebook SDK接入
  8. iOS7之后设置NavigationBar的背景
  9. Highcharts入门小示例
  10. Highchart插件下载与安装