VS 2010 / C#
尝试组织解决方案并寻找用于命名将托管存储库接口的项目的选项。
我有:MyProject.Domain
我的项目.WebUI
MyProject.Repositories
MyProject.Interfaces??
到目前为止,“接口”是我想出的最好的名字,但我不喜欢它。有什么想法/建议吗?
VS 2010 / C#
尝试组织解决方案并寻找用于命名将托管存储库接口的项目的选项。
我有:MyProject.Domain
我的项目.WebUI
MyProject.Repositories
MyProject.Interfaces??
到目前为止,“接口”是我想出的最好的名字,但我不喜欢它。有什么想法/建议吗?
将存储库接口放置在与域对象本身相同的程序集中并不少见。这就是 Jeffrey Palermo 在他的洋葱架构系列中讨论的内容。就个人而言,我也是这样做的。
至于其背后的原因,我认为定义存储库与域对象相关的功能是完全合乎逻辑的。在我看来,对存储库行为的考虑与域本身一样重要。假设您有一个团队或开发人员在领域模型上工作,并在与领域专家合作后定义存储库接口。他们/他/她的职责是确保传递有关域如何与存储库相关的知识,但不一定是存储库本身。
在这样做时,将这个程序集交给团队中的任何其他人,UoK(知识单元,我自己的术语)被限制在程序集中。然后,编写存储库实现的人员将针对程序集中传输的知识进行编码。由于这个 UoK 不会根据存储库的实现方式而改变,因此从数据访问的角度来看,它在逻辑上会进入另一个程序集。