ASP.Net Web API与WCF,我应该在我的项目中选择哪一个

P b*_*sak 8 c# asp.net wcf web-services asp.net-web-api

到目前为止,我已经阅读了很多关于WCF和ASP.Net web API之间差异的文章.不幸的是,我无法清楚地知道什么能满足我的目的.我读过的大多数文章都强调了两个Web服务的设计观点.但我很困惑什么最适合我的项目,为什么?这是我对该项目的简要描述.

我需要在两个服务器之间创建一个通信通道(两者都是用C#编写的).服务器将使用消息(某种类型的命令)进行通信.消息有时只能是确认,有时消息可能包含进行某些计算的指令.例如,一条消息可以绘制某些内容,或发送短信等.消息不一定涉及任何数据库事务.但是这些消息有时可以将大文本文件作为有效载荷发送(最大约1-5 MB).我相信WCF肯定会这样做,但我可以用ASP.net web API做同样的事情.因为到目前为止我已经看到了ASP.Net web api的所有示例:它们适用于操纵某种DB存储(GET,PUT,DELETE)的RESTful服务.但在我的情况下,我将需要公开服务点

进行某种处理,例如返回计算值,发送和确认消息等.

不只是操纵数据库存储.

那么,最好和最简单的方法应该是什么?需要提到的是,我没有找到使用ASP.Net web API实现此目的的任何直接示例.

Raj*_*dev 10

您提出的问题是过于宽泛或主要以意见为基础,很难为您所提出的问题举例说明.

重点:

  • 首先,如果您要创建将在不同平台上使用的服务,那么请使用WCF.
  • 其次,如果您要创建将使用外部资源的 Internet服务,那么请使用Web API.
  • 如果要为低带宽设备或移动设备创建服务以访问客户端,Web API是最佳选择.与SOAP相比,HTTP请求/响应也更具可读性,因为它包含标题,正文等,这使得它变得复杂.

只需几分钟时间阅读以下文章,直到您完全了解一些原则.

原始来源可以在这里,这里这里找到.

在WCF或WEB API之间选择谁:

  1. 如果要创建应支持特殊方案的服务(例如单向消息传递,消息队列,双工通信等),请选择WCF.
  2. 如果要创建可在可用时使用快速传输通道的服务(例如TCP,命名管道,甚至UDP(在WCF 4.5中)),请选择WCF,并且还希望在所有其他传输通道不可用时支持HTTP.
  3. 如果要通过HTTP创建可以使用HTTP的完整功能(如URI,请求/响应头,缓存,版本控制,各种内容格式)的面向资源的服务,请选择Web API.
  4. 如果要将服务公开给广泛的客户,包括浏览器,手机,iPhone和平板电脑,请选择Web API.

为什么选择Web API

  • Web API没有像WCF REST服务那样繁琐而广泛的配置.
  • 它非常简单,使用Web API创建服务.与使用WCF REST一样,服务创建有点困难(需要清楚地了解配置).
  • Web API仅基于HTTP和HTTPS,易于以REST完全方式定义,公开和使用.
  • Web API是轻量级架构,适用于智能手机等带宽有限的设备.

我的看法:

  • 最简单的方法 - Web API(因为你没有任何这方面的例子)
  • 最难的方式是(配置) - WCF(最好使用WCF,因为你有例子)

我希望这能让你明白选择什么......


PMe*_*let 0

WebAPI 不仅适用于 RESTful Web 服务。您可以轻松地将请求发送到 WebAPI 控制器并按照您想要的方式处理它:计算、发送消息、与 CRM 交互、与 DB 交互或其他任何方式。

WCF 是为了管理基于 SOAP 的 Web 服务而创建的,并带来了额外的复杂性。它处理 TCP、Mime...

如果您只需要处理 HTTP 请求,最简单的方法是使用 WebAPI。