【发布时间】:2012-01-26 16:18:45
【问题描述】:
我们设计了一个新的 ASP.NET MVC 应用程序,并且我们有想要与 JSON 数据绑定的用户控件
1) 我们可以实现一个返回 JsonResult 的控制器动作 http://shashankshetty.wordpress.com/2009/03/04/using-jsonresult-with-jquery-in-aspnet-mvc/
2) 或者我们可以实现一个也返回 JSON 的 WCF 服务 How do I return clean JSON from a WCF Service?
用于序列化的类是不同的 JavaScriptSerializer 和 DataContractJsonSerializer,我想知道它们是否共享一些共同的核心 Json 序列化代码,以及它们在性能和可扩展性方面的比较?
我希望如果您使用相同的数据模型,第一种方法似乎更易于实现。 除了比较 JsonResult 与 WCF [WebGet(ResponseFormat = WebMessageFormat.Json)] 的实现简单性之外是否还有其他考虑因素,例如性能、安全性、可扩展性、可扩展性、可测试性等?
附言 我想澄清一下,这个问题不是关于是否使用 SOA 方法的决定,也不是关于如何使用架构层更好地分离关注点等等。我们的应用程序已经拥有 WCF 服务,可以向 3rd 方应用程序公开一些数据并隔离需要隔离的功能,因此在创建其他项目或托管基础设施和配置 WCF 服务方面——这一切都已经完成。假设我们想要获取的 JSON 数据不会在其他地方重复用于单个网页上的 UI 控件。
【问题讨论】:
-
我认为#1 非常适合 MVC 应用程序,毕竟调用控制器并返回 JSON 与调用控制器并返回部分视图甚至整个视图并没有什么不同。如果您需要一个外部应用程序来访问您的“操作”,那么网络服务可能是您的最佳选择,尤其是在您已经全部设置好之后。
-
不是一个真正的问题,非常广泛且过于本地化。很大程度上取决于您的应用程序要求。
标签: ajax asp.net-mvc wcf json