Как централизовать схему xsd для использования другими проектами / решениями?

У нас есть решения Biztalk, которые мы переносим на Logic Apps. Мы хотели бы иметь возможность контролировать канонические схемы и централизовать их с помощью Nuget или аналогичной стратегии управления пакетами.

Как мы «упаковываем» схему XSD таким образом, чтобы мы могли ссылаться на нее из других решений Visual Studio?

Насколько я понимаю, когда вы создаете решение Biztalk, строите и развертываете его, оно GAC удаляет все артефакты.

Как мы имитируем эту функциональность централизация / упаковка для артефактов (таких как каноническая схема XSD), которые могут быть повторно использованы другими приложениями логики?

0
0
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда дело доходит до BizTalk Apps, мой совет ... не надо. И до сих пор я не видел причин для изменения этого совета с помощью Logic Apps.

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

В BizTalk Server и учетных записях интеграции Azure ничто не мешает вам развернуть одну и ту же схему несколько раз.

В частности, с точки зрения LogicApps учетная запись интеграции выполняет ту же роль, что и GAC для приложений BizTalk.

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

Итак, важно определить границы вашего приложения. Это означает, что приложение для покупок полностью отличается от приложения Warehouse, но они могут использовать некоторый внутренний формат заказа на поставку, и каждое приложение будет иметь свою собственную копию внутреннего заказа на покупку, PO_warehouse и PO_purchasing.

Для BizTalk границами будет VS Solution -> .msi -> BizTalk Application. Для приложений логики VS Solution -> ARM Template (s) - Resource Group.

«Канонический» - это только шаблон исходного кода. Кроме того, «преимущества» «канонических» ресурсов неуловимы, а зависимости, которые они создают, всегда были более серьезной проблемой.

Спасибо большое за Ваш ответ. Не могли бы вы пояснить, почему вы советуете хранить одну и ту же схему локально для каждого приложения? как это обрабатывается иначе, чем любой другой ресурс, такой как пакет nuget?

Alex Gordon 10.08.2018 16:47

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

Alex Gordon 10.08.2018 16:48

кроме того, как приложение логики узнает, какая версия схемы ему нужна? как разработчик знать, какая версия схемы используется каким решением?

Alex Gordon 10.08.2018 16:50

не отменяет ли это понятие «канонический»? как это может быть каноническим, если приложения имеют разные версии одной и той же «канонической» схемы?

Alex Gordon 10.08.2018 16:50

Другие вопросы по теме