TNWiki Article Spotlight – BizTalk Virtual Mapper VS Custom-XSLT


Welcome to Tuesday’s Wiki Article Spotlight!

I usually write up a lot about BizTalk Server. Through my personal blog, magazines, and the TechNet wiki (see BizTalk Server resources on TechNet Wiki). However I am not the only one. Others in the BizTalk community and with Microsoft have contributed articles too. This can be an inspiration for others to write to. One of article that has gotten my attention is a recent article on BizTalk Mapping by Rajasekhar.R titled BizTalk Virtual Mapper VS Custom-XSLT.

What I like about this article is that is contains a good discussion on mapping. The article basically discusses using out of the box BizTalk functionality (i.e. functoids, BizTalk Mapper) versus using custom XSLT. What is interesting for a discussion is his view on using custom XSLT instead of the mapper:

“My choice is using the CUSTOM-XSLT than using the Biztalk Mapper, once you get used to it, I guarantee you will not want to go back to using clunky visual interface ever again, the main reasons are…

1) Performance
2) Maintainability
3) Complexity”

In my view this article deserves to be article spotlight. It makes you think or consider for yourself if you want to use the mapper over custom XSLT or not. Rajasekhar a job well done and welcome to the TechNet Wiki.

So go check out all the wonder, and dive in! The Wiki’s warm.

– Ninja Steef-Jan (Blog, Wiki, Twitter, Profile)

Comments (12)

  1. Rajasekhar.R says:

    Thanks Steef…

  2. Troy Johnson says:

    Steef-Jan What are your thoughts on the advantages of using the virtual mapper as a way to document the logic in the map? I make this point fully realizing there are actions like grouping, sorting, and batching that are best done with custom XSLT.

  3. What I found interesting in this article is author's choice for only choosing custom XSLT and providing arguments for them. I made it the featured article to reach a wider audenience and have a discussion around this topic. I personally feel that for each choice there have to be solid arguments and solution needs to be fit for purpose. Now if a developer/consultant feels more comfortable with using the virtual mapper and he can use it efficiently and is productive than he/she should by no means change that. From a productive standpoint, the virtual mapper can be a better choice than the custom XSLT.

  4. r_henwood@hotmail.com says:

    The mapper has limitations that can sometimes only be addressed by using Custom XSLT. I take a flexible approach. If the map is going to be easy to do with the mapper, I use the mapper. If not, it's custom XSLT, either in the Scripting Functoid or the whole map gets replaced by a Custom XSLT.

    The worst thing to do is to stick with the mapper and try to make it do things that it can't do. That approach leads to missed deadlines and stress.

  5. Andy Dang says:

    This is dependant on the scenarios. If your mappings are simple, then I generally tend to go for the mapper. However, if the your mapping for your business documents are quite complex eg. EDI mappings to SAP IDOC, then I definitely choose custom XLST for
    the main reasons as Maintainability. If performance is a must, then custom XLST is the choice – see this research article

    http://www.bizbert.com/…/Understanding+The+BizTalk+Mapper+Part+12+Performance+And+Maintainability.aspx. So at the end of the day, you need to be flexible to adopt which is the right tool for you.

  6. Saravana Kumar says:

    I'll go with Andy Dang command, we simply can't come to the conclusion Custom XSLT is the best choice. There are various other factors that comes into picture. The top one in my list is maintainability. Over the years we have chosen different techniques to achieve maintainability. (ex: Pure .NET object mapping, creating object based on xpath lookup, custom XSLT, etc).

    When the schema complexity increases then custom XSLT goes out of the window. Also, getting someone skilled in XSLT is touch job. The tooling around XSLT and debugging are limited, or you need to have some good XML tools like Altova Xml Spy.

    Also, don't forget the investments from Microsoft in this area. They are constantly enhancing it. The mapper in BizTalk 2010 is much better than previous versions.

  7. I'll go with Andy Dang command, we simply can't come to the conclusion Custom XSLT is the best choice. There are various other factors that comes into picture. The top one in my list is maintainability. Over the years we have chosen different techniques to achieve maintainability. (ex: Pure .NET object mapping, creating object based on xpath lookup, custom XSLT, etc).

    When the schema complexity increases then custom XSLT goes out of the window. Also, getting someone skilled in XSLT is touch job. The tooling around XSLT and debugging are limited, or you need to have some good XML tools like Altova Xml Spy.

    Also, don't forget the investments from Microsoft in this area. They are constantly enhancing it. The mapper in BizTalk 2010 is much better than previous versions.

  8. Zsanett Vasahlik says:

    I love custom-xslt and feel sorry for all those BizTalk Developers spending weeks and months on their maps but respect their choice and beliefs. I never had that luxury of time. I agree that there are no hard and fast rules and am looking forward to see if your view on the BizTalk 2010 mapper will change anything but I am also a CUSTOM-XSLT fan.

    I have learned it while troubleshooting mapping performance and dealing with interesting schema problems, needs to regroup or sort etc, that proved to be unsolvable within an hour or two unless I convert to xslt but was needed to be done no matter what. Yeah, I am not new to Altova Spy but after a few of initiation to xslt I never needed to use it. Like Rajashekar said, once you go Custom-Xslt, there is no going back.

    I normally start out with the pretty BizTalk mapper but more often than not the sender/receiver stronger party makes frequent and drastic changes in his/her schema or for performance reasons I convert the map to use custom-xslt. It not only makes map development more like development or allows you to create better performing maps or designs but also gives you the ability to to a visual compare in your source control system as to what changed and see it at a glance as oposed to trying to figre that out by looking at the "spider web".

    Ideally if there are no constantly changing requirements/other interfacing schemas that you have no control over, you develop your schemas and maps yourself using some canonical schemas and you are done. If you did a good job, you don't need to change things often.

    BUT in real life I have seen more reasons to go with Custom-xslt. Then again, if I make minor changes to other people's nice BizTalk maps, I keep it as BizTalk map. If there is no need to convert to custom-xslt, I don't change it. 🙂

  9. Rajasekhar, this is a perfect example of a great topic for TechNet Wiki. A lot of people are very passionate about it. Thank you!

  10. aw says:

    hai, I just want to tell you that I am just very new to blogs and seriously loved this website. More than likely I’m planning to bookmark your blog post .
    You amazingly come with really good posts. Thanks a lot for sharing your blog Microsoft.

    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Palembang
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Papua
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Papua%20Barat
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Pati
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Pekalongan
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Pontianak
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Samarinda
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Semarang
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Serang
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Sidoarjo
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Surabaya
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Surakarta
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Tasikmalaya
    http://www.lokerjobindo.com/search/label/Loker%20Daerah%20Yogyakarta
    http://www.lokerjobindo.com/search/label/Loker%20Jurusan%20Akunting
    http://www.lokerjobindo.com/search/label/Loker%20Jurusan%20Asuransi
    http://www.lokerjobindo.com/search/label/Loker%20Jurusan%20Teknologi%20Informasi
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Administrasi
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Akuntansi
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Alfamart
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Arsiparis
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Artis
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Astra
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Asuransi
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Auditor
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Bank
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Bank%20BJB
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Bank%20BNI%20Syariah
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Bank%20BRI
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Bank%20Danamon
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Bank%20Mandiri
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Bank%20Indonesia
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Bank%20BCA
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Bank%20BTN
    http://www.lokerjobindo.com/search/label/Lowongan%20Kerja%20Bank%20CIMB%20NIAGA