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