DTOS作为输入模型/视图模型适合分层架构
Where does DTOS as InputModel / ViewModel Fit in Layered Archicture
我正在尝试了解 InputModel 和 ViewModel 在 4 层架构中的位置。
介绍 |申请 |域名 |基础设施
鉴于应用层负责表示层和领域层之间的数据交换,我认为它们必须位于这一层内,以及将其转换回领域实体的适配器,反之亦然。
InputModels,也称为命令,在 ASP.NET MVC 中,它们可以与 ViewModels 重合。
演示文稿中的 ViewModels 对我来说毫无意义。从应用程序层,我应该 return ViewModels 到 Presentation 并接收 ViewModels 以将其映射回域实体。如果我在 Presentation 中有 ViewModel,并且 presentations 引用应用程序层,我将有一个循环引用。
而且,例如,如果我有一个 Presentation 内置到 ASP.NET MVC 中,并且我有必要为 Windows 应用程序更改它,我将丢失适合我的要求的 ViewModels,真可惜,因为我已经拥有了改变演示技术的所有内容。
我正在阅读 Dino Esposito 和 Andrea Saltarello 的书,Microsoft .NET:为企业构建架构。他们没有过多地谈论应用层,只是说,这应该编排域服务和存储库以填充用户案例,并从演示中隐藏域。
这样对吗?我应该把这个 DTO 放在应用层中吗?如果不是,它们适合烤宽面条的什么位置?
DTO 应该定义在依赖食物链中较高的两层中,以避免循环引用。这意味着 Onion / 六边形架构中的应用程序层,因为依赖项指向内部——演示文稿引用应用程序。我不知道其他分层架构样式。或者,您可以将 DTO 放在它们自己单独的层中,其他两个层将引用该层并位于它们之上。
DTO 不是问题域的一部分,它们是实现细节。所以问题是,实施的哪一部分使用了 DTO?然而,DDD 中的实体应该完全独立于任何实现,并且只处理领域特定的业务逻辑。
我正在尝试了解 InputModel 和 ViewModel 在 4 层架构中的位置。
介绍 |申请 |域名 |基础设施
鉴于应用层负责表示层和领域层之间的数据交换,我认为它们必须位于这一层内,以及将其转换回领域实体的适配器,反之亦然。
InputModels,也称为命令,在 ASP.NET MVC 中,它们可以与 ViewModels 重合。
演示文稿中的 ViewModels 对我来说毫无意义。从应用程序层,我应该 return ViewModels 到 Presentation 并接收 ViewModels 以将其映射回域实体。如果我在 Presentation 中有 ViewModel,并且 presentations 引用应用程序层,我将有一个循环引用。
而且,例如,如果我有一个 Presentation 内置到 ASP.NET MVC 中,并且我有必要为 Windows 应用程序更改它,我将丢失适合我的要求的 ViewModels,真可惜,因为我已经拥有了改变演示技术的所有内容。
我正在阅读 Dino Esposito 和 Andrea Saltarello 的书,Microsoft .NET:为企业构建架构。他们没有过多地谈论应用层,只是说,这应该编排域服务和存储库以填充用户案例,并从演示中隐藏域。
这样对吗?我应该把这个 DTO 放在应用层中吗?如果不是,它们适合烤宽面条的什么位置?
DTO 应该定义在依赖食物链中较高的两层中,以避免循环引用。这意味着 Onion / 六边形架构中的应用程序层,因为依赖项指向内部——演示文稿引用应用程序。我不知道其他分层架构样式。或者,您可以将 DTO 放在它们自己单独的层中,其他两个层将引用该层并位于它们之上。
DTO 不是问题域的一部分,它们是实现细节。所以问题是,实施的哪一部分使用了 DTO?然而,DDD 中的实体应该完全独立于任何实现,并且只处理领域特定的业务逻辑。