为什么我要将WCF与MVC一起使用?

时间:2012-12-14 13:13:19

标签: asp.net-mvc wcf

我正在测试ASP.NET MVC 3.

对于ajax调用,我可以使用MVC控制器方法或WCF服务。 但是,为什么我会使用WCF,如果我能用MVC做的呢?

我的问题是:我是否应该在MVC中使用WCF服务?为什么?在哪种情况下?

谢谢,

2 个答案:

答案 0 :(得分:7)

WCF是用于开发Web服务的框架。 Web服务的概念是它将用于提供原始数据的功能与用于处理数据并将其提供给最终用户的功能分离。这有一些好处:

  • 如果您要提供API,则不知道如何使用数据。您只想向一组应用程序提供原始数据,并让这些应用程序处理其余的应用程序。一个Web服务就是这样......它打开了应用程序的数据层,同时保持其余部分关闭。
  • 它可以通过强制松散耦合来提高数据层的维护性。松耦合意味着您的应用组件不会彼此缠绕在一起。这是一件好事,因为它可以更轻松地修改应用程序的各个部分而不会中断其余部分。例如,如果理解给定的函数调用将返回set JSON对象,则可以更改为该对象提供数据的数据库的表结构,而不会干扰使用应用程序的代码。只要您始终以相同的格式提供相同类型的数据,您就可以维护预定义的数据协定。另一方面,如果数据库查询,连接字符串等都硬编码到您的应用程序中,则会使修改数据库逻辑变得更加困难。

在您的情况下,如果您只是开发一个中小型Web应用程序而无意启动API或类似服务,则可能不需要WCF。

请记住,虽然您可能不需要为应用程序编写WCF服务,但仍应尝试像处理服务那样松散地耦合应用程序层。您可以通过将数据访问代码或对象(实体)定义代码拆分为单独的项目来实现此目的。无论是使用WCF还是仅使用MVC实现松散耦合,都可以使您的项目更简单,更轻松,更实惠,并且总体上是一种非常好的做法。

答案 1 :(得分:3)

MVC很好,你真的不需要WCF。 MVC创建了某种REST API(您的所有操作方法都可以使用自己的URL来调用方法),因此您可以使用它。