2

I am using BizTalk MAP and inside BizTalk map I am using table looping, table extractor, Scripting, looping functoids.

The same can be achieved in BizTalk map by referencing XSLT.

so Performance wise, which method would be better using BizTalk Map or BizTalk map referencing XSLT.

Dijkgraaf
  • 11,049
  • 17
  • 42
  • 54
user1104946
  • 680
  • 1
  • 9
  • 30
  • In general I don't think that you get many differences between one and the other, at the end Maps are XSLT based. Of course the XSLT generated by the map could be a little worst in performance than one that you specifically develop. This is an interesting [link](https://code.msdn.microsoft.com/windowsdesktop/BizTalk-Mapper-External-a9226aa2) about this topic. – Xurxo Garcia Nov 17 '16 at 14:42
  • One way to find out, Test it. We have at times decided to go the XSLT route when we have encountered performance issues – Dijkgraaf Nov 17 '16 at 22:50

5 Answers5

4

In fact, your visual BizTalk map created with the BizTalk mapper, is XSLT. Only your functoids are libraries/functions which may be either XSLT or inline C# code. One way you can check this is to right click your .btm map and click 'validate'. In the output window, you will see the link to your XSLT file.

Performance is very tricky with XSLT. You can write your XSLT in a very good way or in a way that it's not meant to be used. For a pretty basic mapping, performance differences will be there, but will be pretty minor (if any at all). As Dijkgraaf says: the only way to check this, is to test it.

If your current implementation gives you performance issues, try writing it purely into XSLT, which is very optimized either way. Try taking different approaches/techniques.

In general, I would always recommend writing XSLT instead of using the mapper, but let's be honest: this is personal preference. I wrote a blog post on this, check it out here: https://pvandenheede.wordpress.com/2016/09/20/the-case-for-xslt/

zurebe-pieter
  • 3,246
  • 21
  • 38
1

XSLT benefits

  • Import generic or common stylesheets
  • Use common templates if your schemas are lined up
  • Inline comments
  • Disable (comment out) code blocks during debugging
  • Easier review
  • Tracking changes in your source repository is possible
  • Merge from branches is possible
plykkegaard
  • 67
  • 1
  • 6
0

I'm always in favor of using XSLT, only reason Microsoft created functoids and biztalk map, so developers will just do drag and drop. If you're not interested learning XSLT at all.

Ed Bangga
  • 12,879
  • 4
  • 16
  • 30
0

I'm might be the strange one in favor of using the mapping tool, as said it also produces XSLT.

I think its easier to talk about what is happening in the map with colleagues, since it's visualized, and easier for others to maintain, since not all are that used of coding XSLT.

The only three times I had performance issus with the generated XSLT was

  • Using one XML as a lookup table in a two incoming XML map - A bug in BizTalk 2006, solved with 2006 R2.
  • When getting connection strings from SSO - Solved by moving the Script to a global Functiod running once
  • Using Cumulative Maximum - solved by this method
Martin Bring
  • 1,176
  • 1
  • 7
  • 17
0

i think it depends of situation but bizTalk create a lot of variables, code, etc when you create a map using map GUI. I have an experience when i made a map in a map GUI but then just cleared it and leaved in XSLT.