BizTalk映射functoid与BizTalk映射xslt

BizTalk映射functoid与BizTalk映射xslt,xslt,biztalk,biztalk-2013,biztalk-mapper,Xslt,Biztalk,Biztalk 2013,Biztalk Mapper,我使用的是BizTalk映射,在BizTalk映射中我使用的是表循环、表提取器、脚本、循环functoid 在BizTalk映射中也可以通过引用XSLT来实现这一点 因此,在性能方面,使用BizTalk映射或引用XSLT的BizTalk映射哪个方法更好。事实上,使用BizTalk映射器创建的可视BizTalk映射是XSLT。只有functoid是库/函数,它们可以是XSLT或内联C#代码。检查此项的一种方法是右键单击.btm映射并单击“验证”。在输出窗口中,您将看到指向XSLT文件的链接 XSL

我使用的是BizTalk映射,在BizTalk映射中我使用的是表循环、表提取器、脚本、循环functoid

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


因此,在性能方面,使用BizTalk映射或引用XSLT的BizTalk映射哪个方法更好。

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

XSLT的性能非常复杂。您可以用一种非常好的方式编写XSLT,也可以不使用XSLT。 对于一个非常基本的映射,性能差异是存在的,但是非常小(如果有的话)。正如Dijkgraaf所说:检查这一点的唯一方法是测试它

如果您当前的实现给您带来了性能问题,请尝试将其完全写入XSLT,这两种方式都非常优化。尝试采用不同的方法/技巧

一般来说,我总是建议编写XSLT而不是使用映射器,但老实说,这是个人偏好。 我写了一篇关于这个的博文,请在这里查看:

XSLT的好处

  • 导入通用或通用样式表
  • 如果您的模式已对齐,请使用通用模板
  • 内联注释
  • 在调试期间禁用(注释掉)代码块
  • 轻松复习
  • 可以跟踪源存储库中的更改
  • 从分支合并是可能的

我一直支持使用XSLT,唯一的原因是Microsoft创建了functoid和biztalk映射,所以开发人员只需进行拖放操作。如果您对学习XSLT一点也不感兴趣。

我可能会奇怪地支持使用映射工具,因为它也会生成XSLT

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

对于生成的XSLT,我只有三次遇到性能问题是

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

我认为这取决于具体情况,但在使用map GUI创建地图时,bizTalk会创建大量变量、代码等。我有过这样的经历:我在map GUI中创建了一个映射,但随后将其清除,然后离开XSLT。

一般来说,我认为两者之间没有太多区别,最终映射是基于XSLT的。当然,映射生成的XSLT在性能上可能比您专门开发的XSLT差一些。这是一个关于这个话题的有趣的话题。找到答案的一个方法就是测试它。我们有时会在遇到性能问题时决定采用XSLT方法