我们使用Composite UI Application Block(CAB)/ Smart Client Software Factory(SCSF)构建了一个复合应用程序。到目前为止,我们的复合应用程序中的每个模块都使用了自己的一组DTO,并且在UI层和服务层中,整个模块中的业务逻辑都被复制了。我想采用更多领域驱动的方法,以便将业务逻辑封装在可以分布到UI层和服务层的域层中,并且(理想情况下)跨模块。
我们在开发中的复合应用程序中同时有多个模块,我们需要能够以任何顺序部署它们。理想情况下,我希望我们的模块共享一个共同的域模型,但我担心当我们部署新版本的域模型和模块时,我们需要根据域模型对其他模块进行回归测试
替代方案似乎是在每个模块中复制域模型,但所有代码重复对我来说都很有趣。业界是否针对此类情况制定了最佳做法?
答案 0 :(得分:1)
我使用过单一域模型,但允许对每个单独的定义进行版本控制。代码生成提供了每个服务的接口,以及可以跨服务和版本边界的映射代码。