将数据协定重用为视图模型

时间:2012-08-16 21:56:54

标签: asp.net-mvc wcf

假设您的解决方案包含以下项目:

  • 核心(实体)
  • 合同(DTO,服务接口)
  • 服务(服务实施)
  • 服务主机(WCF)
  • 客户端(ASP.NET MVC)

客户使用合同而不是实体。 MVC项目中的每个视图都有自己独特的视图模型。 MVC项目没有意识到这些实体。

我正在考虑重新使用数据合同作为视图模型的可能性,因此我不是从服务中检索Widget DTO并将Widget DTO映射到Widget VM,而是检索Widget DTO并将其直接传递给图。

这是好还是坏?为什么?

1 个答案:

答案 0 :(得分:3)

  

这是好还是坏?为什么?

如果这些DTO严格符合您的观点要求(这会让我感到非常惊讶)那么,是的,使用它们而不是编写视图模型是完全正确的。

但是如果你发现自己使用的是ViewBag,因为您的DTO中不存在视图所需的某些属性,请立即停止!转到并为此特定视图定义视图模型。