Дано: веб-сервис рассылки данных на WebAPI с базой клиентов. Каждый клиент принимает рассылку по своему требованию (протокол, поля данных, иногда даже требуется отправлять файлом (.xls, .mdf, ...)).
Надо: - Вынести бизнес-логику генерации запроса-отчёта для каждого клиента в отдельную .dll
- Так как, веб-сервис отправляет рассылку каждые 2 минуты, нужно прикрутить сканнер .dll-ок для определённого клиента. Чтобы изменять их было легко, без перезапуска или остановки приложения.
Вариант с дополнительными полями/таблицами, описывающих требования клиентов, и написание отдельной функции не подходит. Потому что там придётся учитывать всё. Может быть такое, что клиент новый появится и скажет, вот я хочу принимать данные в .xls/.mdf/.dba через POST/proxy и тд. Поэтому нужна такая гибкая архитектура, где не придётся учитывать всё. А всё добавляется как отдельная функция в .dll для основного веб-приложения при необходимости, то есть, когда такой клиент с определёнными требованиями появляется. Не за чем сейчас писать логику генерации отчёта по всем протоколам, файлам и иными требованиями.
Прошу подсказать с решением данной проблемы и поделиться называнием такого вида архитектуры. Или предложить альтернативный вариант решения данной задачи. Чтобы не надо было без конца ре-деплоить приложение, а заменять .dll-ки для каждого клиента при надобности.