2012-01-26 59 views
1

我们设计一个新的ASP.NET MVC应用程序,我们有我们愿与JSON数据利弊从MVC控制器请求JSON数据VS WCF服务

1),我们可以实现一个控制器的动作绑定用户控件返回JsonResult http://shashankshetty.wordpress.com/2009/03/04/using-jsonresult-with-jquery-in-aspnet-mvc/

2),或者我们可以实现一个WCF服务,也返回JSON用于序列 How do I return clean JSON from a WCF Service?

类是不同的JavaScriptSerializer VS DataContractJsonSerializer,我不知道他们做在内部共享一些常见的核心Json序列化代码,以及它们在性能和可扩展性方面的比较?

我期望如果你使用相同的数据模型,第一种方法似乎是更简单的实现。 是否有任何其他考虑,然后执行简单比较JsonResult vs WCF [WebGet(ResponseFormat = WebMessageFormat.Json)]像性能,安全性,可扩展性,可扩展性,可测试性等?

p.s. 我想澄清一下,这个问题不是关于使用SOA方法的决定,还是使用体系结构层如何更好地分离问题等等。我们的应用程序已经有WCF服务,可以将一些数据公开给第三方应用程序,并隔离需要隔离的功能,所以在创建其他项目或托管基础架构以及配置WCF服务方面 - 这已经完成了很多工作。假设我们想要获得的JSON数据不会在单个网页上的UI控件的其他地方被重用。

+1

我认为#1是完美的MVC应用程序,毕竟,调用控制器和返回JSON真的没有什么不同,然后调用一个控制器并返回部分视图,甚至是整个视图。如果你需要一个外部应用程序来访问你的'行动',那么Web服务可能是你最好的选择,尤其是你已经设置好了。 –

+0

不是一个真正的问题,非常广泛和太本地化。取决于您的许多应用程序要求。 – jfar

回答

3

如果你有一个使用MVC建立了一个网站和JSON用于渲染页面,然后添加一个REST端点仅仅做这时候就没有其他的目的,只是增加了额外的复杂性

MVC,正如你所说,处理从一个动作返回JSON相当愉快,所以我会走这条路线

+0

我同意。只因为你可以,并不代表你应该。 –