C# 洋葱结构的DDD限定上下文
我有以下C# 洋葱结构的DDD限定上下文,c#,design-patterns,architecture,domain-driven-design,onion-architecture,C#,Design Patterns,Architecture,Domain Driven Design,Onion Architecture,我有以下洋葱架构框架 域 实体-用于我的域实体 接口-用于我的域接口 服务-用于我的域服务 基础设施 数据-用于Fluent NHibernate持久性 接口-用于基础设施接口 日志记录-只是一个用于日志记录的界面,以防我想将日志库切换到其他地方 依赖项解析-我的大部分IoC注册都在这里 服务 接口-应用程序服务接口在这里,它们将在UI项目中实现 测试 基础设施测试-用于测试基础设施服务等 域测试-用于测试域模型和服务 Web UI-我在其中实现应用程序服务、用户界面等的用户
洋葱架构
框架
域
-用于我的域实体实体
-用于我的域接口接口
-用于我的域服务服务
基础设施
-用于数据
持久性Fluent NHibernate
-用于基础设施接口接口
-只是一个用于日志记录的界面,以防我想将日志库切换到其他地方日志记录
-我的大部分依赖项解析
注册都在这里IoC
服务
-应用程序服务接口在这里,它们将在接口
项目中实现UI
测试
-用于测试基础设施服务等基础设施测试
-用于测试域模型和服务域测试
Web
-我在其中实现应用程序服务、用户界面等的用户界面项目UI
域驱动开发
可以识别受限上下文
。互联网上的大多数文献都指出,每个有界上下文
都需要抽象到它们自己的项目或名称空间中
域模型
放在一个项目中,将我所有的域服务
放在另一个项目中?在不同的名称空间或项目中没有不同的有界上下文真的重要吗模型a
用于我的有界上下文a
,但是有界上下文B
,有界上下文C
等也需要使用完全相同的模型a
,您是否允许他们使用完全相同的模型,或者您是否为每个有界上下文
创建一个新模型李>
我是DDD的新手,如果这个问题是个愚蠢的问题,我很抱歉。如果我问一个问题并得到一个好的解释作为答案,我会发现自己对一些事情的理解会更好
任何帮助都将不胜感激
那么,我的方法是否不正确,因为我的所有域模型都在一个项目中,而我的所有域服务都在另一个项目中?在不同的名称空间或项目中没有不同的有界上下文真的重要吗
- 在3个不同的BC中使用了完全相同的实体
- 你看不到他们在未来以自己的方式发展
- 实体似乎并不自然地属于给定的BC
- 在3个不同的BC中使用了完全相同的实体
- 你看不到他们在未来以自己的方式发展
- 实体似乎并不自然地属于给定的BC
然后您可能想要使用共享内核模式。否则,只需复制每个BC中的实体,让它们过自己的生活,或者找到实体的真实BC并从其他BC链接到其ID。是的,我肯定会创建3个不同的模型。BC 1、2和3在
模型A
后面可能有相同的概念,但它将用于应用程序的不同部分。绘制一个简单的图形将帮助您可视化模型交互以及BCs之间发生的事情。感谢您现在的解释。不过,还有一个问题,与持久性相关,对于3个有界上下文中的模型A
,您是有3个不同的映射文件,将每个上下文模型绑定到自己的表中,还是有1个映射文件?好吧,我会选择3个