在不同的程序集上拆分域

时间:2014-03-11 04:50:36

标签: c# .net architecture domain-driven-design assemblies

我想问:在不同的程序集上拆分域名是否合适? 例如,我有两个实体User和Equipment,这些实体与earch不相关。 有两个域组件(用户和设备)并将它们存储在不同的数据库中是否有用? 如果我的应用程序连接到不同的数据库,不同数据库中的实体应该在不同的域程序集中吗? 请解释一下你的答案!

2 个答案:

答案 0 :(得分:1)

首先,您的域模型应该不了解持久层。连接到不同或多个数据库的应用程序不应影响您的域模型或其规则,因为它会破坏使用DDD的目的。

您可以根据部署模式拆分程序集。您可以将域模型和持久性基础结构放在同一个程序集中,并保持关注点的分离。逻辑分离是唯一重要的事情。

答案 1 :(得分:0)

分裂方法确实有助于依赖管理,但不是必要的。

依赖管理的粒度决定了成本。如果我们能够在更粗略的水平上管理它,那将会低得多。该方法实际上指导团队将用户与设备联系起来。 但是成本是否值得获得?这取决于您的项目和团队。

分裂数据库也是如此。团队不太可能将T_USER与T_EQUIPMENT联系起来。他们必须使用易于查找和审查的dblink或grant。

再见,这种方法是通用的,而不是特定的ddd。