在.net平台下,有大量的技术让你创建一个服务,像Web Service,WCF,Web API,Remoting,我们来对比一下他们的区别与联系
Remoting | Web Service | WCF | WCF Rest | Web API |
---|---|---|---|---|
可以灵活的定义其所基于的协议 | 基于SOAP协议 | 基于SOAP协议 | 想使用WCF Rest service,你必须在WCF中使用webHttpBindings | 一个简单的构建HTTP服务框架 |
既支持TCP信道又支持HTTP信道,传输速度快 | 只支持HTTP协议 | 是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ. | 分别用[WebGet]和[WebInvoke]属性,实现了HTTP的GET和POST动词,要想使用其他的HTTP动词,你需要在IIS中做一些配置,使.svc文件可以接受这些动词的请求;使用WebGet通过参数传输数据,也需要配置。而且必须指定UriTemplate | 不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式) |
不是开源的 | 不是开源的 | 不是开源的 | 不是开源的 | 在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术 |
可传输XML的SOAP包又可传输二进制流,效率高 | XML | XML | 支持XML、JSON以及ATOM这些数据格式 | Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。 |
主要用于C/S结构项目 | 用在B/S系统中 | |||
需要客户和服务器都是.NET | 可以做到跨平台通信,但必须采用SOAP协议 | 可以做到跨平台通信,但必须采用SOAP协议 | 可以跨平台通信 | 可以跨平台通信 |
需要通过一个WinForm或是Windows服务进行启动,不一定要依赖IIS服务器 | 只能部署在IIS上 | 可以部署应用程序中或者IIS上或者Windows服务中 | 可以部署在应用程序和IIS上 |
本文参考文档: