【问题标题】:How to centralize an XSD schema for consumption by other projects/solutions?如何集中 XSD 模式以供其他项目/解决方案使用?
【发布时间】:2018-08-10 14:32:01
【问题描述】:

我们的 Biztalk 解决方案正在迁移到逻辑应用程序。我们希望能够使用 Nuget 或类似的包管理策略对规范模式进行版本控制并集中它们。

我们如何“打包”XSD 架构,以便我们可以从其他 Visual Studio 解决方案中引用它?

据我了解,当您创建 Biztalk 解决方案并构建和部署它时,它将GAC 所有工件。

我们如何模仿这种集中/打包工件(例如 XSD 规范架构)的功能,以供其他逻辑应用重用?

【问题讨论】:

    标签: visual-studio xsd nuget biztalk azure-logic-apps


    【解决方案1】:

    当 BizTalk 应用程序出现这种情况时,我的建议是……不要。到目前为止,我还没有看到任何理由改变逻辑应用的建议。

    因此,您绝对应该将官方原始架构存储在某个源代码控制中,但每个“应用程序”都应该维护它自己的该架构的内部副本。

    在 BizTalk Server 和 Azure 集成帐户中,没有什么可以阻止您多次部署相同的架构。

    就 LogicApps 而言,集成帐户的作用与 BizTalk 应用程序的 GAC 相同。

    避免在多个应用程序中引用“中心”架构的原因是,这会在应用程序之间产生巨大的依赖关系,除了共享一些规范资源之外,它们之间可能几乎没有任何关系。

    因此,定义应用边界非常重要。也就是说,Purchasing App 与 Warehouse App 完全不同,但它们可能共享一些内部 PO 格式,并且每个应用程序都有自己的内部 PO、PO_warehouse 和 PO_purchasing 副本。

    对于 BizTalk,边界是 VS 解决方案 -> .msi -> BizTalk 应用程序。 对于逻辑应用,VS 解决方案 -> ARM 模板 - 资源组。

    'Canonical' 只是一种源代码模式。此外,“规范”资源的“好处”难以捉摸,它产生的依赖关系一直是一个更大的问题。

    【讨论】:

    • 非常感谢您的回复。您能否澄清一下为什么您建议为每个应用程序在本地存储相同的架构?这与任何其他资源(如 nuget 包)有何不同?
    • 如果我们正在针对规范架构和逻辑应用进行积极开发,我们如何管理该架构的所有使用者的架构更新?
    • 此外,逻辑应用如何知道它需要哪个版本的架构?开发人员如何知道哪个解决方案正在使用哪个版本的架构?
    • 这不是使“规范”的概念无效吗?如果应用程序具有相同“规范”架构的不同版本,它怎么能是规范的?
    猜你喜欢
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多