.net n层体系结构与清洁体系结构之间的主要明显差异

zbwhf8kr  于 2023-02-26  发布在  .NET
关注(0)|答案(1)|浏览(148)
  • 免责声明。我不是在寻找关于这两个问题的讨论或观点。我也不是在评估或描述它们。我在一个项目中,我应该建立一个从传统到领域驱动的重构路径,我希望保持尽可能小的变化,仍然完成任务。*

根据清洁架构的MS文档,洋葱形状的图应该不同于n层架构,n层架构是层形状的。
阅读时,这些都是有意义的,但随后,呈现了清洁架构的不同视图,它看起来与n层架构非常相似。当然,我确实理解它们的不同之处,但试图理解在哪里以及如何它们不同的核心要点并不容易。
一个更好的例子是this blog。它与.NET无关,但架构应该是技术上不可知的。据我所知,该过程的实际路径是基于层的,完全等同于n层版本(只是绘制方式不同,这应该是无关紧要的)。

这两种架构类型之间的主要区别仅仅是我们如何使用它们,还是在代码方面或项目结构中存在实际差异(当然,除了命名)?

puruo6ea

puruo6ea1#

据我所知,这个过程的实际路径是基于层的,与n层版本完全相同(只是绘制方式不同,这应该是无关紧要的)。
是的,没错。
这两种架构类型之间的主要区别仅仅是我们如何使用它们,还是在代码方面或项目结构中存在实际差异(当然,除了命名)?
区别在于哪些代码知道、哪些代码引用、哪些代码依赖于其他代码。
在N-Tier中,业务逻辑需要知道基础设施层的API,所有的依赖项都指向下。
在清洁架构/洋葱架构等中,基础架构层知道域层的API,所有的依赖项都指向内部。
干净的体系结构将业务逻辑和应用程序模型置于应用程序的中心。业务逻辑不依赖于数据访问或其他基础结构问题,相反,这种依赖关系是反向的:基础架构和实施细节取决于应用程序核心。
这种风格通常伴随着Composition Root的使用,Composition Root负责将最终完成工作的组件连接在一起。
你是说洋葱版本中没有业务逻辑层吗?也就是说,它被融入了应用程序核心?
通常,业务逻辑被理解为处于洋葱的中间。

你可能会发现你需要的不仅仅是这四个。没有规则说你必须总是只有这四个。然而,依赖规则总是适用的。源代码依赖总是指向内部。

相关问题