2008-10-16 3 views
5

Настольные клиенты будут толкать данные, используя WCF, на центральный сервер.Обработка версий для клиентов при использовании WCF

Когда схема изменяется и т. Д., Скажем, 100 компьютеров имеют старую версию настольного клиента, а остальные используют последнюю сборку.

Что мне нужно сделать на сервере, чтобы обрабатывать обе версии? Я создаю 2 конечных точки в WCF или одну интеллектуальную конечную точку, которая будет определять версию и действовать соответственно?

примечание: я буду проездом информацию о версии от клиента (если требуется, есть)

ответ

4

У вас есть выбор:

Во-первых, вы должны быть версионности свои контракты на обслуживание в любом случае, с их пространствами имен; например. http://idunno.org/2008/10/numpty изменится на http://idunno.org/2008/11/numpty, если у сервисных операций произойдут изменения.

Ditto с данными контрактов; однако если все, что вы делаете с контрактом данных, является аддитивным, то вы можете пометить новые поля как необязательные;

[DataMember(IsRequired="false")] 

И старые клиенты будут работать. Таким образом, это должно указывать на то, что параметры в службу и параметры должны также быть контрактами данных; это дает вам такую ​​гибкость.

MSDN имеет more

+0

Мое настроение точно! – 2008-10-16 13:45:37