Управление версиями библиотеки интерфейсов - критические изменения - PullRequest
1 голос
/ 05 июля 2010

В настоящее время у меня есть проект C #, который использует плагины и имеет довольно распространенный подход к обработке плагинов: интерфейс IPlugin хранится в dll, который связан традиционным динамическим способом.Хост-приложение ищет библиотеки классов, экспортирующие классы, обнажающие этот интерфейс, и загружает их посредством отражения во время выполнения.

DLL-библиотека, содержащая интерфейс, также содержит вспомогательные классы для обновления плагинов, предоставления абстрактных базовых классов и т.1003 *

Мой вопрос: что нужно для разрыва интерфейса между моим хостом и сборками плагинов?Другими словами, если я скомпилирую и распространю приложение хоста, а затем распространю плагины, которые были связаны с более поздней версией плагина dll (в котором изменились классы помощника, но IPlugin определен точно так же), будет ли хоствсе еще подбираете плагины?Сколько изменений мне нужно внести в библиотеку плагинов, прежде чем IPlugin будет считаться другим «типом» методами отражения, которые я использую?

1 Ответ

0 голосов
/ 05 июля 2010

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

...