6

我正在测试 ASP.NET MVC 3。

对于 ajax 调用,我可以使用 MVC 控制器方法或 WCF 服务。但是,如果我可以用 MVC 做到这一点,我为什么要使用 WCF 呢?

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

谢谢,

4

2 回答 2

7

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

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

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

但是请记住,虽然您可能不需要为您的应用程序编写 WCF 服务,但您仍应尝试像使用服务一样松散耦合您的应用程序层。您可以通过将数据访问代码或对象(实体)定义代码拆分为单独的项目来做到这一点。松耦合,无论是使用 WCF 还是仅使用 MVC 实现,都可以让您的项目维护更简单、更轻松、更实惠,总体而言,这是一个非常好的实践。

于 2012-12-14T13:20:34.057 回答
3

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

于 2012-12-14T13:18:44.947 回答