У меня есть базовая структура задач, где такие задачи, как:
- выполняет некоторую обработку контента
- генерация отчетов
- наблюдатель журнала ошибок
- 1010 * почтовик *
- и т.д.
инкапсулированы в интерфейсе ITask
, который имеет метод Run
и другие члены, связанные со статусом.
Эти задачи выполняются либо по расписанию, либо по запросу. Они размещаются либо как служба Windows, либо как консольное приложение на рабочем компьютере.
Хост-приложение выполняет набор задач с классом TaskRunner
, который может использовать расписание, потоки и т. Д.
Я хотел бы иметь возможность развертывать задачу на рабочей машине более автоматизированным способом, чем выполнение выпуска и обновление.
По сути, я хотел бы иметь возможность отправить процесс и реализацию интерфейса ITask (или другого подкомпонента) для запуска по некоторому расписанию или с некоторыми настройками.
Я знаю, что могу динамически загружать сборки, и я также видел: MEF .
Как лучше всего это сделать? Должен ли я создать реализацию и опубликовать библиотеки DLL в известном каталоге, где рабочий процесс может их прочитать? Должен ли я опубликовать DLL в виде двоичного файла в базе данных, чтобы рабочий мог ее прочитать?