我有一个ASP.NET站点,它使用来自单个类库项目的服务(RootServices
)这个库调用2个(或更多)SubService类库项目(例如,PeopleService
和OrderingService
)这些服务项目与实体的一对一映射框架项目(例如,PeopleDBEntities
和OrdersDBEntities
),它们调用相应的DB。
好的,这很好,因为我们对每个部分都有单一的责任,我们从微服务中获益,而不是通过网络进行呼叫的可怕浪费(延迟以纳秒为单位,而不是几毫秒!)
然而,当我们向团队添加新人时,他们想要从OrdersDBEntities
调用PeopleService
,从PersonEntities
调用RootServices
没有循环依赖,但仍然不是我设计的。 ** Gah我美丽的建筑正变成一堆意大利面! **
是否有一种简单的方法可以强制某个项目只能被其他某些项目引用?
我建议添加项目文件的单元测试,以确保不存在引用。根据程序集名称的不同,这可能就像检查文件是否包含该名称一样简单,或者您可能需要正则表达式。
测试可以恰当地命名,因此如果失败,有问题的开发人员可以适当地开悟,甚至不需要问问题是什么。
我假设您已经进行了单元测试,这些测试是定期运行的(例如,作为自动构建的一部分),这样通过破坏测试,问题将由破坏的构建突出显示。