Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# JSON API的.Net选项?_C#_.net_Wcf_Asp.net Mvc 3 - Fatal编程技术网

C# JSON API的.Net选项?

C# JSON API的.Net选项?,c#,.net,wcf,asp.net-mvc-3,C#,.net,Wcf,Asp.net Mvc 3,我需要创建一个.NETAPI,它将返回移动应用程序将使用的JSON 一种方法是只使用一个MVC应用程序,让我的控制器返回JSON,因此访问url.com/controller/action/params会得到我的JSON 我听说创建WCF服务也是一个不错的选择。不过,我对WCF知之甚少 每种方法都有利弊吗?作为只返回JSON的服务,还有一个更可靠吗?我真的会选择WCF方法。它将为您提供更大的灵活性,并允许您使用多种不同的协议来运行服务,而不仅仅是HTTP(例如)。如果您只需要一项服务,那么我建议

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

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

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


每种方法都有利弊吗?作为只返回JSON的服务,还有一个更可靠吗?

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

如果您只需要一项服务,那么我建议您使用类似WCF的服务。然而,WCF很麻烦,所以我建议做一些简单的事情,比如。它允许您使用基本POCO创建服务。它还内置了JSON/XML/SOAP(您无需额外操作),可以随时响应。

另一个竞争者是

有优点也有缺点,但这完全取决于你现在需要什么,与后者相比,你的专业水平、技术承诺和设计权衡

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

这些都是为数不多的优点/缺点,没有特定的顺序、偏好或完整性

ASP.Net MVC/WebApi/ServiceStack

优点:

  • 在几分钟内为基本场景设置并运行(让URL获取一些JSON数据)
  • 配置简单
  • 休息设置笔直向前
  • 完全控制路由
  • JSON本机支持(ASP.NET Web API可以自动序列化
    将模型转换为JSON、XML或其他格式,然后写入
    将序列化数据导入HTTP响应的主体
    信息。)
缺点:

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

优点:

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

  • 陡峭的学习曲线
  • (是的webHttpBinding存在,但请尝试向某人解释TemplateURI和WebInvoke/Web get和BodyStyle)
  • 许多旋钮

是用于公开API还是仅用于那些移动应用程序?谁将创建这些应用程序?真的只是供我正在创建的移动应用程序使用。MVC将是最简单的解决方案。这真的很简单。使用WCF将给您带来大量开销和许多您不需要的功能(如公开服务的引用)。ServiceStack不仅具有本机JSON支持,而且是.NET中可用的最快的:ServiceStack还支持JSON、XML以及SOAP、JSV和CSV开箱即用。它还支持比内置Redis和RCON主机的HTTP更多的主机。这个问题详细介绍了WebApi和ServiceStack