TL; DR: Как мне создать службы WCF с обратной совместимостью - то есть, когда Я развертываю новую версию службы на стороне сервера, все клиенты более старых версий могут по-прежнему использовать службу.
Я создаю веб-службу, которая позволит клиентским приложениям получать список подключаемых модулей. У меня будет по крайней мере одна операция вроде FindPlugins (string nameOrDescription)
, которая на сервере выполнит поиск и вернет список объектов.
К сожалению, я не могу гарантировать, что все мои клиенты будут обновляться с каждой новой версией моей службы; нет, я уверен , что многие из них будут иметь последнюю версию и будут иметь старые версии - сколько лет, я не уверен, но я знаю, что они будут старыми :)
Если Я создаю новую операцию службы, изменяю схему или выполняю какую-то операцию прерывания на стороне сервера, все готово. Мне всегда нужно разрабатывать обратную совместимость.
Вот один пример. Скажем, я возвращаю список подключаемых модулей
, каждый из которых имеет имя и описание, и развертываю версию 0.1 своей службы. Затем я добавляю ссылку для загрузки и развертываю ее как v0.2 моего сервиса.
Вот некоторые варианты, которые я вижу:
FindPluginsV1
, FindPluginsV2
) - не представляется практичным с несколькими операциями