WCF服务或Web API

Dan*_*lis 24 c# asp.net asp.net-mvc wcf asp.net-web-api

我将参与一个涉及许多元素的项目:

  • ASP.NET MVC网站
  • C#控制台应用程序
  • iPhone App

为了让所有这些单独的应用程序与数据库通信,我的直接想法是使用WCF服务.

但是,我现在需要向站点添加API以允许第三方从他们自己的应用程序中选择,插入和更新记录.

在我看来,我只是在我的WCF服务上创建一个单独的RESTful服务端点,它将使用身份验证锁定,并且只能访问某些方法.

但是,我今天一直在阅读MVC 4中的Web API功能,这是RESTful API的最新功能吗?

我是否应该继续使用Web API?或者因为我的其他应用程序需要Web服务,我应该坚持使用WCF服务吗?

Sha*_*lle 16

如果您打算进行RESTful开发,那么您肯定希望使用ASP.Net Web Api(最初称为WCF Web Api,其目标是"使REST成为.NET中的一等公民").

另一件需要考虑的事情是不再支持 WCF REST Starter工具包.

请注意,使用Web Api并不意味着您必须使用ASP.Net MVC或IIS,即使它可以自托管.

对于处理非CRUD的操作,我建议使用Google搜索"REST非CRUD".我发现这篇博客发布了非CRUD操作的RESTful URL(尤其是有趣的评论).如果您决定需要进行RPC调用,那么可能必须使用WCF完成.这就是说,因为WCF REST正在被淘汰,我不确定最佳解决方案是什么.两者都可能是最好的答案,但与此同时,它不一定是一个好的答案.

另一个替代方案是WCF OData服务,但我不确定它是否得到iPhone的任何支持.

最后一点(可以在将来删除,因为这是时间敏感的)

Microsoft已提供带有测试版的Go Live许可证,这意味着它受Microsoft支持,您不应该在升级到RTM文件时遇到任何问题.


Dim*_*sko 6

服务堆栈看起来也像一个选项.

演示,概述,示例可在此处获得.

  • +1提及服务堆栈,我从未听说过.然而,考虑一下他们的框架,我的第一印象是他们为客户提出的"无代码生成"的既定目标并不完全准确.如果您无法访问服务DTO,则仍然需要Code-gen(显然是手动的),这是公共API的极有可能的情况.不过,该框架看起来很有前景,所以我肯定会研究它.谢谢你的链接! (2认同)