У нас есть служба Windows, которая подключается к различным клиентским приложениям через дуплексный канал WCF. Клиентские и серверные приложения устанавливаются на разных компьютерах, в разных местах, потенциально в разное время и разными людьми. Кроме того, клиент может указывать на другую машину при запуске той же службы Windows при запуске.
В дальнейшем мы знаем, что интерфейс между клиентскими и серверными приложениями, вероятно, будет развиваться. Приложение в полевых условиях будет администрироваться местным ИТ-персоналом, и мы не имеем никакого реального контроля над тем, какая версия одного из этих приложений будет установлена, когда / где или какая будет подключаться к другому. Поскольку они устанавливаются в разных физических местах и разными людьми, высока вероятность того, что клиентское или серверное приложение будет устаревшим по сравнению с другим.
Поскольку мы не можем контролировать, какие версии приложений на местах пытаются соединиться друг с другом, я хотел бы иметь возможность проверить совместимость контрактов между клиентским приложением и серверным приложением.
Некоторые вещи, которые я ищу (возможно, не удастся получить их все):
- Я не думаю, что меня волнует, является ли интерфейс сервера более новым или более старым, если интерфейс сервера является надмножеством клиентского
- Я хочу использовать что-то кроме «номера версии интерфейса». Любой сохраненный разработчиком номер версии будет в конечном итоге забыт или пропущен.
- Я бы хотел использовать сравнение вычислений интерфейса, если это возможно
Как я могу это сделать? Будем весьма благодарны за любые идеи о том, как это сделать.