使用Asp.net mvc或Web服务会更好吗?

时间:2011-08-25 08:39:26

标签: c# asp.net asp.net-mvc web-services

我有几年前编写的asp.net mvc app,我添加的越多,我倾向于对控制器进行REST / AJAX调用以从中获取数据。

我的问题是我是否继续以这种方式工作,还是应该将数据作为单独的REST服务(WCF处理方式)公开?

感觉mvc应用程序设计的界限和Web服务的设计越来越模糊。 Mvc应用程序(除了分离)最初生成网页,现在它用于提供基于服务的数据。

JD

2 个答案:

答案 0 :(得分:4)

我看到两种可能的情景

单个网络应用。在这种情况下,您可以继续向控制器添加方法。这很好,因为它在一个地方与控制器功能保持相关,可以节省您的时间。如果从另一个Web应用程序调用控制器,则不适用。简单,丑陋但有效,开发时间短,维护时间长。

Web应用+网络服务。您可以将数据检索方法分离到服务界面。积极的一面是,您的系统变得更加模块化和独立,这有利于维护。如果您预测将会很快添加其他方法,或者其他Web应用程序使用这些方法,则此路径可能比扩展当前Web应用程序更好。消极的一面是新服务需要对当前的Web应用程序进行一些重构,并且需要时间来开发/测试等。这个决定带来了更多的复杂性,但是使您的应用程序易于扩展。

答案 1 :(得分:2)

我认为如果您严格发送数据,WCF比MVC有几个优势,特别是在数据格式明确(SOAP与使用自制编码),行业范围的工具支持,对不同类型的绑定的出色支持方面(即不只是HTTP),各种传输级服务,良好的日志记录和跟踪功能等。

最后,它归结为:对于你的案例来说,使用WCF 是否有足够的优势。这是你必须自己解决的问题。