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服务

WCF、WebAPI、WCFREST和Web服务的差异 ASP.NETMVC和ASP.NETWebAPI的差异的更多相关文章

  1. WCF:为 SharePoint 2010 Business Connectivity Services 构建 WCF Web 服务(第 1 部分,共 4 部分)

    转:http://msdn.microsoft.com/zh-cn/library/gg318615.aspx 摘要:通过此系列文章(共四部分)了解如何在 Microsoft SharePoint F ...

  2. BMap:WEB 服务API

    ylbtech-Map-Baidu: WEB 服务API 百度地图Web服务API为开发者提供http/https接口,即开发者通过http/https形式发起检索请求,获取返回json或xml格式的 ...

  3. Asp.net web服务处理程序(第六篇)

    四.Web服务处理程序 对于Web服务来说,标准的方式是使用SOAP协议,在SOAP中,请求和回应的数据通过XML格式进行描述.在Asp.net 4.0下,对于Web服务来说,还可以选择支持Ajax访 ...

  4. IIS Web服务扩展中添加ASP.NET4.0

    问题 服务器上安装了ASP.NET 4.0.30319组件,但是在IIS的Web服务扩展中并没有找到ASP.NET v4.0.30319这项,这导致基于.NET4.0开发的网页都无法正常浏览(404错 ...

  5. IIS Web服务扩展中没有Asp.net 2.0

    服务器上安装了ASP.NET v2.0组件,但是在IIS的Web服务扩展中并没有找到ASP.NET v2.050727这项,这导致基于.NET2.0开发的网页都无法正常浏览. 解决方法:打开IIS,转 ...

  6. WCF与ASMX Web服务差异比较[译]

    First of all, it needs to understand that WCF Service provides all the capabilities of .NET web serv ...

  7. 关于WEB Service&WCF&WebApi实现身份验证之WebApi篇

    之前先后总结并发表了关于WEB Service.WCF身份验证相关文章,如下: 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇. 关于WEB S ...

  8. 关于WEB Service&WCF&WebApi实现身份验证之WCF篇(2)

    因前段时间工作变动(换了新工作)及工作较忙暂时中断了该系列文章,今天难得有点空闲时间,就继续总结WCF身份验证的其它方法.前面总结了三种方法(详见:关于WEB Service&WCF& ...

  9. 从开发的角度比较 ASP.NET Web 服务与 WCF

    Windows Communication Foundation (WCF) 具有一个 ASP.NET 兼容模式选项,用户使用此选项可以对 WCF 应用程序进行编程和配置,使其像 ASP.NET We ...

随机推荐

  1. linux下快速安装jenkins

    Linux下快速安装Jenkins 建议使用 FileZilla 工具简化以下步骤中移动.环境变量配置等步骤. 1      软件下载 l  Java:jdk-7u17-linux-x64.tar.g ...

  2. spring初识

    Spring是一个开源框架,它是为了解决企业应用开发的复杂性而创建的.Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益. Sp ...

  3. [java]用md5来判断两个文件是否完全相同

    1. 前言 由于相比较两张图片是否是相同,如果通过像素点比较感觉速度比较慢,当很多图片进行比较时,效率就低很多了.由于每个文件md5基本上是唯一的,所以用获取文件的md5来判断是否相同文件. 2. 代 ...

  4. PHP对Url中的汉字进行编码和解码

    有的新手朋友们对于url编码解码这个概念,或许有点陌生.但是如果这么说,当我们在浏览各大网页时,可能发现有的url里有一些特殊符号比如#号,&号,_号或者汉字等等,那么为了符合url的规范,存 ...

  5. SPLAY,LCT学习笔记(一)

    写了两周数据结构,感觉要死掉了,赶紧总结一下,要不都没学明白. SPLAY专题: 例:NOI2005 维修数列 典型的SPLAY问题,而且综合了SPLAY常见的所有操作,特别适合新手入门学习(比如我这 ...

  6. python 全栈开发,Day97(Token 认证的来龙去脉,DRF认证,DRF权限,DRF节流)

    昨日内容回顾 1. 五个葫芦娃和三行代码 APIView(views.View) 1. 封装了Django的request - request.query_params --> 取URL中的参数 ...

  7. 【APUE | 08】进程控制

    函数fork 博文链接: 1. 代码示例: #include "apue.h" ; char buf[] = "a write to stdout\n"; in ...

  8. AOJ 0189 Convenient Location (Floyd)

    题意: 求某一个办公室 到其他所有办公室的 总距离最短  办公室数 不超过10 输入:多组输入,每组第一行为n (1 ≤ n ≤ 45),接下来n行是 (x, y, d),x到y的距离是d输出:办公室 ...

  9. 《Java程序性能优化》之并发优化

    第四章 并行程序优化 1.非阻塞同步避免了基于锁的同步的缺陷,无锁算法没有锁竞争带来的系统开销,也没有线程间频繁调度带来的开销.CAS算法:包含3个参数CAS(v,e,n).V表示要更新的变量,E表示 ...

  10. mac和Linux的环境变量设置

    摘抄自:http://hi.baidu.com/machao_pe/item/763d0ef12d32cd35fe3582db redhat和ubuntu中修改环境变量 2010-03-06 23:4 ...