Предотвращение ссылки одного проекта на другой в .NET - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть сайт ASP.NET, который использует службы из одного проекта библиотеки классов (RootServices). Эта библиотека вызывает 2 (или более) проекта библиотеки классов SubService (например, PeopleService & OrderingService) этих проектов службиметь однозначное сопоставление с проектами инфраструктуры объектов (например, PeopleDBEntities & OrdersDBEntities), которые выполняют вызовы соответствующих БД.

Хорошо, это здорово, так как у нас есть отдельные обязанности для каждой части, и мыПолучите преимущества микросервисов без ужасных затрат на звонки по сети (задержка в наносекундах, а не миллисекундах!)

Однако, когда мы добавляем новых людей в команду, они хотят позвонитьOrdersDBEntities от PeopleService и PersonEntities от RootServices Нет круговых зависимостей, но все равно не то, что я спроектировал.** Гах, моя прекрасная архитектура превращается в кучу спагетти!**

Есть ли простой способ заставить этот проект ссылаться только на другие определенные проекты?

1 Ответ

0 голосов
/ 27 февраля 2019

Я бы предложил добавить модульные тесты файлов проекта, чтобы убедиться, что ссылка отсутствует.В зависимости от того, как отличительное имя сборки, это может быть так же просто, как проверить, содержит ли файл это имя, или вам может потребоваться регулярное выражение.

Тест может быть назван соответствующим образом,так что в случае неудачи разработчик может быть соответствующим образом просвещен, даже не спрашивая, в чем проблема.

Я предполагаю, что у вас есть модульные тесты, которые регулярно выполняются(например, как часть автоматизированной сборки), так что, если прервать тест, проблема будет выделена прерванной сборкой.

...