подходы к контролю версий сервиса WCF - PullRequest
0 голосов
/ 26 июля 2010

Мы внедряем многочисленные сервисы в нашей компании и сталкиваемся с проблемами версий с контрактами на передачу данных. Одна из проблем, с которыми мы сталкиваемся, заключается в том, что наш контракт на данные также используется в качестве модели реального приложения, лежащего в основе сервиса. Мне было интересно, какой подход используют другие в такой ситуации или просто в сервисном управлении версиями в целом. Мне известно руководство по передовым методам работы с Microsoft, но я хотел узнать, есть ли у кого-нибудь еще какие-либо идеи относительно версии.

Ответы [ 2 ]

2 голосов
/ 28 июля 2010

Первое правило Сервисов, Бизнес-объект! = Объект сообщения.По сути, никогда не выставляйте свои бизнес-объекты как контракты данных.Или, как мне нравится говорить, вы не можете отправить факсом кошку.Вы можете отправить факсимиле кота, но вы не можете отправить кота по проводам.Вот отличная картинка, чтобы напомнить вам: http://www.humorhound.com/2009/04/demotivational-poster-youre-doing-it-wrong/

В более современных терминах это действительно шаблон MVVM.Представление модели, которое использует слой домена, не создано для клиента, поэтому необходимо создать отдельную модель и представление для других слоев.Да, кажется, что это намного больше работы, но в конечном итоге это гораздо более простой и лучший способ создания сервис-ориентированных приложений.Управление версиями - это только один из способов облегчить жизнь.Другая важная вещь заключается в том, что вы склонны создавать модели, ориентированные на то, как он будет использоваться, и у вас получается более явный код (менее сумасшедший переход).

0 голосов
/ 27 июля 2010

Способ, которым мы реализовали это, состоит в том, чтобы построить фасадный слой поверх бизнес-уровня.

Фасадный слой общается с остальным миром, используя объекты, определенные в контрактах на данные.

Фасадный слой отображает объекты на внутренние объекты перед отправкой данных в бизнес-уровень.

Это изолирует внутреннюю функциональность вашей системы от объектов, используемых в контрактах на данные.

...