<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Gilles' WebLog</title><link>http://blogs.msdn.com/b/gzunino/</link><description>Not actually a Blog</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>WF 4.0 Tracking on .NET Endpoint</title><link>http://blogs.msdn.com/b/gzunino/archive/2009/06/11/wf-4-0-tracking-on-net-endpoint.aspx</link><pubDate>Fri, 12 Jun 2009 04:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9728457</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=9728457</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2009/06/11/wf-4-0-tracking-on-net-endpoint.aspx#comments</comments><description>Vikram has a very nice acticle on tracking in WF 4.0. Worth reading it at: http://blogs.msdn.com/endpoint/archive/2009/06/11/introduction-to-workflow-tracking-in-net-framework-4-0-beta1.aspx ....(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2009/06/11/wf-4-0-tracking-on-net-endpoint.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9728457" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/Code/">Code</category></item><item><title>The J-POP saga continues: SweetS - Love Like Candy Floss</title><link>http://blogs.msdn.com/b/gzunino/archive/2007/11/15/the-j-pop-saga-continues-sweets-love-like-candy-floss.aspx</link><pubDate>Fri, 16 Nov 2007 07:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6288986</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=6288986</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2007/11/15/the-j-pop-saga-continues-sweets-love-like-candy-floss.aspx#comments</comments><description>In the past, I have outlined some of the most famous J-POP artists: EXILE or DREAM . Today, let me introduce the (now defunct) Japanese band SweetS ( official web site in Japanese). Formed in 2003, the group experienced minor success before disbanding...(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2007/11/15/the-j-pop-saga-continues-sweets-love-like-candy-floss.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6288986" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/Japan/">Japan</category></item><item><title>Hosting a WCF service in Windows Sharepoint Services v3.0</title><link>http://blogs.msdn.com/b/gzunino/archive/2007/09/17/hosting-a-wcf-service-in-windows-sharepoint-services-v3-0.aspx</link><pubDate>Tue, 18 Sep 2007 02:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4965940</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=4965940</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2007/09/17/hosting-a-wcf-service-in-windows-sharepoint-services-v3-0.aspx#comments</comments><description>With ASP.NET AJAX Extensions being baked into the .NET Framework 3.5 and the improvements to WCF to support JSON, it seems tempting to write WCF services and host the in Windows Sharepoint Services 3.0 
 Unfortunately, if you create a WCF service and...(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2007/09/17/hosting-a-wcf-service-in-windows-sharepoint-services-v3-0.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4965940" width="1" height="1"&gt;</description></item><item><title>BizTalk Decompiler for Reflector 5 on CodePlex</title><link>http://blogs.msdn.com/b/gzunino/archive/2007/06/27/biztalk-decompiler-for-reflector-5-on-codeplex.aspx</link><pubDate>Thu, 28 Jun 2007 01:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3571246</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=3571246</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2007/06/27/biztalk-decompiler-for-reflector-5-on-codeplex.aspx#comments</comments><description>My BizTalk Decompiler only works with Reflector 4. The updated version for Reflector 5 has been available for a while on CodePlex: http://www.codeplex.com/reflectoraddins...(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2007/06/27/biztalk-decompiler-for-reflector-5-on-codeplex.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3571246" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/Code/">Code</category><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2006/">BizTalk 2006</category></item><item><title>Date/Time tracked with BAM must be expressed in Universal Coordinated Time (UTC)</title><link>http://blogs.msdn.com/b/gzunino/archive/2006/07/18/670317.aspx</link><pubDate>Wed, 19 Jul 2006 02:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:670317</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=670317</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2006/07/18/670317.aspx#comments</comments><description>All date/time tracked by BAM must be expressed in UTC. BAM depends on this to provide accurate durations, among many other things. This is clearly explained here . It was also the case for BizTalk 2004 even if the documentation gave subtle hints instead...(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2006/07/18/670317.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=670317" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2006/">BizTalk 2006</category></item><item><title>BAM Portal Activity Search: "This action cannot be performed because one or more database(s) appears corrupted"</title><link>http://blogs.msdn.com/b/gzunino/archive/2006/07/12/663790.aspx</link><pubDate>Thu, 13 Jul 2006 00:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:663790</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=663790</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2006/07/12/663790.aspx#comments</comments><description>When using the BAM Portal Activity Search feature, you may be directed to an error page with the above error message. 
 This error message means that there are instances with duplicate ID in the activity you were searching. If you look at the "Application...(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2006/07/12/663790.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=663790" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2006/">BizTalk 2006</category></item><item><title>BAM is not supported when SQL Server is set to Mixed Authentication Mode</title><link>http://blogs.msdn.com/b/gzunino/archive/2006/06/20/639851.aspx</link><pubDate>Tue, 20 Jun 2006 19:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:639851</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=639851</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2006/06/20/639851.aspx#comments</comments><description>Tiho has a good entry on why it is that way and how to fix it. He also explains how to diagnose the problem....(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2006/06/20/639851.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=639851" width="1" height="1"&gt;</description></item><item><title>BizTalk Addin for Reflector</title><link>http://blogs.msdn.com/b/gzunino/archive/2006/06/09/623391.aspx</link><pubDate>Fri, 09 Jun 2006 19:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:623391</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=623391</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2006/06/09/623391.aspx#comments</comments><description>This is an addin for Reflector that allows you to list all BizTalk artifacts contained in an assembly and extract them. 
 Installation 
 Donwload the attached file and extract Reflector.BizTalkDecompiler.dll into the same directory as Reflector (otherwise...(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2006/06/09/623391.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=623391" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-00-62-33-91/Reflector.BizTalkDecompiler.zip" length="14643" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2006/">BizTalk 2006</category></item><item><title>BizTalk Server 2006 Best Practices Analyzer has shipped!</title><link>http://blogs.msdn.com/b/gzunino/archive/2006/06/01/613617.aspx</link><pubDate>Fri, 02 Jun 2006 03:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:613617</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=613617</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2006/06/01/613617.aspx#comments</comments><description>The BizTalk Server 2006 Best Practices Analyzer automatically examines a BizTalk Server 2006 deployment and generate a list of issues pertaining to best practices standards for BizTalk Server deployments. The primary use of this tool is to examine BizTalk...(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2006/06/01/613617.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=613617" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2006/">BizTalk 2006</category></item><item><title>BAM Query Service: What is it and how can I use it?</title><link>http://blogs.msdn.com/b/gzunino/archive/2006/05/31/bam-query-service-what-is-it-and-how-can-i-use-it.aspx</link><pubDate>Thu, 01 Jun 2006 00:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:612294</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=612294</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2006/05/31/bam-query-service-what-is-it-and-how-can-i-use-it.aspx#comments</comments><description>If you have installed BAM (BizTalk Server 2004 or BizTalk Server 2006), you may have noticed that a web service called the "BAM Query Service" got installed. 
 As its name hints, this web service allows the BAM Portal to retrieve BAM instance data without...(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2006/05/31/bam-query-service-what-is-it-and-how-can-i-use-it.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=612294" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2006/">BizTalk 2006</category></item><item><title>BizTalk Server 2006 runs great under Microsoft Virtual Server 2005 R2!</title><link>http://blogs.msdn.com/b/gzunino/archive/2006/04/03/567684.aspx</link><pubDate>Tue, 04 Apr 2006 01:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:567684</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=567684</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2006/04/03/567684.aspx#comments</comments><description>Today, Microsoft announced that Virtual Server 2005 R2 can be downloaded free of charges. 
 BizTalk Server 2006 works great under Virtual Server 2005 R2. When we were developing BizTalk Server 2006, I ran all tests under Virtual Server and never saw...(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2006/04/03/567684.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=567684" width="1" height="1"&gt;</description></item><item><title>I am not working for Microsoft Japan, but thanks a lot Jeff!</title><link>http://blogs.msdn.com/b/gzunino/archive/2006/03/29/564495.aspx</link><pubDate>Thu, 30 Mar 2006 06:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:564495</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=564495</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2006/03/29/564495.aspx#comments</comments><description>In a recent entry , Jeff noticed my Debugger Visualizer for MessageContext and mentioned that I am from MSFT Japan. Well, this is not true. I am in Redmond, USA and I work for the BizTalk team. It it true that I do like Japan and I have visited this gret...(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2006/03/29/564495.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=564495" width="1" height="1"&gt;</description></item><item><title>BisTalk Server 2006 Released Today!</title><link>http://blogs.msdn.com/b/gzunino/archive/2006/03/27/562540.aspx</link><pubDate>Tue, 28 Mar 2006 04:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:562540</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=562540</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2006/03/27/562540.aspx#comments</comments><description>You probably know this already. You can find an overview of BizTalk Server 2006 features here . 
 Now that BizTalk 2006 is released, I can speak a little more freely about the product. You can use the "Contact" link to suggest topics you'd like me to...(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2006/03/27/562540.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=562540" width="1" height="1"&gt;</description></item><item><title>BizTalk Server Team Product Management has a Blog!</title><link>http://blogs.msdn.com/b/gzunino/archive/2006/03/21/557290.aspx</link><pubDate>Wed, 22 Mar 2006 01:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:557290</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=557290</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2006/03/21/557290.aspx#comments</comments><description>Visit it here . Kris, Steve, Michael and Mark share product updates, links to training materials and even employment opportunities ! 
 I subscribed to their RSS feed....(&lt;a href="http://blogs.msdn.com/b/gzunino/archive/2006/03/21/557290.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=557290" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2006/">BizTalk 2006</category></item><item><title>Debugger Visualizer for BizTalk 2006: MessageContext</title><link>http://blogs.msdn.com/b/gzunino/archive/2006/03/20/555788.aspx</link><pubDate>Mon, 20 Mar 2006 21:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:555788</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=555788</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2006/03/20/555788.aspx#comments</comments><description>&lt;P&gt;Visual Studio 2005 added support for &lt;A href="http://msdn2.microsoft.com/en-us/library/zayyhzts.aspx"&gt;Debugger Visualizers&lt;/A&gt;. With debugger visualizers, developers can&amp;nbsp;define what information (and in what form) is shown in the debugger for a specific type. There are many visualizers for various .NET types floating around.&amp;nbsp;Here is a small list of the most popular ones: &lt;A href="http://blog.bretts.net/?p=11"&gt;ASP.NET Cache&lt;/A&gt;, &lt;A href="http://regex.osherove.com/Articles/RegexKit.html"&gt;Regular Expression&lt;/A&gt;, &lt;A href="http://blogs.conchango.com/howardvanrooijen/archive/2005/11/24/2424.aspx"&gt;XmlDocument (and other Xml related types)&lt;/A&gt;, a &lt;A href="http://www.rthand.com/DesktopModules/Articles/ArticlesView.aspx?tabID=0&amp;amp;alias=RightHand&amp;amp;lang=en-US&amp;amp;ItemID=15&amp;amp;mid=10244"&gt;powerful looking DataSet visualizer&lt;/A&gt; and there is even a &lt;A href="http://geekswithblogs.net/khanna/archive/2006/01/05/64903.aspx"&gt;WindowsIdentity visualizer&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I am not going to explain in details how to write your own visualizer. You can find &lt;A href="http://msdn2.microsoft.com/en-us/library/ms164759(VS.80).aspx"&gt;step by step instructions on MSDN&lt;/A&gt;. Most existing debugger visualizers I mentionned in the previous paragraph also have home pages where you will find details on how to write your own or even source code.&lt;/P&gt;
&lt;P&gt;I'd like to share some tricks you might find useful when writing your own visualizers:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You can write visualizers for public (obvious!) or&amp;nbsp;internal&amp;nbsp;or private types. The trick for non public types is to use the Assembly Qualified Name of the type you want to visualize. For instance, BizTalk 2006's MessageContext property is actually an internal type (see purple type name below):&lt;/LI&gt;&lt;/UL&gt;&lt;FONT size=2&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[assembly: &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;B&gt;&lt;FONT color=#000080 size=2&gt;DebuggerVisualizer&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;FONT size=2&gt;(&amp;lt;type of visualizer&amp;gt; &lt;/FONT&gt;&lt;FONT size=2&gt;),&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;FONT size=2&gt;(&amp;lt;type of visualizer source&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;),&lt;/FONT&gt; &lt;FONT face="Courier New"&gt;TargetTypeName &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#808000 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#800080 size=2&gt;"Microsoft.BizTalk.Message.Interop.MessageContext_ManagedViewOfNative, Microsoft.BizTalk.Pipeline, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;,&lt;/FONT&gt; &lt;FONT face="Courier New"&gt;Description &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#808000 size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#800080 size=2&gt;"&amp;lt;description&amp;gt;"&lt;/FONT&gt;&lt;FONT size=2&gt;)]&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;Your visualizer code runs non JIT'ed. So make sure you do not perform too much work or it will be slow. If you do too much, the expression evaluator will time out and interrupt your visualizer with an "Expression Evaluation timed out exception". 
&lt;LI&gt;Use DataGrid instead of DataGridView. I know&amp;nbsp;I used a DataGridView in my visualizer, but the DataGrid is faster, especially when running non JIT'ed.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;To illustrate these points, I wrote a BizTalk 2006 MessageContext debugger visualiser. You can download the complete solution BTSVisualizers.zip below. It works with Visual Studio 2005 and BizTalk 2006 only.&lt;/P&gt;
&lt;P&gt;Load the visualizer solution in Visual Studio and build the release comfiguration.To install the MessageContext visualizer, shut down all instances of Visual Studio and copy BTSVisualizers.dll to &lt;FONT face="Courier New"&gt;%VS8ROOT%\Common7\Packages\Debugger\Visualizers&lt;/FONT&gt;. (If you installed Visual Studio at the default location, that would be &lt;FONT face="Courier New"&gt;C:\Program Files\Microsoft Visual Studio 8\Common7\Packages\Debugger\Visualizers&lt;/FONT&gt;) That's it!&lt;/P&gt;
&lt;P&gt;The next time you debug a pipeline (by attaching to BTSNTSVC.exe), you can hover the mouse on the "Context" variable of the message and see all entries in the message context:&lt;/P&gt;
&lt;CENTER&gt;&lt;A href='/photos/gzunino/images/555793/original.aspx'&gt;&lt;IMG src="/photos/gzunino/images/555793/original.aspx" width=500&gt;&lt;/A&gt;&lt;/CENTER&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;
&lt;CENTER&gt;&lt;A href='/photos/gzunino/images/555790/original.aspx'&gt;&lt;IMG src="/photos/gzunino/images/555790/original.aspx" width=500&gt;&lt;/A&gt;&lt;/CENTER&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Unfortunately, this visualizer will not display anything useful unless you are debugging a BizTalk artifact by attaching to BTSNTSVC.exe. This is because most debugging tools (like pipeline.exe) do not populate the message context.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=555788" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-00-55-57-88/BTSVisualizers.zip" length="26201" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/Code/">Code</category><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2006/">BizTalk 2006</category></item><item><title>BizTalk BAM Portal 2006: Activity Search</title><link>http://blogs.msdn.com/b/gzunino/archive/2005/06/15/429609.aspx</link><pubDate>Thu, 16 Jun 2005 06:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:429609</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=429609</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2005/06/15/429609.aspx#comments</comments><description>&lt;P&gt;In a previous &lt;a href="http://blogs.msdn.com/gzunino/archive/2005/06/14/428808.aspx"&gt;&lt;STRONG&gt;post&lt;/STRONG&gt;&lt;/A&gt;, I described the home page of the new BAM Portal. Today, let's take a look at the Instance Search feature. The instance search allows you to search BAM data&amp;nbsp;for a particular activity instance:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_SearchEmpty.jpg"&gt;&lt;IMG alt="BAM Portal Activity Search" src="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_SearchEmpty.jpg" width=700 align=baseline border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=left&gt;You can add / remove clauses using the "Add" / "Remove" buttons. You can also build a query and save it locally as an XML file&amp;nbsp;for future use. Opening a query is done by clicking the "Open" button. Let take the Search for a test drive, shall we?&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_SearchResults.jpg"&gt;&lt;IMG alt="BAM Portal Search with results" src="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_SearchResults.jpg" width=700 align=baseline border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=left&gt;After selecting the business data you would like to see in the column chooser, I am looking for all purchase orders with an amount of $500. There is only one purchase order matching in my system. I can see the details of this activity by clickin on the row of interest:&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_Details.jpg"&gt;&lt;IMG alt="BAM Portal Activity Details" src="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_Details.jpg" width=700 align=baseline border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=left&gt;Users can see all business data associated with this activity instance. Milestones appear sorted from the oldest one to the newest one. Any related document or related activity would appear in their respective sections.&lt;/P&gt;
&lt;P align=left&gt;Finally, the "Technical Assistance" can be used to open a technical assistance ticket. The subject / description entered below will be posted to the event log of the server, along with references to engine artifacts (messages / orchestrations) related to this activity.&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_TechAssist.jpg"&gt;&lt;IMG alt="BAM Portal Technical Assistance" src="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_TechAssist.jpg" align=baseline border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=left&gt;Tomorow, I'll show how one can view aggregated data and create alerts when specific condition happen.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=429609" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category></item><item><title>BizTalk Server 2006: What is new with Business Activity Monitoring?</title><link>http://blogs.msdn.com/b/gzunino/archive/2005/06/14/428808.aspx</link><pubDate>Tue, 14 Jun 2005 10:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:428808</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=428808</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2005/06/14/428808.aspx#comments</comments><description>&lt;P&gt;You probably&amp;nbsp;already read &lt;A href="https://blogs.msdn.com/scottwoo/archive/2005/05/24/421443.aspx"&gt;&lt;STRONG&gt;Scott's document on what is new in Business Activity Monitoring 2006&lt;/STRONG&gt;&lt;/A&gt;.Today, I'll shed some light on the brand new "out of the box" portal. All information are based on the CTP build you might have picked up at TechEd 2005. Keep in mind that the BAM Portal may (and probably will) change before its final version is released.&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_Main.jpg"&gt;&lt;IMG title="BAM Portal Home Page (Click on picture to enlarge)" height=500 alt="BAM Portal Home Page" src="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_Main.jpg" align=baseline border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=left&gt;There are three main zones:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV align=left&gt;the header. This is the location users can customize for branding purposes,&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV align=left&gt;the navigation bar (on the left on a light blue background) which displays all views and activities. This is the entry point to most features of the portal,&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV align=left&gt;the content where users will interact with data. The main page displays a quick summary of importan BAM concepts.&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;H3 align=left&gt;The header:&lt;/H3&gt;
&lt;P align=left&gt;The header displays branding information (which can be customized for your company), &amp;nbsp;the&amp;nbsp;contextual&amp;nbsp;help link and the current location. On the screenshot below, I am on the Home page. You can always come back to the home page by clicking on the "Home" icon at the left of the header.&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG alt="BAM Portal Header" src="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_Header.jpg" width=700 align=baseline border=0&gt;&lt;/P&gt;
&lt;H3 align=left&gt;The navigation bar:&lt;/H3&gt;
&lt;P align=left&gt;The navigation bar displays all views / activities which can be accessed by the current user. On the picture below, I have access to one view (SalesManagerView) under which there is currently one activity ("PurchaseOrder").&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG alt="Navigation Bar" src="http://frenchgilles.members.winisp.net/blog/BAMPortal/BAMPortal_NavBar.jpg"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=left&gt;I can search for instances of activity&amp;nbsp;"PurchaseOrder" by clicking on&amp;nbsp;"PurchaseOrder" under "Activity Search". I can view aggregated data by clicking on one of the entries under "Aggregations". Finally, I can manage alerts by clicking on "PurchaseOrder" under the "Alert Manager" node. The navigation bar is the main entry point to most BAM Portal features. It will always be displayed on the left of the window.&lt;/P&gt;
&lt;P align=left&gt;Join me tomorow as I explore the Activity Search, Aggregations and the Alert Manager.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=428808" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category></item><item><title>Get ready for TechEd 2005 in Orlando!</title><link>http://blogs.msdn.com/b/gzunino/archive/2005/06/04/425222.aspx</link><pubDate>Sat, 04 Jun 2005 22:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:425222</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=425222</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2005/06/04/425222.aspx#comments</comments><description>&lt;P&gt;Make sure you &lt;a href="https://blogs.msdn.com:443/scottwoo/archive/2005/06/02/424428.aspx"&gt;&lt;STRONG&gt;pick up a copy of BizTalk Server 2006 CTP (Community Technology Preview)&lt;/STRONG&gt;&lt;/A&gt;. Starting next week, I will start a serie of deep dive posts on some of the new BAM (Business Activity Monitoring) features ... Staty tuned!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=425222" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category></item><item><title>Download BizTalk 2004 Service Pack 1 today!</title><link>http://blogs.msdn.com/b/gzunino/archive/2005/01/26/361167.aspx</link><pubDate>Thu, 27 Jan 2005 02:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:361167</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=361167</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2005/01/26/361167.aspx#comments</comments><description>&lt;P&gt;BizTalk Server 2004 Service Pack 1 was released today. You can download it at &lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=f4a5ab9e-d599-4cc8-abdf-ae6ae68bac3d"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=f4a5ab9e-d599-4cc8-abdf-ae6ae68bac3d&lt;/A&gt;.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=361167" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category></item><item><title>Is BizTalk supported when running under Virtual PC / Virtual Server?</title><link>http://blogs.msdn.com/b/gzunino/archive/2004/09/28/235525.aspx</link><pubDate>Wed, 29 Sep 2004 00:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:235525</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=235525</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2004/09/28/235525.aspx#comments</comments><description>&lt;P&gt;Since Virtual Server has been released, I got asked the question several times so I figured I'd put the answer here where everybody can find it.&amp;nbsp;&lt;STRONG&gt;&lt;A href="http://support.microsoft.com/?id=842301"&gt;Knowledge Base Article 842301&lt;/A&gt;&lt;/STRONG&gt; says something like:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Current released versions of BizTalk (2000, 2002 ,2004) in any flavor (Enterprise,&amp;nbsp;Developer ...) are "best effort support" on virtual machines (Virtual PC and Virtual Server). Any case opened with Microsoft Support will be supported on a best effort basis and you may be asked to reproduce the problem on physical hardware during the course of troubleshooting the issue.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Not supported does not mean that it will not run: it may very well run fine or you may run into subtle issues. Not long ago a Microsoft Technology Specialist attempted to run BizTalk on a three weeks development project. According to him, this is not worth wasting the effort again. They ran into issues and none of them reproduced on real hardware. I am sure we can find individuals who have been running BizTalk on Virtual PC / Virtual Server&amp;nbsp;without any problem so far. It probably depends on what you are doing.&lt;/P&gt;
&lt;P&gt;If you feel lucky and want to try it out by yourself, this &lt;STRONG&gt;&lt;A href="http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;threadm=OkmKY%23ZGEHA.3984%40TK2MSFTNGP10.phx.gbl&amp;rnum=3&amp;prev=/groups%3Fq%3Dbiztalk%2Bon%2Bvirtual%2Bpc%26hl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3DOkmKY%2523ZGEHA.3984%2540TK2MSFTNGP10.phx.gbl%26rnum%3D3"&gt;thread&lt;/A&gt;&lt;/STRONG&gt; (chosen among many others) discusses some tips that might help you. While running&amp;nbsp;a BizTalk server on a virtual machine for development purposes&amp;nbsp;might be fine, I would definitely advise against running a production server under a virtual machine.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=235525" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category></item><item><title>[KB838454] Access tracked messages in the BizTalk 2004 message box</title><link>http://blogs.msdn.com/b/gzunino/archive/2004/09/28/235299.aspx</link><pubDate>Tue, 28 Sep 2004 17:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:235299</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=235299</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2004/09/28/235299.aspx#comments</comments><description>&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;838454"&gt;Knowledge Base Article 838454&lt;/A&gt;&lt;/STRONG&gt; describes the new &lt;FONT face="Courier New"&gt;Microsoft.BizTalk.MessageBoxOM.MessageArchive&lt;/FONT&gt; object that was added to &lt;FONT face="Courier New"&gt;Microsoft.BizTalk.MessageBoxOM.dll&lt;/FONT&gt;. Currently, the package is only available through Microsoft Support.&lt;/P&gt;
&lt;P&gt;There are a few things that this KB Article does not describe: remember that the &lt;FONT face="Courier New"&gt;Microsoft.BizTalk.MessageBoxOM.dll&lt;/FONT&gt; file is in the GAC. Currently, Visual Studio.NET 2003 does not allow you to add references to components in the GAC. To get past this, you can choose one alternative between these two solutions:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1 - Extract the dll from the GAC to a place where you can add reference to it (perhaps C:\&amp;lt;yourprojectdirectory&amp;gt;)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In a DOS prompt, run the following command:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;copy %systemroot%\assembly\GAC\Microsoft.BizTalk.MessageBoxOM\3.0.1.0__31bf3856ad364e35\Microsoft.BizTalk.MessageBoxOM.dll &amp;lt;destination_path&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Where &amp;lt;destination_path&amp;gt; has been replaced by the path to your BizTalk project's directory (for instance C:\MyProject)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2 - Manually edit the Visual Studio Project file (.csproj, .btsproj, .etc)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;To add a reference to this assembly you must edit the project file (.csproj, .btproj, .etc) in a text editor. The following code snippet shows the code that must be added to the reference element of the project file to reference the assembly:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;Reference&lt;BR&gt;&amp;nbsp;&amp;nbsp; Name = "Microsoft.BizTalk.MessageBoxOM"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssemblyName = "Microsoft.BizTalk.MessageBoxOM"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HintPath = "&amp;lt;SystemRoot&amp;gt;\assembly\GAC\Microsoft.BizTalk.MessageBoxOM\3.0.1.0__31bf3856ad364e35\Microsoft.BizTalk.MessageBoxOM.dll"&lt;BR&gt;/&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=235299" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category></item><item><title>How do I work around "Empty choice is unsatisfiable if minOccurs not equal to 0. An error occured at file://[some path to XSD]"?</title><link>http://blogs.msdn.com/b/gzunino/archive/2004/09/24/234083.aspx</link><pubDate>Fri, 24 Sep 2004 22:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:234083</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=234083</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2004/09/24/234083.aspx#comments</comments><description>&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;frame=right&amp;th=3f6271d93bd4923c&amp;seekm=u3L7sIHWEHA.3788%40cpmsftngxa10.phx.gbl#s"&gt;You might have received this error message&lt;/A&gt;&lt;/STRONG&gt; if you followed these steps:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Install BizTalk 2004 on a clean machine with Visual Studio .NET 2003,&lt;/LI&gt;
&lt;LI&gt;Start Visual Studio and Create a new C# project (Windows Application for instance),&lt;/LI&gt;
&lt;LI&gt;Save the solution/Project,&lt;/LI&gt;
&lt;LI&gt;Right click on the project name in the solution explorer and select "Add-&amp;gt; New Item ...",&lt;/LI&gt;
&lt;LI&gt;Click "Data Set" and press "OK",&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;You see the following error message (the path under the white box is the path to the XSD that has been created when you inserted the DataSet):&lt;/P&gt;
&lt;CENTER&gt;&lt;IMG src="http://frenchgilles.members.winisp.net/blog/DataSetError.JPG"&gt;&lt;/CENTER&gt;
&lt;CENTER&gt;&amp;nbsp;&lt;/CENTER&gt;
&lt;P&gt;When you install BizTalk, there is a component called "BizTalk developer tools". This component contains all the logic to integrate with Visual Studio .NET 2003: pipeline designer, BizTalk Explorer and among many other things, a schema editor. &lt;/P&gt;
&lt;P&gt;The error you are seeing is because the BizTalk Editor is trying to edit a DataSet schema and got confused. To workaround this, you have to ensure that DataSet schemas are opened with the Visual Studio Schema Editor and not the BizTalk Schema Editor. Here are two different&amp;nbsp;workarounds:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Bypass the BizTalk Schema Editor &amp;nbsp;when editing the schema (works around the problem once)&lt;/LI&gt;
&lt;LI&gt;Reset the default editor to the Visual Studio Schema Editor instead of the BizTalk Schema editor (puts the Visual Studio Schema Editor back as the default XSD editor)&lt;/LI&gt;&lt;/OL&gt;&lt;STRONG&gt;Bypass the BizTalk Schema Editor when editing the DataSet:&lt;/STRONG&gt; 
&lt;OL&gt;
&lt;LI&gt;Open the solution in VS.NET 2003&lt;/LI&gt;
&lt;LI&gt;Insert the DataSet as explained above (steps 4 and 5). You see the error, but you also see that the DataSet item was created and added to the solution explorer&lt;/LI&gt;
&lt;LI&gt;Click "OK" to close the error box&lt;/LI&gt;
&lt;LI&gt;In the solution explorer, locate the schema and right click on it&lt;/LI&gt;
&lt;LI&gt;Select "Open With ..."&lt;/LI&gt;
&lt;LI&gt;In the dialog box, select "XML Schema editor" and click "Open"&lt;BR&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;STRONG&gt;Set the Visual Studio Schema Editor back to default editor:&lt;/STRONG&gt; 
&lt;OL&gt;
&lt;LI&gt;Follow the steps 1 to 5 above&lt;/LI&gt;
&lt;LI&gt;In the "Select XML Schema Editor" dialog box, select "XML Schema Editor" and click "Set as default".&lt;/LI&gt;
&lt;LI&gt;Press OK to open the DataSet&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ravi, I hope this page helped you in case &lt;STRONG&gt;&lt;A href="http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;frame=right&amp;th=3f6271d93bd4923c&amp;seekm=u3L7sIHWEHA.3788%40cpmsftngxa10.phx.gbl#s"&gt;you missed&lt;/A&gt;&lt;/STRONG&gt; my &lt;STRONG&gt;&lt;A href="http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;frame=right&amp;th=7d5e8dc960ed05f7&amp;seekm=94E5D640-7194-442C-87A7-5D2DFD9EB61D%40microsoft.com#s"&gt;answer in another group&lt;/A&gt;&lt;/STRONG&gt;.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=234083" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category></item><item><title>Why does BizTalk display "Status unavailable" for Isolated Hosts?</title><link>http://blogs.msdn.com/b/gzunino/archive/2004/09/23/233445.aspx</link><pubDate>Thu, 23 Sep 2004 16:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:233445</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=233445</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2004/09/23/233445.aspx#comments</comments><description>&lt;P&gt;Yet another frequently asked question. When using the BizTalk 2004 Administration Console, isolated hosts always report "Status unavailable" (see below).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;CENTER&gt;&lt;IMG src="http://frenchgilles.members.winisp.net/blog/StatusUnavail.JPG"&gt;&lt;/CENTER&gt;
&lt;CENTER&gt;&amp;nbsp;&lt;/CENTER&gt;
&lt;DIV align=left&gt;BizTalk Server 2004 offers two kind of hosts: In-Process Hosts and Isolated Hosts. In-Process Hosts run in the same process as BizTalk and can be used to run orchestrations, run any send adapter and run the MSMQ or FILE receive adapters. Isolated Hosts can only run HTTP/HTTPS/SOAP receive adapters. From a pragmatic point of view, an Isolated Host is essentially an ISAPI extension running under the control of IIS. In BizTalk 2004, this ISAPI is called &lt;STRONG&gt;BTSHTTPReceive.dll&lt;/STRONG&gt;. The documentation page&amp;nbsp;"&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/operations/htm/ebiz_ops_hosts_fxzx.asp"&gt;&lt;STRONG&gt;About Hosts&lt;/STRONG&gt;&lt;/A&gt;" explains:&lt;/DIV&gt;
&lt;DIV align=left&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;EM&gt;Isolated hosts primarily host adapters that must run outside of the normal BizTalk Server runtime process. For example, you use isolated hosts to host adapters for external processes such as ISAPI extensions and ASP.NET.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;[...]&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;The status of an isolated host is always &lt;B&gt;Status Unavailable&lt;/B&gt;. BizTalk Server does not access the status information for external processes. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV align=left&gt;So it is absolutely normal for an isolated host to report "Status unavailable". It should not happen for an in-process host.&lt;/DIV&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=233445" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category></item><item><title>Format of BizTalk 2004 assemblies: Pipelines</title><link>http://blogs.msdn.com/b/gzunino/archive/2004/09/22/232886.aspx</link><pubDate>Wed, 22 Sep 2004 16:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:232886</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=232886</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2004/09/22/232886.aspx#comments</comments><description>&lt;P&gt;Today, we continue our deep dive&amp;nbsp;into&amp;nbsp;the undocumented and unsupported bowels of the BizTalk artifacts compiler and examine how pipelines get compiled to .NET assemblies. &lt;A href="http://msdn.microsoft.com/library/en-us/introduction/htm/ebiz_intro_story_fqna.asp?frame=true"&gt;&lt;STRONG&gt;Pipelines&lt;/STRONG&gt;&lt;/A&gt; allow to adjust the format of inbound messages to something that is suitable for processing.&amp;nbsp;There are two kind of pipelines: Send Pipelines or Receive Pipelines.&amp;nbsp;The following picture shows a&amp;nbsp;composite picture with a receive pipeline (left) and a send pipeline (right) being edited in Visual Studio. &lt;/P&gt;
&lt;CENTER&gt;&lt;IMG src="http://frenchgilles.members.winisp.net/blog/PipelineFormat/Pipelines.JPG"&gt;&lt;/CENTER&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It is time to dive a little deeper into the generated class.&amp;nbsp;Compiling any Send or Receive Pipeline and loading it into&amp;nbsp;the excellent &lt;STRONG&gt;&lt;A href="http://www.aisto.com/roeder/dotnet"&gt;Lutz Roeder's .NET Reflector&lt;/A&gt;&lt;/STRONG&gt;&amp;nbsp;shows the following:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG src="http://frenchgilles.members.winisp.net/blog/PipelineFormat/PipelineReflector.JPG"&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We already know that when a BizTalk project is compiled, &lt;A href="http://weblogs.asp.net/gzunino/archive/2004/09/20/232003.aspx"&gt;&lt;STRONG&gt;Pipelines are compiled to a public sealed class type&amp;nbsp;into a&amp;nbsp;.NET assembly&lt;/STRONG&gt;&lt;/A&gt;. The class inherits from &lt;FONT face="Courier New"&gt;Microsoft.XLANGs.BaseTypes.PipelineBase&lt;/FONT&gt; (contained in &lt;FONT face="Courier New"&gt;Microsoft.XLANGs.BaseTypes.dll&lt;/FONT&gt;, available in &lt;FONT face="Courier New"&gt;&amp;lt;BTS Installation Directory&amp;gt;). &lt;/FONT&gt;This class is &lt;STRONG&gt;&lt;A href="http://msdn.microsoft.com/library/en-us/sdk/htm/ebiz_sdk_undocumented_syni.asp?frame=true"&gt;not supported as explained by this page&lt;/A&gt;&lt;/STRONG&gt;&amp;nbsp;(look at the bottom of the page). To compile a Pipeline, BizTalk generates and compiles a class close to the following C# class:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=lightcoral family="Microsoft Sans Serif"&gt;namespace&lt;/FONT&gt; &lt;STRONG&gt;&lt;U&gt;&amp;lt;projectName&amp;gt;&lt;/U&gt;&lt;/STRONG&gt; {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;public&lt;/FONT&gt; &lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;sealed&lt;/FONT&gt; &lt;FONT color=blue family="Microsoft Sans Serif"&gt;class&lt;/FONT&gt; &lt;U&gt;&lt;STRONG&gt;&amp;lt;nameOfPipelineFile&amp;gt;&lt;/STRONG&gt;&lt;/U&gt; : Microsoft.XLANGs.BaseTypes.PipelineBase {&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;public&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;nameOfPipelineFile&amp;gt;() { }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;public&lt;/FONT&gt; &lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;override&lt;/FONT&gt; Guid&amp;nbsp;&amp;nbsp; VersionDependantGuid&amp;nbsp;&amp;nbsp; { get { &lt;FONT color=blue family="Microsoft Sans Serif"&gt;return&lt;/FONT&gt; &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; Guid(&lt;FONT color=hotpink family="Microsoft Sans Serif"&gt;"&lt;U&gt;&lt;STRONG&gt;&amp;lt;someGuid&amp;gt;&lt;/STRONG&gt;&lt;/U&gt;"&lt;/FONT&gt;); }&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;public&lt;/FONT&gt; &lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;override&lt;/FONT&gt; &lt;FONT color=blue family="Microsoft Sans Serif"&gt;string&lt;/FONT&gt; XmlContent&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { get { &lt;FONT color=blue family="Microsoft Sans Serif"&gt;return&lt;/FONT&gt; &lt;FONT color=hotpink family="Microsoft Sans Serif"&gt;"&lt;STRONG&gt;&lt;U&gt;&amp;lt;contentOfBTPFile&amp;gt;&lt;/U&gt;&lt;/STRONG&gt;"&lt;FONT color=#000000&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp; }&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // --------------------------------&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#008000&gt;// Private const properties not shown go here&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // --------------------------------&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;To simplify, I have omitted the private constant members of the class. All the bold underlined words surrounded by angle brackets are placeholders that have to be replaced by an actual string adequate for the pipeline being compiled. Let look at the properties a little more closely:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;VersionDependentGuid&lt;/STRONG&gt;: Guid of the Pipeline, dependent of the version of the Pipeline.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;XmlContent&lt;/STRONG&gt;: The actual Pipeline definition, as an XML string. This is the content of the .btp file that was produced by the pipeline editor.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The base class &lt;FONT face="Courier New"&gt;Microsoft.XLANGs.BaseTypes.PipelineBase&lt;/FONT&gt; is abstract&amp;nbsp;and contains only&amp;nbsp;the properties outlined above. Alert readers have probably already noticed that the property "XmlContent" appears also on &lt;STRONG&gt;&lt;A href="http://weblogs.asp.net/gzunino/archive/2004/09/21/232429.aspx"&gt;Maps as shown in my previous post&lt;/A&gt;&lt;/STRONG&gt;. This is not a coincidence. It is used by the &lt;A href="http://weblogs.asp.net/gzunino/archive/2004/06/13/154808.aspx"&gt;&lt;STRONG&gt;BizTalk assembly viewer&lt;/STRONG&gt;&lt;/A&gt; and other tools to get a representation of the artifact in XML.&lt;/P&gt;
&lt;P&gt;Remember that this post contains mostly undocumented, unsupported information. This content is provided "AS IS" and&amp;nbsp;for entertainment purpose only. Further versions of BizTalk may change the ways things&amp;nbsp;get compiled and relying on low&amp;nbsp;level details like the ones outlined before will cause your application to break.&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=232886" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category></item><item><title>How do I reuse BizTalk 2004 maps outside of BizTalk?</title><link>http://blogs.msdn.com/b/gzunino/archive/2004/09/21/232629.aspx</link><pubDate>Wed, 22 Sep 2004 01:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:232629</guid><dc:creator>Gilles Zunino</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/gzunino/rsscomments.aspx?WeblogPostID=232629</wfw:commentRss><comments>http://blogs.msdn.com/b/gzunino/archive/2004/09/21/232629.aspx#comments</comments><description>&lt;P&gt;Recently, I shed some light on &lt;STRONG&gt;&lt;A href="http://weblogs.asp.net/gzunino/archive/2004/09/21/232429.aspx"&gt;how Maps are compiled to .NET assemblies&lt;/A&gt;&lt;/STRONG&gt;. Perhaps one of the most asked question on microsoft.public.biztalk.* is "&lt;A href="http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;frame=right&amp;th=fa36974001223cdb&amp;seekm=270F56F1-D1EF-4FCA-BF9A-233B79CAE4B3%40microsoft.com#s"&gt;&lt;STRONG&gt;Calling a map from C# or VB.NET?&lt;/STRONG&gt;&lt;/A&gt;". This post attempts to answer that question and clarifies a few things.&lt;/P&gt;
&lt;P&gt;It is possible to run a map produced by the BizTalk 2004 mapper outside of BizTalk and it is even possible; under certain conditions; to run the map on a machine that does not have BizTalk installed. The steps required for using a map outside of BizTalk are outlined below:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Extract the XSL document produced by the mapper,&lt;/LI&gt;
&lt;LI&gt;If the map uses &lt;A href="http://msdn.microsoft.com/library/en-us/sdk/htm/ebiz_prog_map_djtt.asp?frame=true"&gt;&lt;STRONG&gt;functoids&lt;/STRONG&gt;&lt;/A&gt; (out of the box or custom functoids), you will need to extract the Xsl Transformation arguments,&lt;/LI&gt;
&lt;LI&gt;Create a .NET &lt;STRONG&gt;&lt;A href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemxmlxslxsltransformclasstopic.asp?frame=true"&gt;System.Xml.Xsl.XslTransfom()&lt;/A&gt;&lt;/STRONG&gt; object,&lt;/LI&gt;
&lt;LI&gt;Create a .NET &lt;A href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemxmlxslxsltargumentlistclasstopic.asp?frame=true"&gt;&lt;STRONG&gt;System.Xml.Xsl.XsltArgumentList()&lt;/STRONG&gt;&lt;/A&gt; if there were any functoids in the map and instantiate appropriate objects,&lt;/LI&gt;
&lt;LI&gt;Call &lt;A href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemxmlxslxsltransformclasstransformtopic.asp?frame=true"&gt;&lt;STRONG&gt;Transform()&lt;/STRONG&gt;&lt;/A&gt; on the XSL and optionally, the XsltArgumentList.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;In the list of steps above&amp;nbsp;3, parts of 4 and 5 have nothing to do with BizTalk: these are just plain .NET programming. Creating the XsltArgumentList requires us to understand how the mapper saves functoids.&lt;/P&gt;
&lt;P&gt;Extracting the XSL and the extension objects (if any) can be achieved by at least three different methods:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;If you have the map file (.btm) and can open it in Visual Studio 2003, you can right click on the map file in the solution explorer and select "Validate Map". The output window will give you the path(s) to the XSL and the extension Object XML. The links can be shift-clicked to retrieve the files,&lt;/LI&gt;
&lt;LI&gt;If you only have the compiled assembly, you can use the excellent Lutz Roeder's .NET Reflector to &lt;STRONG&gt;&lt;A href="http://weblogs.asp.net/gzunino/archive/2004/09/21/232429.aspx"&gt;extract the required information as strings&lt;/A&gt;&lt;/STRONG&gt;,&lt;/LI&gt;
&lt;LI&gt;If you&amp;nbsp;only&amp;nbsp;have the compiled assembly, you can write some code that loads the assembly, creates an instance of the&amp;nbsp;map object and calls the appropriate members.&amp;nbsp;See &lt;STRONG&gt;&lt;A href="http://weblogs.asp.net/gzunino/archive/2004/09/21/232429.aspx"&gt;the format of maps assemblies&lt;/A&gt;&lt;/STRONG&gt;.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;The only speed bump is the format of the Extension Object XML document. I have extracted the extension associated with the map &lt;FONT face="Courier New"&gt;Scriptor_CallExternalAssembly&lt;/FONT&gt; from the "&lt;STRONG&gt;&lt;A href="http://msdn.microsoft.com/library/en-us/sdk/htm/ebiz_sdk_samples_xmltools_eprq.asp?frame=true"&gt;ExtendingMapper&lt;/A&gt;&lt;/STRONG&gt;" SDK sample and formatted it:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;ExtensionObjects&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;ExtensionObject Namespace="&lt;/FONT&gt;&lt;A href="http://schemas.microsoft.com/BizTalk/2003/ScriptNS0"&gt;&lt;FONT face="Courier New"&gt;http://schemas.microsoft.com/BizTalk/2003/ScriptNS0&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New"&gt;"&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssemblyName="Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary,&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version=1.0.0.0, Culture=neutral,&amp;nbsp;PublicKeyToken=f2aaad746c3d94f5"&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ClassName="Microsoft.Samples.BizTalk.ExtendingMapper.MapperHelper" /&amp;gt;&amp;nbsp;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;lt;/ExtensionObjects&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Creating the extension objects is now very simple. For each "ExtensionObject" node, we need to load the assembly, create an instance of the given class and add the object along with its namespace to the XsltArgumentList. Of course, the map will only run if all needed assemblies are available. This is true for custom assemblies as well as out of the box functoids. The code below does exactly this and the full solution can be downloaded &lt;STRONG&gt;&lt;A href="http://frenchgilles.members.winisp.net/blog/Files/MapReuser/MapReuser.zip"&gt;here&lt;/A&gt;&lt;/STRONG&gt;:&lt;/P&gt;&lt;PRE&gt;&lt;FONT color=lightcoral family="Microsoft Sans Serif"&gt;using&lt;/FONT&gt; System;
&lt;FONT color=lightcoral family="Microsoft Sans Serif"&gt;using&lt;/FONT&gt; System.Reflection;
&lt;FONT color=lightcoral family="Microsoft Sans Serif"&gt;using&lt;/FONT&gt; System.Xml;
&lt;FONT color=lightcoral family="Microsoft Sans Serif"&gt;using&lt;/FONT&gt; System.Xml.Xsl;
&lt;FONT color=lightcoral family="Microsoft Sans Serif"&gt;using&lt;/FONT&gt; System.IO;
&lt;FONT color=lightcoral family="Microsoft Sans Serif"&gt;using&lt;/FONT&gt; System.Text;


&lt;FONT color=lightcoral family="Microsoft Sans Serif"&gt;namespace&lt;/FONT&gt; MapReuser
{
	&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;summary&amp;gt;&lt;/FONT&gt;
	&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// Transforms XML instances using a BizTalk map.&lt;/FONT&gt;
	&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;/summary&amp;gt;&lt;/FONT&gt;
	&lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;public&lt;/FONT&gt; &lt;FONT color=blue family="Microsoft Sans Serif"&gt;class&lt;/FONT&gt; BizTalkMap
	{
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// Caches the XSLT stream.&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;/summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;private&lt;/FONT&gt; Stream xsltStream;

		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// Caches the XSLT Arguments stream.&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;/summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;private&lt;/FONT&gt; Stream xsltArguments;
		

		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// Cache the XslTransform.&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;/summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;private&lt;/FONT&gt; XslTransform     xslTransform;

		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// Caches the XSltArgumentList.&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;/summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;private&lt;/FONT&gt; XsltArgumentList xslArgumentList;




		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// Constructor.&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;/summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;param name="XsltStream"&amp;gt;Stream of XSLT as XML.&amp;lt;/param&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;param name="XsltArguments"&amp;gt;Stream of Extension Objects as XML.&amp;lt;/param&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;public&lt;/FONT&gt; BizTalkMap(Stream XsltStream, Stream XsltArguments)
		{
			xsltStream    = XsltStream;
			xsltArguments = XsltArguments;
		}

		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// Transforms the given instance and returns the result as a stream.&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;/summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;param name="inXml"&amp;gt;Stream of the instance to transform (XML)&amp;lt;/param&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;returns&amp;gt;Stream of the transformed XML.&amp;lt;/returns&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;public&lt;/FONT&gt; Stream TransformInstance(Stream inXml)
		{
			XslTransform transform   = Transform;
			XmlDocument  xmlInputDoc = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; XmlDocument();

			&lt;FONT color=green family="Microsoft Sans Serif"&gt;// Make sure we do not destroy the formatting&lt;/FONT&gt;
			xmlInputDoc.Load(inXml);

			&lt;FONT color=green family="Microsoft Sans Serif"&gt;// Output stream&lt;/FONT&gt;
			MemoryStream  outStream = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; MemoryStream();
			XmlTextWriter xmlWriter = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; XmlTextWriter(outStream, System.Text.Encoding.UTF8);

			&lt;FONT color=green family="Microsoft Sans Serif"&gt;// Formatting options&lt;/FONT&gt;
			xmlWriter.Formatting  = Formatting.Indented;
			xmlWriter.Indentation = 2;
			
			&lt;FONT color=green family="Microsoft Sans Serif"&gt;// Perform transformation - We do not specify a resolver&lt;/FONT&gt;
			transform.Transform(xmlInputDoc, TransformArgs, xmlWriter, &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;);

			&lt;FONT color=green family="Microsoft Sans Serif"&gt;// Prepare the output stream&lt;/FONT&gt;
			outStream.Seek(0, SeekOrigin.Begin);

			&lt;FONT color=blue family="Microsoft Sans Serif"&gt;return&lt;/FONT&gt; outStream;
		}

		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// Gets an instance of XslTransform for the given XSL/Extension objects.&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;/summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;private&lt;/FONT&gt; XslTransform Transform
		{
			get
			{
				&lt;FONT color=blue family="Microsoft Sans Serif"&gt;if&lt;/FONT&gt; (xslTransform == &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;)
				{
					&lt;FONT color=green family="Microsoft Sans Serif"&gt;// Create a new transform&lt;/FONT&gt;
					XmlTextReader xsltReader = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; XmlTextReader(xsltStream);
					XslTransform transformTemp = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; XslTransform();
					transformTemp.Load(xsltReader, (XmlResolver) &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;, GetType().Assembly.Evidence);
					
					&lt;FONT color=green family="Microsoft Sans Serif"&gt;// Cache the transform&lt;/FONT&gt;
					xslTransform = transformTemp;
				}
				&lt;FONT color=blue family="Microsoft Sans Serif"&gt;return&lt;/FONT&gt; xslTransform;
			}
		}

		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// Gets a XsltArgumentList from a BizTalk Extension Object XML.&lt;/FONT&gt;
		&lt;FONT color=silver family="Microsoft Sans Serif"&gt;/// &amp;lt;/summary&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=lightseagreen family="Microsoft Sans Serif"&gt;private&lt;/FONT&gt; XsltArgumentList TransformArgs
		{
			get
			{
				&lt;FONT color=blue family="Microsoft Sans Serif"&gt;if&lt;/FONT&gt; (xslArgumentList == &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;)
				{
					XmlDocument      xmlExtension = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; XmlDocument();
					XsltArgumentList xslArgList   = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; XsltArgumentList();

					&lt;FONT color=blue family="Microsoft Sans Serif"&gt;if&lt;/FONT&gt; (xsltArguments != &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;)
					{
						&lt;FONT color=green family="Microsoft Sans Serif"&gt;// Load the argument list and create all the needed instances&lt;/FONT&gt;
						xmlExtension.Load(xsltArguments);
						XmlNodeList xmlExtensionNodes = xmlExtension.SelectNodes(&lt;FONT color=hotpink family="Microsoft Sans Serif"&gt;"//ExtensionObjects/ExtensionObject"&lt;/FONT&gt;);
						&lt;FONT color=blue family="Microsoft Sans Serif"&gt;foreach&lt;/FONT&gt; (XmlNode extObjNode &lt;FONT color=blue family="Microsoft Sans Serif"&gt;in&lt;/FONT&gt; xmlExtensionNodes)
						{
							XmlAttributeCollection extAttributes = extObjNode.Attributes;

							XmlNode  namespaceNode = extAttributes.GetNamedItem(&lt;FONT color=hotpink family="Microsoft Sans Serif"&gt;"Namespace"&lt;/FONT&gt;);
							XmlNode  assemblyNode  = extAttributes.GetNamedItem(&lt;FONT color=hotpink family="Microsoft Sans Serif"&gt;"AssemblyName"&lt;/FONT&gt;);
							XmlNode  classNode     = extAttributes.GetNamedItem(&lt;FONT color=hotpink family="Microsoft Sans Serif"&gt;"ClassName"&lt;/FONT&gt;);
							Assembly extAssembly   = Assembly.Load(assemblyNode.Value);
							&lt;FONT color=blue family="Microsoft Sans Serif"&gt;object&lt;/FONT&gt;   extObj        = extAssembly.CreateInstance(classNode.Value);
							xslArgList.AddExtensionObject(namespaceNode.Value, extObj);
						}
					}
					&lt;FONT color=green family="Microsoft Sans Serif"&gt;// Cache the list&lt;/FONT&gt;
					xslArgumentList = xslArgList;
				}
				&lt;FONT color=blue family="Microsoft Sans Serif"&gt;return&lt;/FONT&gt; xslArgumentList;
			}
		}
	}
}&lt;/PRE&gt;&lt;BR&gt;This class can be used as follows:&lt;BR&gt;&lt;BR&gt;&lt;PRE&gt;FileStream fsXslt       = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;;
FileStream fsInput      = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;;
FileStream fsExtensions = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;;
FileStream outStream    = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;;

&lt;FONT color=blue family="Microsoft Sans Serif"&gt;try&lt;/FONT&gt;
{
	&lt;FONT color=green family="Microsoft Sans Serif"&gt;// Transform&lt;/FONT&gt;
	fsXslt         = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; FileStream(xsltPath, FileMode.Open, FileAccess.Read);
	fsInput        = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; FileStream(instancePath, FileMode.Open, FileAccess.Read);
	fsExtensions   = (extensionPath != &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;) &amp;amp;&amp;amp; (extensionPath.Length &amp;gt; 0) ? &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; FileStream(extensionPath, FileMode.Open, FileAccess.Read) : &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;;
	BizTalkMap map = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; BizTalkMap(fsXslt, fsExtensions);

	Stream sOut = map.TransformInstance(fsInput);

	&lt;FONT color=green family="Microsoft Sans Serif"&gt;// Save stream to a file&lt;/FONT&gt;
	&lt;FONT color=blue family="Microsoft Sans Serif"&gt;string&lt;/FONT&gt; destPath = Path.Combine(Path.GetDirectoryName(instancePath), Path.GetFileName(instancePath) + &lt;FONT color=hotpink family="Microsoft Sans Serif"&gt;".trans.xml"&lt;/FONT&gt;);
	outStream = &lt;FONT color=blue family="Microsoft Sans Serif"&gt;new&lt;/FONT&gt; FileStream(destPath, FileMode.Create, FileAccess.Write);
	outStream.Write(((MemoryStream) sOut).ToArray(), 0, (&lt;FONT color=darkviolet family="Microsoft Sans Serif"&gt;int&lt;/FONT&gt;) sOut.Length);
}
&lt;FONT color=blue family="Microsoft Sans Serif"&gt;finally&lt;/FONT&gt;
{
	&lt;FONT color=blue family="Microsoft Sans Serif"&gt;if&lt;/FONT&gt; (fsXslt       != &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;) fsXslt.Close();
	&lt;FONT color=blue family="Microsoft Sans Serif"&gt;if&lt;/FONT&gt; (fsInput      != &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;) fsInput.Close(); 
	&lt;FONT color=blue family="Microsoft Sans Serif"&gt;if&lt;/FONT&gt; (fsExtensions != &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;) fsExtensions.Close();
	&lt;FONT color=blue family="Microsoft Sans Serif"&gt;if&lt;/FONT&gt; (outStream    != &lt;FONT color=blue family="Microsoft Sans Serif"&gt;null&lt;/FONT&gt;) outStream.Close(); 
}&lt;/PRE&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=232629" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/gzunino/archive/tags/BizTalk+2004/">BizTalk 2004</category></item></channel></rss>
