9

我需要创建一个 .Net api,它将返回将由移动应用程序使用的 JSON。

一种方法是只使用 MVC 应用程序并让我的控制器返回 JSON,因此转到 url.com/controller/action/params 会给我我的 JSON。

我听说创建 WCF 服务也是一个不错的选择。不过,我对 WCF 知之甚少。

各有优缺点吗?用作仅返回 JSON 的服务是否更可靠?

4

3 回答 3

7

另一个竞争者是在自托管场景中使用 WCF 的ASP.NET Web API

有利有弊,但这一切都取决于您现在需要什么与后者,您的专业知识水平,技术承诺以及设计权衡是什么。

这取决于您所说的可靠是什么意思。一种技术不一定或多或少可靠。影响可靠性的因素有很多。

这些是少数几个优点/缺点中的一些,没有特定的顺序、偏好或完整性。

ASP.Net MVC / WebApi / ServiceStack

优点:

  • 基本场景的设置和运行在几分钟内(让 URL 获取一些 JSON 数据)
  • 配置简单。
  • REST 设置直接。
  • 完全控制路由。
  • JSON 原生支持(ASP.NET Web API 可以自动将
    您的模型序列化为 JSON、XML 或其他格式,然后
    将序列化的数据写入 HTTP 响应
    消息的正文。)

缺点:

  • 无法向消费者描述您的服务:目前还没有像 WSDL 这样可以告诉客户端数据类型、操作和服务要求的 API
  • 仅传输安全 - 点对点安全
  • 没有消息级别的安全性
  • 没有服务发现协议(截至目前)
  • 无消息路由
  • 不支持多协议,例如 tcp
  • 单一托管方案(IIS - 这也可以是专业的)

WCF

优点:

  • 多协议支持
  • 传输和消息安全
  • 高度可配置和可互操作
  • 非常可扩展
  • 支持各种消息传递场景,例如路由、双工、发布/订阅、排队等。
  • 许多用于塑造消息和内部工作的旋钮
  • 多种托管方案(IIS/WAS、Windows 服务、控制台)

缺点:

  • 陡峭的学习曲线
  • REST 故事弱(是的 w​​ebHttpBinding 存在,但尝试向某人解释 TemplateURI 和 WebInvoke/Web get 和 BodyStyle)
  • 很多旋钮
于 2012-05-03T07:00:38.127 回答
2

如果您正在寻找的只是一项服务,那么我建议您使用 WCF 之类的东西。但是,WCF 很麻烦,所以我建议使用像ServiceStack这样更简单的东西。它允许您使用基本的 POCO 创建服务。它还内置并准备好使用 JSON/XML/SOAP 进行响应(您无需执行额外操作)

于 2012-05-03T03:59:31.457 回答
1

我真的会采用 WCF 方法。它将为您提供更大的灵活性,并允许您使用许多不同的协议运行服务,而不仅仅是 HTTP,例如。

于 2012-05-03T03:59:20.560 回答