.net n-tier和clean体系结构之间的主要明显区别

.net n-tier和clean体系结构之间的主要明显区别,.net,architecture,domain-driven-design,n-tier-architecture,.net,Architecture,Domain Driven Design,N Tier Architecture,免责声明。我不是在寻找这两个人的讨论或意见。我也不打算评估或描述它们。我在一个项目中,我应该建立一条从传统到领域驱动的重构路径,我希望在完成任务的同时尽可能地减少变更 根据MS docs for的说法,洋葱形图应该与层状图不同 在阅读时,这一切都是有意义的,但随后,对clean体系结构提出了不同的看法,它看起来与n层体系结构非常相似。当然,我确实理解它们的不同之处,但试图理解它们在哪里不同以及如何不同的核心点并不会因为它们的相似性而变得更容易 一个更好的例子说明了我的不确定性的原因是。它与.NE

免责声明。我不是在寻找这两个人的讨论或意见。我也不打算评估或描述它们。我在一个项目中,我应该建立一条从传统到领域驱动的重构路径,我希望在完成任务的同时尽可能地减少变更

根据MS docs for的说法,洋葱形图应该与层状图不同

在阅读时,这一切都是有意义的,但随后,对clean体系结构提出了不同的看法,它看起来与n层体系结构非常相似。当然,我确实理解它们的不同之处,但试图理解它们在哪里不同以及如何不同的核心点并不会因为它们的相似性而变得更容易

一个更好的例子说明了我的不确定性的原因是。它与.NET无关,但架构应该是技术上不可知的。据我所知,流程的实际路径是基于层的,与n层版本完全相同(只是在绘制方式上有所不同,这应该是无关的)

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

据我所知,流程的实际路径是基于层的,与n层版本完全相同(只是在绘制方式上有所不同,这应该是无关的)

是的,没错

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

区别在于哪些代码知道,哪些代码引用,哪些代码依赖于其他代码

在N层中,业务逻辑需要知道基础结构层的API。所有依赖项都指向下

在clean architecture/onion architecture等中,基础架构层了解域层的API。所有依赖项都指向内部

干净的体系结构将业务逻辑和应用程序模型置于应用程序的中心。与业务逻辑依赖于数据访问或其他基础架构问题不同,这种依赖关系是反向的:基础架构和实现细节取决于应用程序核心

这种风格通常伴随着使用a,它负责将最终完成工作的组件连接在一起

您是说洋葱版本中没有业务逻辑层吗?也就是说,它被烘焙到应用程序核心中

典型地,业务逻辑被理解为在洋葱的中间。比如说,

你可能会发现你需要的不仅仅是这四个。没有规定说你必须一直拥有这四个。但是,依赖项规则始终适用。源代码依赖项总是指向内部


谢谢你的回复。我想你帮我找到了我困惑的地方。您是说洋葱版本中没有业务逻辑层吗?也就是说,它被烘焙进了应用程序核心?@Donkeybananer:DDD中的业务逻辑在您的聚合根和域服务中。谢谢您的澄清。我相信我开始看到它所带来的不同。不过,引起我注意的一件事是,映像将DB放在最外层,而类放在最内层的核心中。这对文件在项目中的位置意味着什么?我猜所有的模型都放在核心项目中,但是上下文去了哪里?(Contex是使用EF和代码优先方法时从DbContext继承的类。)它是否放在模型中(尽管它是DB creator特性)?在DB项目中?Infra?我在一些细节上仍然有点不确定,所以我在这个问题上悬赏以引起注意并获得更多细节。遗憾的是,我发现没有修改过任何信息。这给我的印象是,DDD方法是一个有趣但模糊的概念。好像每个人都在谈论它,但当涉及到实际的实现时,人们通常不清楚如何。。。是这样吗?它实际上并不意味着任何关于源文件位置的信息。它们可能都在同一个编译单元中,也可能位于完全不同的存储库中。您可能会发现查阅“按功能打包”的相关文献很有用。