Я ищу предложения о том, как я могу создать расширяемый сервер WCF (с динамически загружаемыми службами), предпочтительно с использованием System.Addins или MEF.
На сервере должна размещаться любая служба WCF (содержащаяся в сборках DLL, загружаемая во время выполнения), которая реализует минимальный API-интерфейс «плагина» (StartService/StopService/GetStatus?/и т. д.).
Это сообщение — хорошее начало. Некоторые цели и вопросы для обсуждения:
- Использовать/не использовать изолированный AppDomain для каждой службы?
- Как настроить каждую службу (конечные точки, транспортные протоколы)? XML-файл конфигурации или лучшая альтернатива?
- Отложенная/ленивая загрузка сборок (при поступлении запроса на обслуживание)? Возможный? Полезный? Как?
- Перезагрузка сборки при изменении файла на диске (полезно для среды разработки);
- Перезапуск службы при изменении конфигурации на диске;
и, конечно же, всегда приветствуются другие идеи ;)