WCF、WebAPI、WCFREST和Web服务的差异:

Web服务

  1. 它是基于SOAP和XML的形式返回数据。

  2. 它仅支持HTTP协议。

  3. 它是开放源,但是不消耗任何客户端可以同时理解XML。

  4. 它可以仅在IIS托管。

WCF

  1. 它也是基于SOAP和XML的形式返回数据。

  2. 它是对演化的Web服务(asmx)和支持各种协议(如TCP、HTTP、HTTPS)、命名管道、MSMQ。

  3. WCF最主要的问题是,其繁琐和大量的配置。

  4. 它是开放源,但是不消耗任何客户端可以同时理解XML。

  5. 它可以在应用程序或IIS托管也可以部署为windows服务。

WCFREST

  1. 使WCFREST服务您必须启用webhttpbindings。

  2. 它支持HTTP动词GET和POST[][]和webgetwebinvoke属性。

  3. 启用HTTP动词以外,你还得在配置IIS来接受该请求的特定动词对.svc文件

  4. 使数据通过使用webget需要配置参数。必须指定该uritemplate

  5. 它支持XML、JSON和Atom格式数据。

WebAPI

  1. 这是新的框架来构建HTTP服务的简单和容易方式。

  2. 开放源WebAPI是一个理想平台服务的REST-ful的NET框架。

  3. WCFREST服务不同,它使用了HTTP的特点充分类似(URI、请求/响应报头,缓存,版本、各种内容格式)

  4. 它还支持MVC的特征,诸如路由、控制器、操作结果、过滤器、活页夹、或IOC依赖注入容器,测试单元,使其更加简单和鲁棒。

  5. 它可以托管在应用程序或IIS下。

  6. 它是结构良好的和重量轻的设备具有有限的带宽,如智能电话。

  7. 响应格式化为JSON,XML或任何格式,您需要添加一个mediatypeformatter。

如何选择WCF、WebAPI

  1. 对于单向消息传递、消息队列、半双工通信等可以选择WCF。

  2. 当需要使用全特征的(如HTTPURI,请求/响应报头,缓存,版本、各种内容格式),可以选择WebAPI。

  3. 当需要建立服务于浏览器、移动电话、iPhone和平板电脑的项目可以选择WebAPI。


ASP.NETMVC和ASP.NETWebAPI

  1. 使用ASP.NETMVC创建Web应用返回数据,但是ASP.NETWebAPI被用于创建完整HTTP服务的容易且简单的方式,不只返回数据视图。

  2. 有助于构建webAPI(REST)风格的服务。NET框架,它还支持内容协商(约决定最佳响应格式数据,该数据可以是可由客户端的JSON、XML或其它格式的数据),自托管的MVC。

  3. WebAPI也需要返回数据的特定格式(如JSON,XML或任何其它基于接收的报头的请求。仅在MVC中使用JSON格式返回数据jsonresult。

  4. 在WebAPI的请求的动作被映射到基于HTTP动词,但它在MVC中被映射到动作名称。

  5. ASP.NETWebAPI的新框架和ASP.NET框架的核心部分。该模型结合、过滤、路由和其他特征在存在MVCWebAPI不同于MVC和存在于新System.Web.Http组件。在MVC中,这些特征在与存在System.Web.Mvc。因此,WebAPI也可以使用ASP.NET和作为独立的服务层。

  6. 您可以在MVC控制器和WebAPI单个项目来处理高级Ajax请求的返回数据可以在JSON、XML或其他格式的全面建设和HTTP服务。通常,这被称为自托管WebAPI。

  7. 此外,WebAPI是重量轻的应用除了Web体系结构和它也可用于智能手机应用。

mvc主要用于建站,web api主要用于构建http服务

最新文章

  1. How to use FTP
  2. 安卓版App开发心得
  3. weblogic重置用户名密码。
  4. jbox使用总结
  5. [转]iSCSI完全指南
  6. 利用css3动画和border来实现圆形进度条
  7. JVM内存管理基本概念
  8. oracle9
  9. Gprinter Android SDK V2.0 使用说明
  10. 京JS 2013 - A two-day conference in Beijing for the JavaScript and Node.js community
  11. 201521123019 《Java程序设计》第11周学习总结
  12. CentOs7相对于CentOs6的常用命令变化
  13. ansible命令
  14. Windows10系统无法更新
  15. ORM框架之SQLALchemy
  16. 【洛谷P2921】Trick or Treat on the Farm
  17. 安卓程序代写 网上程序代写[原]Android开发技巧--Application
  18. OOAD之创建型模式之工厂模式
  19. network出错
  20. Android—— TextView文字链接4中方法

热门文章

  1. 【SVN技巧】如何协同开发LabVIEW代码 1
  2. MariaDB:登陆报错:mysqladmin: connect to server at 'localhost' failed
  3. Jmeter接口测试参数化实例图文示例
  4. Laravel API 限速异常 HTTPException Too Many Attemps
  5. OpenLDAP在win2008上安装配置
  6. 打开MSSQL 2008 R2的时候,展开数据库都显示以下的错误提示: 值不能为空。参数名viewinfo(microsoft.sqlserver.management.sqlstudio.explorer)
  7. SpringMVC后台token防重复提交解决方案
  8. HDU 1029 某个数出现的次数大于等于(N+1)/2的是哪个 map水题
  9. POJ 2976 3111(二分-最大化平均值)
  10. Codeforces Round #392 (Div. 2)-D. Ability To Convert