Добавить слой для абстрагирования нескольких прокси и сервисов - PullRequest
0 голосов
/ 04 октября 2018

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

Я работаю с корпоративным приложением.Это приложение взаимодействует с различными сторонними API-интерфейсами и сервисами через один класс и множество прокси-библиотек.Это означает, что каждая из этих библиотек упоминается в основном проекте.В дополнение к этому, со временем, когда мы добавили новые сервисные вызовы, много кода было продублировано, с небольшими изменениями.Большинство вызовов сервисов делают примерно одно и то же и принимают в основном те же объекты, что и параметры.

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

Теперь у нас есть задача реорганизовать и упростить этот процесс, чтобы сделать его более управляемым и гибким - у меня есть идея, и я провел много исследований, но я просто хотел посмотреть, есть ли у кого-нибудькакие-либо лучшие идеи или аналогичный опыт до того, как я окунусь.

Я хочу добавить фасадный слой, чтобы базовый код получал все данные, которые обычно используются, и связывал их с фасадом вместе с параметром, предусматривающимкакой сервис он хочет назвать.Фасад затем передает данные либо прокси, либо мосту, который преобразует их в правильный формат для целевой службы, выполняет необходимые вызовы по порядку и возвращает любые ответы обратно на фасад для передачи.

Хотя у меня есть представление об архитектуре, которую я хочу, я не уверен на 100%, какой путь выбрать с точки зрения конкретного кода C # - добавлять ли код фасада и моста / адаптера в новый проект, который также имеетпрокси-dll, на которые ссылаются, или идти по базовому / интерфейсному маршруту и ​​добавлять необходимые классы преобразования непосредственно в прокси-dll.

Отредактировано, чтобы добавить: я не могу рассмотреть возможность объединения этой функциональности в сервис или микросервис из-зак более широким соображениям инфраструктуры, которые я не могу здесь обсудить.

Любые предложения приветствуются!

...