asp.net-mvc - MVC - 将 MVC 与 WCF 结合使用

标签 asp.net-mvc wcf

我正在设计 MVC 应用程序。

我正在考虑使用 web 服务,以便 MVC 前端的多个部署可以通过中央数据库工作,该中央数据库通过托管在独立服务器上的 web 服务从 MVC 应用程序访问,例如

  1. 一台服务器上的 MVC 应用程序
  2. 在另一台服务器上实现业务逻辑和调用数据库的 Web 服务
  3. 数据库服务器

如果我沿着这条路走下去

  1. MVC 应用中的 Controller 将调用网络服务,而不是直接调用数据库

但是我担心在这种设置下,MVC 项目中的模型将只是其中具有验证属性的占位符对象,我将错过该模型的其他好处/功能。

是否有方法使 MVC 应用程序与 WCF 保持一致,以便使用 WCF 并不意味着您会失去 MVC 的任何好处

最佳答案

概念上有 3 个模型,但是因为工具允许我们,我们经常在整个过程中使用相同的模型。

使用 WCF 确实明确了关注点分离。

实体模型定义了数据存储中数据的物理表示,例如 EF 生成的数据。这是特定于实现的。

在您的 UI 中有一个表示数据的 View 模型。这是特定于实现的。

有一个域模型可以逻辑地表示数据。这用作您的 WCF 服务的接口(interface),而不是特定于实现的。例如,这允许非 .NET 客户端使用您的服务。

确实存在代码开销,但在非平凡的情况下,进一步抽象的好处可能非常显着。

它允许您独立更改数据访问的实现和 UI 的实现,这是一件好事。

关于asp.net-mvc - MVC - 将 MVC 与 WCF 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6871883/

相关文章:

c# - 将 DateTime 存储到 cookie 中的最佳方法是什么?

Javascript (ExtJs) 返回 URL 的 404 错误,但当我将其输入浏览器时没有问题

jquery - 如何切断 Highcharts 中两点之间的线I

.net - WCF 程序集导致循环依赖

c# - 尝试不断尝试,直到服务恢复

c# - Backbone 不会将模型值发送到服务器 api

c# - 如何使字段在运行时可编辑

angularjs - 从 Angular 2 和 Silverlight 应用程序使用相同的 WCF 服务

c# - 为什么我的 WCF 客户端在调用引发事件的 WCF 服务器中的方法后超时?

wcf - 什么是服务凭证协商?