wcf restful 服务与 WEB API 的区别
Difference between wcf restful services and WEB API
我查询了好久now.Where到底要用WEBAPI哪里用WCFrestful服务。无论我们想在 WEB API 中实现什么,我们都能够在 WCF Rest 中实现。我试图深入研究答案,但我知道我们需要在 wcf 中进行额外设置,例如 URI 模板、合同、端点。但更多关于设置,但我想知道使用 WCF Restful 服务的真正原因。
网络服务
- 它基于 SOAP 和 returns 格式的 XML 数据。
- 仅支持HTTP协议
- 它不是开源的,但任何理解 XML 的客户都可以使用。
- 它只能在 IIS 上托管。
WCF
- 它也是基于 SOAP 和 returns 格式的 XML 数据。
- 它是 Web 服务 (ASMX) 的演变,支持各种协议,如 TCP、HTTP、HTTPS、命名管道、MSMQ。
- WCF 的主要问题是其繁琐且广泛的配置。
- 它不是开源的,但任何理解 XML 的客户都可以使用。
- 它可以在应用程序或 IIS 上或使用 window 服务托管。
WCF REST
- 要将 WCF 用作 WCF REST 服务,您必须启用
webHttpBindings
。
- 它分别通过
[WebGet]
和 [WebInvoke]
属性支持 HTTP GET 和 POST 动词。
- 要启用其他 HTTP 动词,您必须在 IIS 中进行一些配置以接受对
.svc
文件的特定动词请求。
- 使用
WebGet
通过参数传递数据需要配置。必须指定 UriTemplate
。
- 支持XML、JSON和ATOM数据格式
网页API
- 这是用于构建 HTTP 服务的简单方法的新框架。
- Web API 是开源的,是使用 .NET Framework 构建 RESTful 服务的理想平台。
- 与 WCF REST 服务不同,它使用 HTTP 的全部功能(如 URI、request/response headers、缓存、版本控制、各种内容格式)。
- 它还支持 MVC 功能,例如路由、控制器、操作结果、过滤器、模型绑定器、IOC 容器或依赖项注入、单元测试,使其更加简单和健壮。
- 它可以托管在应用程序内或 IIS 上。
- 它是一种轻量级架构,适合智能手机等带宽有限的设备。
- 响应由 Web API 的
MediaTypeFormatter
格式化为 JSON、XML 或您想要添加为 MediaTypeFormatter
的任何格式。
在 WCF 或 Web 之间选择 API
- 如果您想要创建支持特殊场景(例如单向消息传递、消息 queues、双工通信等)的服务,请选择 WCF。
- 当您想要创建可以使用可用的快速传输通道的服务时,请选择 WCF,例如 TCP、命名管道,甚至可能是 UDP(在 WCF 4.5 中),并且您还希望在所有其他情况下都支持 HTTP传输通道不可用。
- 如果您想通过 HTTP 创建 resource-oriented 服务,可以使用 HTTP 的全部功能(如 URI、request/response headers、缓存、版本控制、各种内容格式)。
- 如果您希望向包括浏览器、手机、iPhone 和平板电脑在内的广泛客户端公开您的服务,请选择 Web API。
详情请参考http://www.c-sharpcorner.com/UploadFile/8a67c0/who-is-winner-web-api-or-wcf/。
我查询了好久now.Where到底要用WEBAPI哪里用WCFrestful服务。无论我们想在 WEB API 中实现什么,我们都能够在 WCF Rest 中实现。我试图深入研究答案,但我知道我们需要在 wcf 中进行额外设置,例如 URI 模板、合同、端点。但更多关于设置,但我想知道使用 WCF Restful 服务的真正原因。
网络服务
- 它基于 SOAP 和 returns 格式的 XML 数据。
- 仅支持HTTP协议
- 它不是开源的,但任何理解 XML 的客户都可以使用。
- 它只能在 IIS 上托管。
WCF
- 它也是基于 SOAP 和 returns 格式的 XML 数据。
- 它是 Web 服务 (ASMX) 的演变,支持各种协议,如 TCP、HTTP、HTTPS、命名管道、MSMQ。
- WCF 的主要问题是其繁琐且广泛的配置。
- 它不是开源的,但任何理解 XML 的客户都可以使用。
- 它可以在应用程序或 IIS 上或使用 window 服务托管。
WCF REST
- 要将 WCF 用作 WCF REST 服务,您必须启用
webHttpBindings
。 - 它分别通过
[WebGet]
和[WebInvoke]
属性支持 HTTP GET 和 POST 动词。 - 要启用其他 HTTP 动词,您必须在 IIS 中进行一些配置以接受对
.svc
文件的特定动词请求。 - 使用
WebGet
通过参数传递数据需要配置。必须指定UriTemplate
。 - 支持XML、JSON和ATOM数据格式
网页API
- 这是用于构建 HTTP 服务的简单方法的新框架。
- Web API 是开源的,是使用 .NET Framework 构建 RESTful 服务的理想平台。
- 与 WCF REST 服务不同,它使用 HTTP 的全部功能(如 URI、request/response headers、缓存、版本控制、各种内容格式)。
- 它还支持 MVC 功能,例如路由、控制器、操作结果、过滤器、模型绑定器、IOC 容器或依赖项注入、单元测试,使其更加简单和健壮。
- 它可以托管在应用程序内或 IIS 上。
- 它是一种轻量级架构,适合智能手机等带宽有限的设备。
- 响应由 Web API 的
MediaTypeFormatter
格式化为 JSON、XML 或您想要添加为MediaTypeFormatter
的任何格式。
在 WCF 或 Web 之间选择 API
- 如果您想要创建支持特殊场景(例如单向消息传递、消息 queues、双工通信等)的服务,请选择 WCF。
- 当您想要创建可以使用可用的快速传输通道的服务时,请选择 WCF,例如 TCP、命名管道,甚至可能是 UDP(在 WCF 4.5 中),并且您还希望在所有其他情况下都支持 HTTP传输通道不可用。
- 如果您想通过 HTTP 创建 resource-oriented 服务,可以使用 HTTP 的全部功能(如 URI、request/response headers、缓存、版本控制、各种内容格式)。
- 如果您希望向包括浏览器、手机、iPhone 和平板电脑在内的广泛客户端公开您的服务,请选择 Web API。
详情请参考http://www.c-sharpcorner.com/UploadFile/8a67c0/who-is-winner-web-api-or-wcf/。