Информация об изменениях

Сообщение Re[4]: Интерфейс плагина и его vtable от 18.10.2017 8:37

Изменено 18.10.2017 8:41 AlexGin

Re[4]: Интерфейс плагина и его vtable
Здравствуйте, Vi2, Вы писали:

Vi2>Здравствуйте, AlexGin, Вы писали:


AG>>Дело в том, что в этом случае, проблема оказывается намного глубже, нежели просто интерфейс плагинов —

AG>>новые плагины на старом сервере не загрузятся (не говоря уж об исполнении).
AG>>Плохо это или хорошо — другой вопрос...

Vi2>А с чего бы им и не загружаться, ведь свойство загрузки одинаково для старых и новых плагинов? Вот и попросит новый плагин у старого сервера IPluginlInterface без новых, добавленных в конец, методов и вуаля. Причём обмен плагинами у пользователей находится вне поля зрения компании производителя.


Зачем весь этот цирк
Если бы всё было именно так, — я бы взял готовый COM и не парился

Предположим такой вариант — загрузил я новый плагин на старом сервере (на старом пирложении). Что дальше?
Новый плагин, как я уже упоминал — в нашем проекте — решает несколько иные задачи, нежели старый.
Ядро приложения (точнее — старая версия ядра) НЕ ПОДДЕРЖИВАЕТ ДАННЫЙ КЛАСС ЗАДАЧ.
Просто потому, что в момент написания старой версии, ТЗ на данные задачи ещё не было сформировано.
Re[4]: Интерфейс плагина и его vtable
Здравствуйте, Vi2, Вы писали:

Vi2>Здравствуйте, AlexGin, Вы писали:


AG>>Дело в том, что в этом случае, проблема оказывается намного глубже, нежели просто интерфейс плагинов —

AG>>новые плагины на старом сервере не загрузятся (не говоря уж об исполнении).
AG>>Плохо это или хорошо — другой вопрос...

Vi2>А с чего бы им и не загружаться, ведь свойство загрузки одинаково для старых и новых плагинов? Вот и попросит новый плагин у старого сервера IPluginlInterface без новых, добавленных в конец, методов и вуаля. Причём обмен плагинами у пользователей находится вне поля зрения компании производителя.


Зачем весь этот цирк
Если бы всё было именно так, — я бы взял готовый COM и не парился

Предположим такой вариант — загрузил я новый плагин на старом сервере (на старом пирложении). Что дальше?
Новый плагин, как я уже упоминал — в нашем проекте — решает несколько иные задачи, нежели старый.
Ядро приложения (точнее — старая версия ядра) НЕ ПОДДЕРЖИВАЕТ ДАННЫЙ КЛАСС ЗАДАЧ.
Просто потому, что в момент написания старой версии, ТЗ на данные задачи ещё не было сформировано.

P.S. У нас плагины реализуют некоторые вычислительные задачи, поэтому применение интерфейсов а-ля COM —
просто напросто усложнит проект, но не решит никаких (имеющихся в контексте наших задач), проблем.