ASP.NET MVC API 或 WCF API

Posted

技术标签:

【中文标题】ASP.NET MVC API 或 WCF API【英文标题】:ASP.NET MVC API or WCF API 【发布时间】:2011-08-14 03:59:58 【问题描述】:

我正在开发一个 ASP.NET MVC 3 应用程序。我需要这个应用程序来使用我还需要实现的 API。 API 应该可以从 ASP.NET MVC 控制器操作和 Ajax 中获得。现在使用 ASP.NET MVC 制作 API 非常容易,但是否可以从其他 ASP.NET MVC 网站操作中使用它?我想 WCF 很容易使用,因为它只是一个服务参考。

API 的其他用户可能是 Windows Phone 和 iPhone。

更新:

许多人只将 API 视为您使用数据的地方,但是您想要执行命令或做一些事情的部分呢?比如添加客户或更改 foo?

【问题讨论】:

What is the best way to implement a RESTful architecture in .NET today?的可能重复 【参考方案1】:

您可能想查看我们在 PDC 上宣布的新 WCF Web API。我们最近发布了一个大升级。 WCF Web API 专为允许您以纯 HTTP 方式向一系列客户端公开 API 而设计。它是轻量级的,提供了一个很好的配置故事(没有配置文件)并且更容易测试。

您可以在wcf.codeplex.com 下载这些位。它包括各种示例,还有一组NuGet 包供您入门。在 NuGet 上搜索 webapi.all

【讨论】:

是的,已经看过了。在 MIX11 上看到了演示,很棒的东西。今天晚些时候我会更深入地了解它【参考方案2】:

我喜欢这样做的方式是使用 RESTful 控制器操作。您可以返回 JSON 并在您自己的网站上使用 javascript 调用。其他网站几乎肯定会理解 JSON,因此他们可以很容易地使用您的 API。这比繁重的 WCF 层更容易编写和测试。

查看这个问题,了解 MVC 的一些示例 REST 框架:

ASP.NET MVC REST frameworks

【讨论】:

如果你能解释下否决票,我将不胜感激。如有必要,我可以详细说明。【参考方案3】:

完成数据馈送的新方法之一是使用OData。 Scott Hanselman 在 Creating an OData API for *** including XML and JSON in 30 minutes 中有很好的介绍。

它甚至允许您将 LINQ 查询放入您的 URL 以准确检索您需要的数据。

Open Data Protocol(官网)

Open Data Protocol(MSDN、微软)

【讨论】:

【参考方案4】:

上次我使用 WCF JSON 绑定时真的很糟糕。 WCF 还附带了各种关于流的疯狂规则,以及如何为所有内容使用 [MessageBody] 属性。

对我来说,这是一个真正的 PITA。


我知道我以前回答过这样的问题:

What is the best way to implement a RESTful architecture in .NET today?

【讨论】:

不理解反对票。我想我可以展示一些例子...... WCF,即使是新的 WCF REST 与 MVC 相比也是一个真正的痛苦。

以上是关于ASP.NET MVC API 或 WCF API的主要内容,如果未能解决你的问题,请参考以下文章

WCF 服务与 ASP.NET Web Api

强大的自托管服务器的最佳选择:WCF 与 ASP.NET Web Api

ASP.Net Web API 架构选择

asp.net mvc 和 web api 哪个更好 Http POST 或 PUT

ASP.Net Web API 与 WCF - Web API 能否用于向单例 WCF 服务提供基于 REST 的通信?

WCF => MVC 作为 ASP.NET WebServices => ASP.NET Web 应用