需要实现简洁的体系结构,并努力应对DTO概念。据我了解,我不能在表示层(asp mvc)中使用域对象,而应使用DTO或viewmodel。我不确定这些DTO应该去哪里。 我有两个项目作为我的核心层(域,应用程序)。域包含我的实体ex:'Post'+存储库接口ex:'IPostRepository'。应用程序拥有逻辑,例如:“ IPostManager” +“ PostManager”。 DTO和DTO映射到实体应该在哪里发生? ASP MVC,应用程序还是域?
答案 0 :(得分:0)
这看起来像一个应用程序。因此,在这种情况下,我将DTO放置在尽可能靠近使用的地方。如果是MVC,那么我的DTO就在我的视图旁边:
或者如果是Razor Pages,那么DTO就是内部类。请参阅我的ContosoUniversity示例以获取工作示例:
这不是“干净的体系结构”,而是“垂直切片体系结构”,但这没关系。将类放在实际使用的地方。
答案 1 :(得分:0)
在您的情况下,演示文稿和域都可以访问DTO。因此最好具有 Infrastructure 并从那里进行引用。
答案 2 :(得分:0)
我们已经知道,Dtos可以是不具有任何行为的不同类型,仅用于传输数据,例如MVC模式中的Model或可能带有后缀'classNameDto'的类
对于您而言,这实际上取决于您使用应用程序层的上下文。一些开发人员了解“应用程序服务”更特定于应用程序,这意味着它们与UI紧密相关。
如果是这种情况,那么这是一个将Dto映射到域模型或从域模型映射数据的好地方。
否则,如果映射是在Web层完成的,则Dtos需要去那里。
@Jimmy Bogard用简单的话说:“将类放在靠近实际使用的地方。”
我还建议您进一步阅读干净的体系结构,看看您是否朝着正确的方向前进。
希望这会有所帮助:)