Рекомендации по разделению сборок схемы и оркестрации для элементов, созданных WCF

При использовании мастера потребления WCF/генерируемых элементов генерируемые элементы включают схемы, привязки, а также ODX, содержащий определения типа порта для использования службы.

И это обычная/хорошая практика - отделять схемы от оркестровки в отдельные сборки.

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

Итак, если я могу спросить:

  1. Что вы считаете лучшей практикой здесь? Я склоняюсь к сохранению типов портов и фиктивных ODX в сборке схемы.
  2. Вы перемещаете сгенерированные типы портов из сгенерированного фиктивного ODX, а затем удаляете фиктивные ODX?

Спасибо!


person StuartLC    schedule 09.12.2010    source источник


Ответы (1)


Я думаю, ты слишком стараешься.

Что бы я сделал, так это иметь ссылку на потребляемую службу WCF в собственной оркестровке (без какой-либо логики). Просто простая оркестровка с определенными там только типами портов. Затем эта оркестровка может быть в отдельной сборке.

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

Не следует пытаться отделить сгенерированные схемы от типов портов. В любом случае они неразрывно связаны, потому что все вместе они являются частью «контракта на обслуживание».

person Maxime Labelle    schedule 18.12.2010
comment
Спасибо - ваш совет хорошо принят. Дополнение о том, что сгенерированный код остается в покое/нетронутым, перевешивает другие проблемы. Чтобы дать контекст, возникла необходимость в совместном использовании общей схемы WCF между несколькими оркестрациями в нескольких приложениях BizTalk. Оглядываясь назад, альтернативой было бы использование дополнительной канонической схемы для запуска, и таким образом элементы, сгенерированные WCF, потребуются только «основному» приложению. - person StuartLC; 22.12.2010
comment
Чтобы убедиться, что модель Maxine работает хорошо, а именно, оставьте все сгенерированные артефакты в одном месте — токен ODX с сгенерированными типами портов и схемами MultiPart — и в отдельной сборке. Таким образом, просто удалите все и заново создайте сгенерированные элементы, если интерфейс вашей одноранговой службы WCF изменится. Одно предостережение относительно отдельной сборки заключается в том, что вам необходимо вручную изменить модификатор типа (видимость области) с внутреннего на общедоступный для порта и схем, прежде чем к ним можно будет получить доступ из сборки оркестровки. - person StuartLC; 18.01.2011