I spend a great deal of time with XML data transfers, and use XSLT on a regular basis to transform, conform, or calculate the XML into formats that I can use. Originally, I used the mapping tool within Microsoft’s BizTalk Server 2002 for complex XSLT. Although it had limitations, the tool presented everything in a visual manner that made editing quick and much less painful.
When the time came to upgrade, my first instinct was to upgrade to BizTalk 2002’s younger, beefier brother, BizTalk Server 2004.
It boasted a ton of enhancements to BT’s Mapper, and to BT’s entire server package as a whole. Among other things, the mapping tool now supported
the W3C standard XML Schema files, improved XSL customization, and integration with the .NET framework.
But was it going to be worth the trouble? The mapping tool is only a small part of BizTalk Server 2004.
The entire package weighs in at over 190MB, with adapters to work with web services, SQL Server, and a business rules
engine, among other things.
If I upgraded to BT 2004 and simply used it for XSLT programming, it would be like swatting a fly
with a tactical nuclear weapon. Successful, but maybe just a little overkill for the task at hand.
That’s when I found there was another option. Altova (makers of the excellent XMLSpy), had released their own “2004” application, MapForce 2004.
Like BizTalk 2004’s mapping tool, it allowed for quick XSLT generation with a visual drawing tool and a minimum of debugging.
Not knowing what else to do, I downloaded the trial versions for both products to try them out,
basing my evaluation on ease of installation, usability, and overall functionality.
Their similarities and their differences were both surprising, as was my final choice for the product that I needed to use.
As previously mentioned, BizTalk Mapper 2004 is part of a much larger package.
Built to work with the .NET framework, SQL Server, and containing a full application suite,
the entire server package takes over 190MB.
That’s not including Visual Studio .NET, SQL Server, and several other dependencies it lists (for the full list of dependencies, click HERE).
Still, I was hoping that a custom installation would be simpler. Even when I selected the minimum components for BizTalk Mapper (64MB), I still needed to have Visual Studio .NET, MDAC 2.8,
and MXML 4.0 Service Pack 2 installed before I get started with BizTalk. After the installation was completed, I was taken to a wizard to configure
a SQL database for BT…even though I didn’t have SQL installed, and it wasn’t necessary for the Mapper.
Installation: MapForce 2004
Installing MapForce 2004 was a breeze by comparison. Built to run on Windows 98/NT/200/XP/2003, the installation weighed in at 5-8MB, depending on which platform you chose to install it on.
As long as you run one of these platforms, and run an 800MHz processor or higher(recommended), you should have no problem getting started with MapForce.
Installation: Conclusion
Comparing these two products at installation time really isn’t a fair fight, considering all the dependencies BT Server 2004 has to support,
but I was hoping they could simplify the install process, especially when I was only installing a fraction of the true functionality.
If you don’t have the budget to install the prerequisites for BizTalk Server 2004, you might have to go for MapForce out of necessity.
First off, anyone who uses Visual Studio .NET will be happy to see that BT’s mapping tool automatically integrates with VS.
After installing BizTalk, open up a new Visual Studio Project, and select “BizTalk Projects” to get started. Developers who normally use VS should
be in familiar territory here.
Just like its predecessor, once the source and the destination XML have been defined, the mappings can be created by drawing a line from
one of the source fields to the desired destination field(s). Since drawing a large number of data mappings can easily become
confusing, it also offers a tabbed interface, so the transformation can be grouped into sections of data mappings.
If the transformations you need require something more complex than simply mapping
data from one place to another, BT includes a pre-defined library of .NET-powered
functions to perform a wide variety of operations. Logical, mathematic, string
operations, etc., can all be easily added to the the mix of data mappings to
transform the XML into something useful.
If your transformations also require something that BizTalk’s library of functions doesn’t have, it also allows you to develop your own. BT allows you to enter
.NET code directly into the mappings. Thanks to its integration with Visual Studio, it can compile the code on-the-fly while generating the
XML transform file. Customized functions can be created through any of the .NET languages (Visual Basic, C++, C#, and J#), either by entering the code inline, or referencing it as an external assembly. If you’d rather do without all the .NET code, BT 2004 also allows you to write the function in XSLT for maximum flexibility in customization.
MapForce 2004
Once the source and the destination locations are defined, MapForce also provides a library of pre-installed functions
to aid in the creation of complex XML transformations. And like BizTalk 2004, if the list of functions doesn’t contain
the operation you need, you can create your own custom functions.
However, unlike BT, the functions are not strictly based on .NET programming. MapForce
instead offers the choice of XSLT, C++, C#, or Java to be the basis of your
functions. While it doesn’t boast the instant integration with .NET that BizTalk does,
the fact that MapForce supports functions from both C# and Java allows it the flexibility
to create XSLT that can work both inside and outside of the .NET framework.
Not all developers create applications for the .NET framework (or even Windows for that matter),
so being able to develop with portability in mind is always a plus.
One feature that I found extremely useful in MapForce 2004 was that it could easily
specify multiple sources and destinations. I could take in data from multiple XML files or databases,
and preview the XSLT code that would be generated for multiple possible transformations.
Granted, it can only generate the XSLT code for one destination at a time, but being able to preview the work for mutliple targets simultaneously can potientailly shave hours off of development time.
Functionality: Conclusions
BizTalk 2004’s integration with Visual Studio gives it the power to add and compile
customized functions for you on-the-fly, and its compatibility inside of .NET applications
is virtually guaranteed. However, if .NET integration isn’t your top priority, and you want to work with multiple possible sources/destinations within XSLT, MapForce is most definitely worth a shot.
Despite its ability to integrate with VS and its .NET functions, “ease of use” isn’t a phrase that comes to mind when I think of BT’s Mapper.
For one thing, since BT was built to integrate with VS .NET, you can’t run the mapping tool without it.
If you want to run BizTalk, you’ll need to purchase and install Visual Studio first.
I already run VS, so this worked out perfect for me. However, I know there
are plenty of developers who (either by necessity or by choice), do not run
Visual Studio. Obviously, the VS integration could be seen as a double-edged
sword.
One other problem I encountered when using BT, was that even though it supported
the inline on-the-fly coding of .NET functions, it seemed to actively discourage it at the same time.
The text box where the inline code can be added is NOT resizable,
making any custom functions more than a few lines long increasingly difficult
to debug.
One other pain with the inline coding was the fact that every .NET command
used within the function had to be specifically defined.
For example, if you created your custom function with Visual Basic, and tried to use
the “Mid()” command on a string, it wouldn’t work. You have to describe
the entire command “Microsoft.VisualBasic.Mid()” for it to compile along with the rest
of your project.
Again, this may not be a problem if your function is a line or two long,
but if you have something that could get a little lengthy, you’re going to be in for some
real fun.
Usability: MapForce 2004
On the usability score, MapForce is way ahead of BT. After I installed it,
I had a basic XML Transformation test running in less than two minutes.
The interface is sleek, easy to run, and pretty high on the intuitive scale.
That being said, creating custom functions in MapForce is not quite as easy
as BizTalk makes it.
Unlike the Visual Studio-powered BizTalk, it can’t just throw in your custom code as you go.
It must be referenced separately within an mff(MapForce Function) file, which you
can then added into MapForce. The details of creating customized MapForce functions
are available within MapForce’s online manual, available HERE.
Usability: Conclusion
In terms of usability, MapForce wins hands down. Compared to MapForce,
BizTalk Mapper looks clunky and cramped. However, BizTalk does score some points
on being able to make custom functions quickly…as long as you keep them short, that is.
If you’re looking for a way to transform XML files with XSLT, and you would like to maximize the portability of your code, MapForce 2004 is definitely the way to go.
It has a sleek, simple interface that still allows for a wide variety of customization,
allowing you to use multiple languages, sources, and destinations within the XML transformation.
HOWEVER…
I’ve mentioned several times in this article that BizTalk can’t be beat for .NET integration.
If you need .NET in your development, this is the best way to go, as long as you have all the prerequisites
it needs, and get used to its comparably-clunky interface.
Incidentally, I need .NET in my developement, at least in the forseeable future. I sided with BizTalk on this one, and have been swatting flies with tactical nukes since.
About the Author:
David Handlos is a software architect from Lincoln, Nebraska. Working professionally with web-based technologies since 1998, he has also been a computer/electronics enthusiast since 1992. His “enthusiasm” has led him to work with radio communications, hardware programming, web development, XML-related applications, and most recently, Linux.
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.
.. is a ripoff. Especially when you consider all the extras you need for it.
I was amazed by the MS demonstration of it at DevDays. They showed us a very simple customer order screen. Of course, all the other products required for it (MS Office Pro, VS.Net, BizTalk, MS SQL Server, etc) would have easily cost a company a lot of money. From talking to other people there, they all had the same impression.
You seem to be forgetting that Microsoft goes to great lengths to make products that work well with other MS software with little to no advantage with those from other vendors.
No, I never forgot that. For example, the only DB that MS InfoPath can access is MS SQL. It is all about product lock-in.
I was just saying that BizTalk = ripoff and wate of money.
“From talking to other people there, they all had the same impression.”
Ditto. That was exactly my impression and that of others who saw the demo. Granted, it is a really sweet deal. However, deployment of this would even empty the deepest of pockets. They are going to need to get really creative with their pricing to make this fly.
Its mapper is pretty good. It works various data sources. I thought the way it mapped xml was fairly intuitive.
http://www.xenos.com/solutions/prod_goxml_transform.asp
Anyone know of any open source projects that are jumping into this void?
Hi, I’m the lead technical product manager for BizTalk Server 2004. I just finished reading this article and couln’t resist jumping in to respond to some of the interesting comments.
1. When we designed the editor and mapper our goal was to create tools that worked for all different formats to support our integration broker. For example our mapper can map data from flat-files, EDI files etc. and as such the design patterns used don’t make the same assumptions as some other XML only tools. Further we assume the tool will mostly be used by customers using our runtime infrastructure, rather than a generic XSLT designer, hence the strong tie to the .NET framework for example.
2. Re: DevDays demo. It is our goal to ensure BizTalk Server works well with other Microsoft products and also that we have great interop with non-Microsoft products. If you see value in the using other MS products with BizTalk Server because of their functionality and how easy it is to use them-then great, we succeeded. If you don’t see value- that’s ok too; its your choice.
3. Re: Overkill. BizTalk Server Partner Edition costs less than $USD1000 for a production license and includes a license of Visual Studio .NET for BizTalk Server development and InfoPath for use with BizTalk Server, runs on MSDE etc. That’s very cost effective compared to the other integration brokers in the industry.
4. .NET objects in the mapper. The article is correct when it points out we discourage the use of .NET objects directly inside the map. While this is possible, we encourage good developer design which is encapsulating code in external assemblies. This turns out to be much better because you have a single assembly with code shared across multiple maps that can be versioned once and managed more easily.
Thanks to the author for writing this article. If anyone wants to post a review including BizTalk Server I’d encourage you to get in contact with me as I’m happy to provide BizTalk Server 2004 technical information. You can get me through my blog: http://blogs.msdn.com/scottwoo
Cheers,
Scott.
If you are looking for a truly butt kicking XSLT mapper, try Stylus Studio. Unlike Mapforce, Stylus Studio allows full 2-way editing and you are always working with your native XSLT transformations. Mapforce is a one-way XSLT code generator. You can not import and edit XSLT. Stylus also includes powerful auto-complete, previewing, debugging and profiling capabilities not provided by Mapforce.
Stylus Studio also works well in the .Net environment.