DDD架构

时间:2021-07-10 06:56:50

标签: c# asp.net-core domain-driven-design

我有一个问题,我就是想不通 现在,我正在实施 DDD 架构,在 .NET CORE 项目中,我创建了 3 层, 应用程序、域、基础设施,但有一个问题,我无法理解 我已经实现了 Repository Patterns 和 IUnitOfWork,但我的脑海中仍然存在一个问题 域层将对数据执行业务逻辑,但是该数据将如何持久保存在数据库中?因为领域层不能依赖基础设施 它会将数据发送回应用程序,然后应用程序层发送到基础设施吗?或者域层也会有一个 ApplicationDbContext 文件,比如基础设施层?

这是我当前文件夹结构的片段!:

enter image description here

1 个答案:

答案 0 :(得分:0)

领域层通常包含企业逻辑和实体。应用层将有接口和类型。主要区别在于领域层将具有整个企业共有的类型,因此也可以在其他解决方案之间共享。但是应用层具有特定于应用程序的类型和接口。

核心层(域和应用程序)永远不会依赖于任何其他层。因此我们在应用层创建接口,这些接口在外部层实现。这也称为依赖倒置原则。

基础设施层是您想要添加基础设施的地方。基础设施可以是任何东西。也许是一个用于访问数据库的实体框架核心层,包括数据库上下文和身份等。项目对外部资源的大部分依赖应该在基础设施项目中定义的类中实现。这些类应该实现应用层中定义的接口。

应用层依赖于领域层,基础设施层依赖于应用层和领域层。在我通常应用 CQRS 模式的方法中,我在应用层中实现了查询和命令的处理程序。

为了更好地理解这件事,我建议您阅读网络上的 Clean Architecture 文章。