Клиент-серверное приложение: автоматическое обновление с локального сервера или версионного интерфейса? - PullRequest
1 голос
/ 13 октября 2010

У меня есть клиент-серверное приложение, и я ищу несколько советов о том, как обращаться с интерфейсом между ними. Сервер / клиенты будут развернуты по локальной сети (потенциально WAN, но определенно управляемый клиентом, а не централизованный сервер). Я рассматриваю эти два варианта:

  1. Клиент и Сервер могут быть разных версий. Таким образом, интерфейс WCF между ними должен поддерживать управление версиями - если один обновлен, а другой нет, приложение все равно должно работать.
  2. Сервер отправляет обновления клиенту, клиент автоматически устанавливает обновление перед установлением связи. Управление версиями не требуется, поскольку сервер не будет взаимодействовать с устаревшим клиентом.

Клиент - это служба Windows, работающая как LocalSystem, поэтому при автообновлении проблем с разрешениями нет. # 2 кажется чище, так как нет контроля версий интерфейса, но я боюсь, что мне не хватает действительно очевидной причины не делать это в пользу # 1. Клиентское приложение небольшого размера - менее 500 КБ, поэтому пропускная способность для выпуска обновлений (что, я не ожидаю, будет частым) также не представляет большой проблемы.

Ответы [ 2 ]

1 голос
/ 13 октября 2010

Я мог бы порекомендовать комбинацию из двух.Прежде всего, установите базовую линию для той версии библиотек WCF, которую вы хотите использовать, которая включает System.Serialization, поскольку она включает атрибуты DataContract.

Определите эти версии явно в ваших ссылках, чтобы при обновленииВерсия .NET, он будет продолжать использовать старую версию, а не новую.Затем вы можете свободно обновлять все другие библиотеки, на которые есть ссылки, не беспокоясь об обновлениях, влияющих на ваш интерфейс.

Что касается реализации второго варианта, я бы почти рекомендовал установить на клиенте вторую службу, которая работает исключительнос получением информации об обновлении с сервера.Если необходимо обновить библиотеки WCF, эти обновления могут быть отправлены (однако, это, вероятно, происходит не очень часто).

0 голосов
/ 13 октября 2010

Перейти для автоматического обновления.Управление версиями создает сложности, без которых вы просто не можете обойтись в этом сценарии.

...