Я относительно новичок в веб-сервисах и C #, но не в программировании (большой опыт работы с устаревшими системами).
У меня есть система с замкнутым циклом - я пишу веб-сервис и приложение-потребитель - котороенаходится на КПК.
Веб-служба опубликована, и для приложения КПК я использую функцию «Добавить новую веб-ссылку» в VS.
Затем я могу использовать код, подобный:
AppName.com.MyDomain.WebServiceName s = new AppNamecom.MyDomain.WebServiceName();
s.SomeMethod(Param1, Param2);
Все хорошо ... пока я не обнаружу, что мне нужно обновить один из веб-методов, чтобы взять, скажем, 3 параметра, когда я использовал 2.
Если я изменю веб-сервис и опубликую, всемои существующие КПК просто не смогут по вызову, пока они не получат новую версию программного обеспечения КПК.С сотнями в поле я не могу обновить их все сразу, и при этом я не хочу требовать, чтобы они обновляли все одновременно.
Решение 1:
Добавить номер версии вметод веб-службы, так что SomeMethod теперь имеет SomeMethodV2 (1,2,3) Обновление программного обеспечения PDA для использования s.SomeMethodV2
Решение 2. Скопируйте существующее «webServiceName», чтобы сказать WebServiceNameV2, которое имеет SomeMethod (1,2,3) Измените программное обеспечение КПК на ссылку AppName.com.MyDomain.WebServiceNameV2. В какой-то момент, когда вы узнаете, что КПК больше не используют V1, отключите этот веб-сервис.
Оба эти решения имеют свои "за" и "против", но яЯ не уверен, что есть только два;Есть, вероятно, более элегантные способы справиться с этой ситуацией?Возможно, не с помощью «Добавить новую веб-ссылку»
Я использую .net 2.0 для КПК, .net 3.5 для веб-службы;C # для обоих.Я еще не рассматривал это, но не думаю, что смогу использовать WCF с .net 2.0 на КПК.
Andrew