fre*_*hie 7 asp.net wcf asp.net-web-api
我一直在开发一个完全基于ajax(没有POST)的单页Web应用程序,现在我正在开发时使用ASMX作为Web服务.Web服务使用JSON数据.对于发布,我知道我需要升级到WCF或WebAPI.
最终,我计划构建本机移动应用程序,这些应用程序将使用与Web应用程序相同的Web服务.一切都是平等的,如果我必须在两者之间做出选择,我应该选择哪个选项,以便Web服务可以使用不同的客户端应用程序?
谢谢.
如果您的应用程序只能通过各种平台的移动设备访问,则意味着您必须找到所有这些平台的通用最简单的分母.因此,换句话说,如果您关心互操作性,您将专注于所有平台都可以使用的一种独特的通信技术.
JSON + REST似乎是当今许多平台上最常见的最简单的分母(当然包括移动平台).如果这是您将实现的唯一通信技术,WebAPI似乎是显而易见的选择.
WCF更具可扩展性,更易配置,可以在不同的协议上插入不同的绑定,不同的编码,它实现SOAP,WS-*,它可以非常快(使用精心选择的绑定),你也可以用它做JSON + REST ,但你不需要所有这些功能(由于所有这些功能,WCF也可能非常复杂),你需要的似乎是无处不在和简单.根据您的要求,我会选择WebAPI.
我使用WCF开发了一组RESTful Web服务,最近启动了一个用ASP.NET Web API替换WCF的项目.我的经验是,ASP.NET Web API比WCF更容易学习,更易于使用.我还可以为您提供几个理由来选择ASP.NET Web API:
WCF网址包含'.svc'扩展名.例如: http://localhost/MyRestService.svc/.这不应该导致客户端出现问题,但这很难看.您可以.svc使用IIS URL重写模块(参见此博客文章)删除扩展,但使用ASP.NET Web API,您首先没有问题.
WCF使用DataContractJsonSerializer,生成可能对客户端有问题的JSON.具体示例包括日期和词典.您可以更改WCF使用的序列化程序(请参阅此SO问题),但ASP.NET Web API默认使用JSON.NET,这是高度可配置的.
如果我今天开始创建一个新的RESTful Web服务,那么选择基于WCF的ASP.NET Web API将是一个简单的选择,因为这是它的设计目的.
| 归档时间: |
|
| 查看次数: |
3980 次 |
| 最近记录: |