【问题标题】:BizTalk map functoid vs BizTalk map xsltBizTalk 映射 functoid 与 BizTalk 映射 xslt
【发布时间】:2017-04-01 03:35:39
【问题描述】:

我正在使用 BizTalk MAP,在 BizTalk 地图中我正在使用表循环、表提取器、脚本、循环 functoids。

在 BizTalk 映射中也可以通过引用 XSLT 来实现。

所以性能方面,使用 BizTalk Map 或 BizTalk Map 引用 XSLT 哪种方法更好。

【问题讨论】:

  • 一般来说,我不认为你在一个和另一个之间有很多差异,最后 Maps 是基于 XSLT 的。当然,映射生成的 XSLT 的性能可能比您专门开发的 XSLT 稍差。这是一个关于这个话题的有趣link
  • 一种找出方法,测试它。我们有时会在遇到性能问题时决定采用 XSLT 路线

标签: xslt biztalk biztalk-2013 biztalk-mapper


【解决方案1】:

事实上,使用 BizTalk 映射器创建的可视化 BizTalk 映射是 XSLT。只有您的 functoid 是库/函数,它们可能是 XSLT 或内联 C# 代码。您可以检查的一种方法是右键单击您的 .btm 地图并单击“验证”。在输出窗口中,您将看到 XSLT 文件的链接。

XSLT 的性能非常棘手。您可以以非常好的方式或不打算使用的方式编写您的 XSLT。 对于一个非常基本的映射,性能差异将会存在,但会非常小(如果有的话)。正如 Dijkgraaf 所说:检查这一点的唯一方法就是对其进行测试。

如果您当前的实现给您带来性能问题,请尝试将其纯粹写入 XSLT,无论哪种方式都非常优化。尝试采用不同的方法/技术。

一般来说,我总是建议编写 XSLT 而不是使用映射器,但说实话:这是个人喜好。 我为此写了一篇博文,在这里查看:https://pvandenheede.wordpress.com/2016/09/20/the-case-for-xslt/

【讨论】:

    【解决方案2】:

    XSLT 的好处

    • 导入通用或通用样式表
    • 如果您的架构排列整齐,请使用通用模板
    • 内联 cmets
    • 在调试期间禁用(注释掉)代码块
    • 更轻松的审核
    • 可以跟踪源存储库中的更改
    • 可以从分支合并

    【讨论】:

      【解决方案3】:

      我一直支持使用 XSLT,这只是微软创建 functoids 和 biztalk 地图的原因,因此开发人员只需进行拖放即可。如果您对学习 XSLT 完全不感兴趣。

      【讨论】:

        【解决方案4】:

        我可能是支持使用映射工具的奇怪人,据说它也产生 XSLT。

        我认为与同事讨论地图中发生的事情更容易,因为它是可视化的,并且其他人更容易维护,因为并非所有这些都用于编码 XSLT。

        生成的 XSLT 出现性能问题的唯一 3 次是

        • 在两个传入的 XML 映射中使用一个 XML 作为查找表 - BizTalk 2006 中的一个错误,已在 2006 R2 中解决。
        • 从 SSO 获取连接字符串时 - 通过将脚本移动到运行一次的全局函数来解决
        • 使用累积最大值 - 由 this method 解决

        【讨论】:

          【解决方案5】:

          我认为这取决于情况,但是当您使用地图 GUI 创建地图时,bizTalk 会创建很多变量、代码等。当我在地图 GUI 中制作地图但随后将其清除并离开 XSLT 时,我有过这样的经历。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-03-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多