我应该通过 ASP.NET MVC 操作还是 WCF 公开 Web 方法?

Posted

技术标签:

【中文标题】我应该通过 ASP.NET MVC 操作还是 WCF 公开 Web 方法?【英文标题】:Should I expose web methods via ASP.NET MVC actions or WCF? 【发布时间】:2011-04-30 06:42:53 【问题描述】:

我希望能够从某种 Web 服务中以 Ajax 方式检索 JSON 数据。 (Web 服务调用将包装对 SQL 的调用,处理返回的 DataSet,并返回 JSON 表示形式。)最初,我认为具有适当命名的控制器和返回 JsonResults 的操作的 ASP.NET MVC 项目就足够了。但是,一位同事建议 WCF 可能更适合这样的事情。我的经验是 WCF 很难配置;而且,MVC 通过 Controller 暴露 Actions 的方式看起来非常优雅。

MVC 还是 WCF 哪个更适合我正在尝试做的事情?

【问题讨论】:

【参考方案1】:

如果您要创建严格创建 JSON 的服务(没有其他端点),我发现 .NET MVC 更易于使用并产生更好的结果。

如果您认为将来可能需要多种类型的端点(SOAP 等),那么请使用 WCF。

请记住,WCF 团队有传言称他们即将发布一些内容,这些内容将彻底改变 WCF 中 RESTful JSON 服务的完成方式。应该很有趣。

【讨论】:

“产生更好的结果”你能澄清一下吗?您是指整体还是 JSON 的质量? @jfar - 我在考虑 JSON 结果的大小(虽然答案中措辞不佳)。 WCF 包含类型提示,这可能会在大型嵌套集合的 JSON 响应中增加大量“不必要的”开销。

以上是关于我应该通过 ASP.NET MVC 操作还是 WCF 公开 Web 方法?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 服务层输入输出数据

什么时候应该在 ASP.NET MVC 中使用异步控制器?

ASP.NET MVC 架构:ViewModel 通过组合、继承还是复制?

在 ASP.NET 中使用 WebAPI 或 MVC 返回 JSON

asp.net mvc 3 - ajax 表单提交和验证

使用 ASP.NET MVC 操作方法