C#-DDD:DTO 属于哪一层?

Kho*_*OAN 4 c# domain-driven-design

我是 DDD 概念的新手,我正在尝试设计一个严格遵循 DDD & Prism (WPF) 的解决方案结构。我正在创建 DTO 项目(数据传输对象)。据我所知,DDD 将有 4 个通用层:

介绍

应用

领域

基础设施

那么,请您告诉我DTO项目属于哪一层?


我参考了:DDD——DTO应该在哪一层实现 有人说应该在Service层实现,但我认为这没有意义,因为遵循DDD的概念,我们没有哪个叫做Service层。

非常感谢,

问候

Con*_*enu 5

一般来说,组件代码的位置应该留在该组件的所有者之外。所有者可以完全控制其组件。这个想法遵循依赖倒置原则

那么,就您而言,谁是 DTO 的所有者?谁控制该 DTO 的结构和目的?

但是,使用 DDD(在任何架构中!)您应该考虑到域代码不应依赖于基础设施、应用程序或 UI 代码。因此,如果您决定将 DTO 类放入应用程序层,则您不能从域代码中引用该 DTO(即域实体或域服务不能对 DTO 类有任何引用 - 没有importuse指令或new语句)