我正在设计 MVC 应用程序。
我正在考虑使用 web 服务,以便 MVC 前端的多个部署可以通过中央数据库工作,该中央数据库通过托管在独立服务器上的 web 服务从 MVC 应用程序访问,例如
- 一台服务器上的 MVC 应用程序
- 在另一台服务器上实现业务逻辑和调用数据库的 Web 服务
- 数据库服务器
如果我沿着这条路走下去
- 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/