Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数据层是否需要域驱动的应用程序服务DTO_Java_C#_Design Patterns_Domain Driven Design_Ddd Service - Fatal编程技术网

Java 数据层是否需要域驱动的应用程序服务DTO

Java 数据层是否需要域驱动的应用程序服务DTO,java,c#,design-patterns,domain-driven-design,ddd-service,Java,C#,Design Patterns,Domain Driven Design,Ddd Service,应用领域驱动设计我有点困惑。我正在使用C#和Java 我有这样的图层: 领域 应用服务 数据层 展示层 应用程序服务层位于表示层和数据层之间。AppApplicationService从数据层获取数据,并将其转换为PresentationTo对象并发送到表示层 我是否需要ApplicationService和数据层之间的新数据传输对象(EntityFrameworkTo)。我应该生成DTO以在存储库中使用,还是直接在存储库层中使用域实体 您是否应用过领域驱动设计 通常,对于复杂场景,当您的模

应用领域驱动设计我有点困惑。我正在使用C#和Java

我有这样的图层:

  • 领域
  • 应用服务
  • 数据层
  • 展示层
应用程序服务层位于表示层和数据层之间。AppApplicationService从数据层获取数据,并将其转换为PresentationTo对象并发送到表示层

我是否需要ApplicationService和数据层之间的新数据传输对象(EntityFrameworkTo)。我应该生成DTO以在存储库中使用,还是直接在存储库层中使用域实体


您是否应用过领域驱动设计

通常,对于复杂场景,当您的模型拆分为多个视图时,最好使用ViewModel或Data Transfer object来更好地管理视图,因为视图的需求与域需求不同。 现在,在域驱动的设计中,由于应用程序服务应该在存储库和表示之间发挥重要作用,您必须拥有DTO,因为您要从服务层获取表示层中的业务对象。在其他情况下,您必须在表示层中使用域实体,这将使您的域实体成为非POCO。
希望有帮助。

我已经在应用程序服务和演示之间使用了DTO。我应该在存储库和域对象之间使用不同的DTO吗。或者直接在数据层中使用域实体?哦,对不起,我认为您在服务层中使用与否有两种方式。根据我在DDD方面的经验,我从未在项目中见过在域和存储库之间使用DTO,因为您应该为包含其他实体和值对象的域的聚合根创建存储库。没有必要