WCF、WebAPI、WCFREST和Web服务的差别:web
Web服务json
它是基于SOAP和XML的形式返回数据。windows
它仅支持HTTP协议。api
它是开放源,可是不消耗任何客户端能够同时理解XML。浏览器
它能够仅在IIS托管。缓存
WCFmvc
它也是基于SOAP和XML的形式返回数据。框架
它是对演化的Web服务(asmx)和支持各类协议(如TCP、HTTP、HTTPS)、命名管道、MSMQ。测试
WCF最主要的问题是,其繁琐和大量的配置。spa
它是开放源,可是不消耗任何客户端能够同时理解XML。
它能够在应用程序或IIS托管也能够部署为windows服务。
WCFREST
使WCFREST服务您必须启用webhttpbindings。
它支持HTTP动词GET和POST[][]和webgetwebinvoke属性。
启用HTTP动词之外,你还得在配置IIS来接受该请求的特定动词对.svc文件
使数据经过使用webget须要配置参数。必须指定该uritemplate
它支持XML、JSON和Atom格式数据。
WebAPI
这是新的框架来构建HTTP服务的简单和容易方式。
开放源WebAPI是一个理想平台服务的REST-ful的NET框架。
WCFREST服务不一样,它使用了HTTP的特色充分相似(URI、请求/响应报头,缓存,版本、各类内容格式)
它还支持MVC的特征,诸如路由、控制器、操做结果、过滤器、活页夹、或IOC依赖注入容器,测试单元,使其更加简单和鲁棒。
它能够托管在应用程序或IIS下。
它是结构良好的和重量轻的设备具备有限的带宽,如智能电话。
响应格式化为JSON,XML或任何格式,您须要添加一个mediatypeformatter。
如何选择WCF、WebAPI
对于单向消息传递、消息队列、半双工通讯等能够选择WCF。
当须要使用全特征的(如HTTPURI,请求/响应报头,缓存,版本、各类内容格式),能够选择WebAPI。
当须要创建服务于浏览器、移动电话、iPhone和平板电脑的项目能够选择WebAPI。
ASP.NETMVC和ASP.NETWebAPI
使用ASP.NETMVC建立Web应用返回数据,可是ASP.NETWebAPI被用于建立完整HTTP服务的容易且简单的方式,不仅返回数据视图。
有助于构建webAPI(REST)风格的服务。NET框架,它还支持内容协商(约决定最佳响应格式数据,该数据能够是可由客户端的JSON、XML或其它格式的数据),自托管的MVC。
WebAPI也须要返回数据的特定格式(如JSON,XML或任何其它基于接收的报头的请求。仅在MVC中使用JSON格式返回数据jsonresult。
在WebAPI的请求的动做被映射到基于HTTP动词,但它在MVC中被映射到动做名称。
ASP.NETWebAPI的新框架和ASP.NET框架的核心部分。该模型结合、过滤、路由和其余特征在存在MVCWebAPI不一样于MVC和存在于新System.Web.Http
组件。在MVC中,这些特征在与存在System.Web.Mvc
。所以,WebAPI也可使用ASP.NET和做为独立的服务层。
您能够在MVC控制器和WebAPI单个项目来处理高级Ajax请求的返回数据能够在JSON、XML或其余格式的全面建设和HTTP服务。一般,这被称为自托管WebAPI。
此外,WebAPI是重量轻的应用除了Web体系结构和它也可用于智能手机应用。
mvc主要用于建站,web api主要用于构建http服务