JSON API的.Net选项?

RJP*_*RJP 9 .net c# wcf asp.net-mvc-3

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

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

我听说创建WCF服务也是一个不错的选择.不过,我对WCF一点也不了解.

每个人都有利弊吗?用作仅返回JSON的服务是否更可靠?

Pet*_*tin 7

另一个竞争者是ASP.NET Web API ,它在自托管方案中使用WCF.

有利有弊,但这一切都取决于你现在需要什么,后者,你的专业水平,技术承诺和设计权衡是什么.

这取决于你的意思是可靠的.一种技术不一定或多或少可靠.可靠性有很多因素.

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

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故事弱(是的webHttpBinding存在,但尝试向某人解释TemplateURI和WebInvoke/Web get和BodyStyle)
  • 很多旋钮