【发布时间】:2019-07-11 21:19:28
【问题描述】:
需要实现干净的架构并与 DTO 概念作斗争。据我了解,我不能在表示层(asp mvc)中使用我的域对象,而应该使用 DTO 或 viewmodel。我不确定这些 DTO 应该去哪里。 我有两个项目作为我的核心层(域、应用程序)。域包含我的实体 ex:'Post' + Repository 接口 ex:'IPostRepository' 。应用程序包含逻辑 ex:'IPostManager' + 'PostManager'。 映射到实体的 DTO 和 DTO 应该发生在哪里? Asp MVC,应用程序还是域?
【问题讨论】:
-
域和应用程序不应该知道演示细节。
-
@FCin 。所以我的 DTO 和映射应该驻留在 MVC 中??
-
特定于网站的映射应在该网站内完成。假设您有一个网站和一个 WPF 应用程序,它们都使用相同的域和应用程序层。如果您在应用程序中映射它们,那么您会自动限制自己为两个应用程序拥有相同的 DTO。相反,如果您将模型映射到每个演示文稿中,则应用程序的同一部分可以有不同的 DTO。
-
@FCin。谢谢。我得到了它。另一个关于在 Application 项目而不是 Domain 项目中使用“PostManager”的问题 - 它负责 Post 实体上的 CRUD 操作。这是一个好还是坏的设计??
-
您的 DTO 到底是用来做什么的?在干净架构 (blog.cleancoder.com/uncle-bob/2012/08/13/…) 的上下文中,有许多称为“请求、请求模型、响应模型、响应”的“DTO”......
标签: c# automapper clean-architecture