1

我将使用 MVC4 开发一个基于 Web 的系统,它将使用 Web 服务(确切地说是 WCF)从数据提供者获取数据(我不能使用直接连接到 SQL)

所以,我有一个关于在这个项目中使用 Web 服务的问题。直接使用 Web 服务模型作为 MVC 模型是否正确,或者我应该为我的 MVC 项目创建单独的模型,然后使用对象映射器(例如EmitMapper)将 Web 服务模型映射到 MVC 中的模型?

注意:考虑到网络服务可能会发生很大变化。

4

2 回答 2

1

不,不要将您的 WCF 可序列化代理类用作 MVC 视图模型 - 这将不必要地将 SOA 后端耦合到您的 MVC 前端。

这两个类有完全不同的关注点 - 例如,您可能希望使用不适用于您的 WCF 类的DataAnnotations等来装饰您ViewModels的类(同样,您的 WCF 代理类可能具有序列化属性)。UIHint

此外,随着屏幕的发展,您通常会发现您可能需要显着区分这 2 个模型 - 例如,您的屏幕需要您的服务不需要的属性,反之亦然。

所以是的,WCF 数据序列化和 MVC ViewModel 的单独类,正如您所建议的,如果您遵守标准命名约定,像 AutoMapper 这样的映射器将为您完成大部分工作。

于 2012-10-09T12:16:24.593 回答
1

我只能告诉你我会怎么做。

保持模型分开。正如您所说,Web 服务可能会发生很大变化。有一个中途的房子可以保护你免受很多实施流失的影响。

还值得指出的是:-

  • 更容易转移到不同的解决方案(使用不同的策略来填充模型)
  • 更容易进行单元测试(不一定需要网络连接来测试您的模型是否有效)
于 2012-10-09T12:16:54.350 回答