24

我将从事一个涉及许多元素的项目:

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

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

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

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

但是,我今天一直在阅读有关 MVC 4 中的 Web API 功能的内容,这意味着它是 RESTful API 的最新功能?

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

4

6 回答 6

16

如果您打算进行 RESTful 开发,那么您肯定会想要使用 ASP.Net Web Api(最初称为 WCF Web Api,其创建目标是“让 REST 成为 .NET 中的一等公民”

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

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

对于处理本质上非 CRUD 的操作,我建议使用谷歌搜索“REST non-CRUD”。我发现这篇博客文章RESTful URLs for non-CRUD 操作(尤其是有趣的评论)。如果您决定需要进行 RPC 调用,那么这些调用可能必须使用 WCF 来完成。也就是说,由于 WCF REST 正在被淘汰,我不确定最好的解决方案是什么。两者都有可能是最好的答案,但同时也不一定是一个好的答案。

另一种选择是 WCF OData 服务,但我不确定这是否得到 iPhone 的任何支持。

最后一点(由于时间敏感,将来可以删除)

Microsoft 提供了一个带有测试版的 Go Live 许可证,这意味着它受 Microsoft 支持,升级到文件 RTM 应该没有任何问题。

于 2012-02-29T17:27:08.227 回答
6

服务堆栈看起来也是一种选择。

演示、概述、示例可在此处获得

于 2012-02-29T16:11:19.980 回答
4

这里没有正确的答案。您当然可以使用 WCF RESTful 服务做得相当好。或者您可以使用 ASP.NET MVC。两者都是完全有效的,并且都有优点和缺点。

最终,我建议您选择对您来说最易于维护的东西。

我想指出 MVC 4 处于测试阶段,因此请注意错误,并且在测试结束之前不要上线。

于 2012-02-29T16:11:33.667 回答
1

我倾向于查看在您将要使用的所有平台上具有最佳支持的内容,我怀疑 iPhone 应用程序最终可能会推动您的选择。

如果它是纯 .net,我仍然倾向于使用 SOAP 服务——如今它并不被认为很酷,但它通常可以在大多数平台上满足您的需求,而无需推出自定义解决方案。

编辑

ASP.NET Web API 意味着 .NET 现在提供了一个很好的框架来开发一个安静的 API,我修改我的答案说我现在倾向于这个 - 进步很棒!

于 2012-02-29T16:19:14.953 回答
1

由于您要创建一个 ASP.NET MVC 网站,因此使用 ASP.NET Web API 会很舒服,因为编程模型非常相似,并且这些解决方案或多或少地相互集成。

于 2012-02-29T16:31:29.627 回答
0

我也有同样的问题。

在 MSDN 站点中, http: //msdn.microsoft.com/en-us/library/jj823172 (v=vs.110).aspx

找到了一个视频教程,他们说对于 iPhone 或 JSON 或 xml 的 Web 应用程序客户端等机器消耗,推荐使用 Web API。它在视频的最后一部分。

而对于更复杂的机器对机器通信,WCF 是可取的。

http://channel9.msdn.com/Series/Building-Web-Apps-with-ASP-NET-Jump-Start/Building-Web-Apps-with-ASPNET-Jump-Start-04-Building-a-Service-带有 ASPNET-Web-API 的层

这是他们演示文稿的屏幕截图。

在此处输入图像描述

于 2014-11-19T15:57:38.857 回答