<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>BizBert</title>
  <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/" />
  <link rel="self" href="http://www.bizbert.com/bizbert/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2008-10-29T17:51:56.2845598-07:00</updated>
  <author>
    <name>Daniel Probert</name>
  </author>
  <subtitle />
  <id>http://www.bizbert.com/bizbert/</id>
  <generator uri="http://www.dasblog.net" version="2.0.7180.0">DasBlog</generator>
  <entry>
    <title>PDC2008: Introducing BizTalk Express, sorry, Dublin</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/10/29/PDC2008+Introducing+BizTalk+Express+Sorry+Dublin.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,a881409a-1922-4337-9262-0435d7340ab4.aspx</id>
    <published>2008-10-29T16:10:53.706-07:00</published>
    <updated>2008-10-29T17:51:56.2845598-07:00</updated>
    <category term="PDC2008" label="PDC2008" scheme="http://www.bizbert.com/bizbert/CategoryView,category,PDC2008.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Just at a session on <strike>BizTalk Express</strike>,
sorry Dublin…<br />
Dublin is a set of extensions to Web Application Server (WAS) also known as Web Process
Activation Server (also WAS) – confused yet?!<br />
Basically, Dublin allows hosting of WCF/WF services/workflows on IIS/WAS.<br />
What it adds though is UIs for Hosting, Messaging, Durability, Correlation, and Tracking<br />
Sound familiar? Yup, all things that BTS provides today.<br />
It’s early days yet – most of the advanced stuff is currently configured via PowerShell
scripts, but it shows where they’re going with it.<br /><br />
Persistence is implemented by storing message information in SQL Server.<br />
In the IIS Administration Console, you can look at suspended instances, resume them,
cancel them, etc. All stuff that seems very very familiar to a BTS dev.<br />
Correlation and filtering is achieved via XPath statements (no comments on whether
it loads the message into a DOM, or whether it supports fast–read-only forward XPath
only).<br /><br />
We’ve all received copies of Dublin with our PDC bits – I’ll be keen to see what perf
you can achieve under load. I suspect the answer is "not much".<br />
The BTS dev team spent a lot of time tuning the filtering/persistence stuff, and in
a lot of ways it seems that the Dublin team are reinventing the wheel here.<br /><br />
One cool thing shown was creating a model in Quadrant (the Oslo modelling tool) and
deploying WCF/WF apps from there to Dublin.<br /><br />
More to come as I spend time with Dublin.<br /><br /><p></p><img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=a881409a-1922-4337-9262-0435d7340ab4" /></div>
    </content>
  </entry>
  <entry>
    <title>PDC2008: Wow, look Windows 7, it’s so exci… zzzzzzzz</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/10/29/PDC2008+Wow+Look+Windows+7+Its+So+Exci+Zzzzzzzz.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,46b512d3-3abd-4562-9555-68333b88807f.aspx</id>
    <published>2008-10-29T11:34:45.847-07:00</published>
    <updated>2008-10-29T11:34:45.8470598-07:00</updated>
    <category term="PDC2008" label="PDC2008" scheme="http://www.bizbert.com/bizbert/CategoryView,category,PDC2008.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">I’m sorry, is it just me? I just can’t get
excited about <strike>Windows Vista R2</strike>, sorry, Windows 7.<br /><br /><i>[side note: Windows Vista, and Windows Server 2008 use v6.0 of the windows kernel.
Windows 7 uses v6.1 of the kernel. They’ve also upgraded Windows Server 2008 to use
v6.1 – and called this refresh Windows Server 2008 R2… but they’ve called the client
refresh Windows 7. Even though it technically is just Vista refreshed with an updated
kernel.<br />
I suspect that MS got so burnt with the Vista brand name, that they’ve been forced
to re-name it.<br />
But I wonder what the client OS which will contain v7.0 of the kernel will be called.
I suspect it won’t be Windows 8!]</i><br /><br />
So Windows 7 is pretty much Windows Vista with some new features.<br /><br />
And some of them are pretty cool (e.g. reduced resource footprint, improvements in
collaborating with connected computers/devices). But don’t be fooled into thinking
that this is a new OS, or even an evolution – it’s Vista with some new features.<br />
Which is absolutely fine – Microsoft have just managed to stabilize Vista, and are
starting to leave the early painful years behind.<br /><br />
For me, the coolest and most useful feature is the ability to boot from a VHD.<br />
Now just stop and think about what that means: there must be a thin layer of bootstrap
code which knows how to read a VHD and present to as a physical HDD/Storage Controller
to the system.<i><br />
[Note: yes, Win 7 allows you to create/mount VHDs using DiskManager, but this functionality
has been around for a while if you installed Virtual Server, although it was command-line
only.]</i><br />
I imagine this bootstrap code is pretty much the same as for Windows Hyper-V server,
which works on a similar principle i.e. booting from images, although Hyper-V does
this in a virtualised environment, allowing you to boot multiple VHDs at the same
time.<br /><br />
What I’m not clear about is if the VHD must contain an install of Win 7, or whether
you can boot any OS install. If the latter, then this is super cool.<br />
(given that there appears to be a VHD HostBusAdapter in Device Manager in Win 7, I
suspect it’s the former i.e. Win 7 only VHDs. I hope not.)<br /><br />
What this means for me: I do all of my BizTalk/Services dev in Windows Server 2003/2008.
And up to now, this has been done using Virtual PC images (running Vista 64-bit as
the host OS).<br />
But now, hopefully, I have the choice of booting my dev VHD, or running it in VPC/Virtual
Server/Hyper-V.<br /><br />
And that’s pretty cool.<br /><br /><p></p><img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=46b512d3-3abd-4562-9555-68333b88807f" /></div>
    </content>
  </entry>
  <entry>
    <title>PDC2008: New features in C#</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/10/27/PDC2008+New+Features+In+C.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,8b22e4ab-ef0f-4318-8502-6c321aaf2bd5.aspx</id>
    <published>2008-10-27T15:47:56.153-07:00</published>
    <updated>2008-10-27T15:47:56.153924-07:00</updated>
    <category term="PDC2008" label="PDC2008" scheme="http://www.bizbert.com/bizbert/CategoryView,category,PDC2008.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Just been to Anders Hejlsberg’s talk on
the future of C#, where he outlined what’s coming in C# 4.0 and (some) of what might
come in C# 5.0.<br /><br />
Importantly: C# 4.0 focuses on Dynamic Languages (i.e. the Dynamic Language Runtime
(DLR))  and concurrent programming (i.e. programming for multi-core CPUs).<br /><br />
New in C# 4.0 is support for the attic type dynamic.<br />
This allows you to specify a type which isn’t known until runtime.<br /><br />
Under the hood, it all seems to use the whole Type Invoke mechanism (i.e. reflection,
which can be very slooooooow).<br />
Which leads me to wonder: dynamics in C# 4.0 look like they’re cool in certain situations,
but you end up with perf-problems, and the possibility for difficult-to-find runtime
bugs.<br /><br />
For example, if I typed:<br /><blockquote><font face="Courier New">dynamic calc = GetCalculator();<br />
int val = calc.App(2, 10);</font><br /></blockquote>Instead of 
<br /><font face="Courier New"><br /></font><blockquote><font face="Courier New">int val = calc.Add(2, 10);</font><br /></blockquote>well.. I won’t know that there is a  bug until I get to that line
as it’s dynamically executed<br />
At least, that’s my understanding.<br />
It’ll be interesting to see how they address this.<br /><br />
In C# 5.0, Anders showed how they’re re-writing the C# compiler (csc) in managed code
– and allowing you to interact with it from code.<br />
Specifically, he showed how to dynamically generate, compile and execute code.. similar
to what CodeDOM does today, but much much cooler.<br /><br /><br /><p></p><img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=8b22e4ab-ef0f-4318-8502-6c321aaf2bd5" /></div>
    </content>
  </entry>
  <entry>
    <title>PDC2008: Microsoft unveils Windows Azure at PDC 2008</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/10/27/PDC2008+Microsoft+Unveils+Windows+Azure+At+PDC+2008.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,be0b9d52-7c9d-469f-83a2-1c8b5514ced9.aspx</id>
    <published>2008-10-27T12:49:59.232-07:00</published>
    <updated>2008-10-27T15:49:45.497674-07:00</updated>
    <category term="PDC2008" label="PDC2008" scheme="http://www.bizbert.com/bizbert/CategoryView,category,PDC2008.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Well, I’m at the Microsoft PDC (Professional
Developers Conference) 2008 at the LA Convention Center in LA.<br /><br />
The keynote session is happening at the moment – Ray Ozzie has just announced <a href="http://www.microsoft.com/azure/default.mspx" target="_blank">Windows
Azure</a>, the new name for the cloud-services platform (I had heard that they would
call is Windows Strata, but there you go!).<br /><br />
Azure look fairly cool, although the development environment is just VS.NET.<br /><br />
What’s new is that they host your services for you, including (in the future) SQL
Services i.e. hosting your databases, which will be fairly cool.<br />
When you create an Azure service in VS.NET, and then choose deploy, the service is
packaged and you’re taking to the <a href="https://lx.azure.microsoft.com/" target="_blank">Azure
Developers Portal</a>, where the service is uploaded.<br /><br />
Bear in mind that this Microsoft’s answer to Amazon Web Services (AWS) and Google
Apps – Microsoft are joining the party late, but I’m hoping that they have learnt
something by being able to watch from the sidelines.<br /><br />
I’m also interested in all the Oslo sessions – for those of us in the BizTalk world,
Oslo gives us information about what future versions of BizTalk will look like (post
BTS 2009).<br />
What’s important to realise is that Oslo is the code name for a whole suite of tools,
as opposed to a single product.<br /><br />
I imagine this means that there will be a whole lot of products that come out under
the Oslo codename/brand.<img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=be0b9d52-7c9d-469f-83a2-1c8b5514ced9" /></div>
    </content>
  </entry>
  <entry>
    <title>Aggregating messages and removing duplicates in a BizTalk Map</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/05/21/Aggregating+Messages+And+Removing+Duplicates+In+A+BizTalk+Map.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,c6da27f4-a57e-4bea-94fa-90c091eda108.aspx</id>
    <published>2008-05-21T06:42:26.219-07:00</published>
    <updated>2008-05-21T07:22:08.8755388-07:00</updated>
    <category term="BizTalk Mapper" label="BizTalk Mapper" scheme="http://www.bizbert.com/bizbert/CategoryView,category,BizTalk%2BMapper.aspx" />
    <summary>Aggregating messages is a fairly common task in BizTalk.&lt;br&gt;
By &amp;quot;aggregating&amp;quot; I mean taking two separate
messages with repeating elements and combining them into a new message which
contains the elements of both messages - the same as doing a Union in SQL.&lt;br&gt;&lt;br&gt;
However, what if you want to remove duplicates? &lt;br&gt;
It's not as easy as it seems, and in truth the only way I
have found to do this is via custom XSLT.&lt;br&gt;&lt;br&gt;
&lt;b&gt;Combining two messages&lt;/b&gt;&lt;br&gt;
This is actually fairly easy: you use...&lt;img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=c6da27f4-a57e-4bea-94fa-90c091eda108"/&gt;</summary>
  </entry>
  <entry>
    <title>System.Data.SqlXmlHelper - calling extended XPath functions from BizTalk Maps</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/03/15/SystemDataSqlXmlHelper+Calling+Extended+XPath+Functions+From+BizTalk+Maps.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,301c703a-66c4-4c17-83d5-928c289aa20a.aspx</id>
    <published>2008-03-15T04:30:27.443-07:00</published>
    <updated>2008-03-16T07:24:06.2439145-07:00</updated>
    <category term="BizTalk Mapper" label="BizTalk Mapper" scheme="http://www.bizbert.com/bizbert/CategoryView,category,BizTalk%2BMapper.aspx" />
    <summary>&lt;font size="1"&gt;In this post:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Methods in the helper class&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Notes on implementation&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Installation Instructions&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Problems with the Script Functoid&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Examples of Usage&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Download the code&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Testing the sample map&lt;/font&gt;&lt;br&gt;&lt;br&gt;
I’m not sure if this is actually of any use to anyone but if
you do want to use &lt;a
href="http://msdn2.microsoft.com/en-us/library/ms256453(VS.80).aspx" target="_new"&gt;Microsoft's 
Extended XPath Functions&lt;/a&gt; from a BizTalk Map (see my &lt;a href="http://www.bizbert.com/bizbert/2008/03/13/Using+Microsofts+Extended+XPath+Functions+In+BizTalk.aspx" target="_new"&gt;previous post&lt;/a&gt;) then
I've created a wrapper assembly to do this for you.&lt;br&gt;
Method names are the same as the original functions, but
using &amp;quot;_&amp;quot; instead of &amp;quot;-&amp;quot;.&lt;br&gt;&lt;br&gt;&lt;img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=301c703a-66c4-4c17-83d5-928c289aa20a"/&gt;</summary>
  </entry>
  <entry>
    <title>Using Microsoft's Extended XPath functions in BizTalk</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/03/13/Using+Microsofts+Extended+XPath+Functions+In+BizTalk.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,9c34d66a-5512-4f97-900f-e144e4b238e3.aspx</id>
    <published>2008-03-13T04:21:00.334-07:00</published>
    <updated>2008-03-13T05:50:53.0683995-07:00</updated>
    <category term="BizTalk Mapper" label="BizTalk Mapper" scheme="http://www.bizbert.com/bizbert/CategoryView,category,BizTalk%2BMapper.aspx" />
    <summary>It's not that well documented, but Microsoft have a bunch of
extra functions you can use from XPath expressions within XSLT.&lt;BR&gt;
You can find the documentation on them &lt;a
href="http://msdn2.microsoft.com/en-us/library/ms256453(VS.80).aspx" target="_new"&gt;here&lt;/a&gt;.&lt;BR&gt;&lt;BR&gt;
What isn't made apparent is that none of them work with &lt;span
style='font-family:"Courier New";color:#A31515'&gt;XslTransform&lt;/span&gt;:
a subset of them will work with &lt;span style='font-family:"Courier New";
color:#A31515'&gt;XslCompiledTransform&lt;/span&gt;, and the others only work with MSXML
4.0 onwards.&lt;br&gt;&lt;br&gt;
This becomes obvious if you try and use these functions, or
if you read &lt;a
href="http://blogs.msdn.com/xmlteam/articles/Introducing_XslCompiledTransform.aspx"&gt;this
blog post from the Microsoft XML team&lt;/a&gt; on the &lt;span style='
font-family:"Courier New";color:#A31515'&gt;XslCompiledTransform&lt;/span&gt; class.&lt;br&gt;&lt;br&gt;
Being the curious cat I am, I wondered if there was any way
to use the functions from within &lt;span style='font-family:"Courier New";
color:#A31515'&gt;XslTransform&lt;/span&gt; - if there was, I figured you could use the
functions in a BizTalk Map...&lt;br&gt;&lt;br&gt;&lt;img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=9c34d66a-5512-4f97-900f-e144e4b238e3"/&gt;</summary>
  </entry>
  <entry>
    <title>Understanding the BizTalk Mapper: Download the Article</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/03/01/Understanding+The+BizTalk+Mapper+Download+The+Article.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,ec3c9746-e58c-47e8-9d6f-69af9a614974.aspx</id>
    <published>2008-03-01T12:14:07.179-08:00</published>
    <updated>2008-03-03T03:32:20.9796245-08:00</updated>
    <category term="BizTalk Mapper" label="BizTalk Mapper" scheme="http://www.bizbert.com/bizbert/CategoryView,category,BizTalk%2BMapper.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">If you prefer to do your reading offline,
then you can download the entire series of 13 posts as a single 68-page Microsoft
Word document, or Adobe PDF document.<br /><br />
Get them here:<br />
     <a target="_blank" id="Understanding the BizTalk Mapper.doc" name="Understanding the BizTalk Mapper.doc" alt="Click here to download as a Word document" type="application/msword" title="Click here to download as a Word document" href="http://www.bizbert.com/bizbert/content/binary/Understanding%20the%20BizTalk%20Mapper.doc">Understanding
the BizTalk Mapper.doc (1.2MB)</a><br />
     <a target="_blank" id="Understanding the BizTalk Mapper.pdf" name="Understanding the BizTalk Mapper.pdf" alt="Click here to download as a PDF document" type="application/pdf" title="Click here to download as a PDF document" href="http://www.bizbert.com/bizbert/content/binary/Understanding%20the%20BizTalk%20Mapper.pdf">Understanding
the BizTalk Mapper.pdf (640kB)</a><br /><br />
Please let me know what you think!<br /><img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=ec3c9746-e58c-47e8-9d6f-69af9a614974" /></div>
    </content>
  </entry>
  <entry>
    <title>Understanding the BizTalk Mapper: Part 13 - Is the Mapper the best choice for Transformation in BizTalk?</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/02/29/Understanding+The+BizTalk+Mapper+Part+13+Is+The+Mapper+The+Best+Choice+For+Transformation+In+BizTalk.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,2791c069-b85d-469e-9a09-dcd71adfb418.aspx</id>
    <published>2008-02-29T08:05:35.973-08:00</published>
    <updated>2008-03-01T02:55:49.4808845-08:00</updated>
    <category term="BizTalk Mapper" label="BizTalk Mapper" scheme="http://www.bizbert.com/bizbert/CategoryView,category,BizTalk%2BMapper.aspx" />
    <summary>&lt;font size="1"&gt;
&lt;b&gt;In this section:&lt;/b&gt;&lt;br&gt;
Transformation Choices&lt;br&gt;
BizTalk Mapper&lt;br&gt;
Custom XSLT with the BizTalk Mapper&lt;br&gt;
External Transform Engine&lt;br&gt;
Transformation in code&lt;br&gt;
Which one should you use?&lt;br&gt;
&lt;/font&gt;&lt;br&gt;
&lt;b&gt;Transformation Choices&lt;/b&gt;&lt;BR&gt;
When performing transformations in BizTalk, you have four
choices (that I can think of):&lt;nt&gt;
&lt;ol style='margin-top:0cm' start=1 type=1&gt;
 &lt;li&gt;Using the BizTalk Mapper&lt;/li&gt;
 &lt;li&gt;Using a custom XSLT file with the BizTalk Mapper&lt;/li&gt;
 &lt;li&gt;Using a separate transformation engine (called from code)&lt;/li&gt;
 &lt;li&gt;Performing transformations in code&lt;/li&gt;
&lt;/ol&gt;
Each of these offers their own benefits depending on your
requirements.&lt;br&gt;&lt;BR&gt;
Normally your choice will depend on 3 factors:&lt;br&gt;
&lt;ul style='margin-top:0cm' type=disc&gt;
 &lt;li&gt;Performance&lt;/li&gt;
 &lt;li&gt;Complexity&lt;/li&gt;
 &lt;li&gt;Maintainability&lt;/li&gt;
&lt;/ul&gt;
Generally you will get one (or two) of these, at the cost of
the third.&lt;br&gt;&lt;BR&gt;
For simple transformations, you can get all three with the
Mapper using the built-in functoids.&lt;br&gt;&lt;br&gt;&lt;img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=2791c069-b85d-469e-9a09-dcd71adfb418"/&gt;</summary>
  </entry>
  <entry>
    <title>Understanding the BizTalk Mapper: Part 12 - Performance and Maintainability</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/02/26/Understanding+The+BizTalk+Mapper+Part+12+Performance+And+Maintainability.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,a47be2f4-8c65-4621-bea8-947d68118850.aspx</id>
    <published>2008-02-26T11:14:07.241-08:00</published>
    <updated>2008-02-29T12:17:33.2884195-08:00</updated>
    <category term="BizTalk Mapper" label="BizTalk Mapper" scheme="http://www.bizbert.com/bizbert/CategoryView,category,BizTalk%2BMapper.aspx" />
    <summary>&lt;font size="1"&gt;
In this section:&lt;BR&gt;
Performance&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Summary of Tests&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Testing performance in isolation (non-BizTalk)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Performance Test Results&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Measuring Memory Usage in BizTalk&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;BizTalk Memory Test Results&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Byte Arrays&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Analysing the performance results&lt;br&gt;
Maintainability&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;External XSLT&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Serialisable Classes&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Why is it so difficult to edit code in the Script functoid?&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Documentation&lt;br&gt;
&lt;/font&gt;
&lt;BR&gt;
Any large BizTalk project will likely have had the
inevitable conversations about performance and maintainability: will it be fast/sustainable
enough, and will the tech support team (or whoever looks after the code once
the developers have finished) be able to maintain it?&lt;BR&gt;&lt;BR&gt;
In this post I want to look at the performance of the
Mapper, and also look at how maintainable maps are generally.&lt;BR&gt;
&lt;BR&gt;
In order to do this, I want look at the different options
you have for executing XSLT with the Mapper, and compare this to the most
common non-Mapper mechanism for performing transformation: using serialisable
classes.&lt;BR&gt;&lt;img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=a47be2f4-8c65-4621-bea8-947d68118850"/&gt;</summary>
  </entry>
  <entry>
    <title>Understanding the BizTalk Mapper: Part 11 - Advanced Functoids</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/02/20/Understanding+The+BizTalk+Mapper+Part+11+Advanced+Functoids.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,3ae6de6c-10f8-436d-86bf-e0283bbc6af1.aspx</id>
    <published>2008-02-20T07:21:53.082-08:00</published>
    <updated>2008-02-29T12:18:28.4134195-08:00</updated>
    <category term="BizTalk Mapper" label="BizTalk Mapper" scheme="http://www.bizbert.com/bizbert/CategoryView,category,BizTalk%2BMapper.aspx" />
    <summary>Interestingly, all of the advanced functoids emit XSLT. No C# in sight at all.&lt;BR&gt;The reason for this is that the functoids in this category all perform operations best suited to trees of data i.e. XML.&lt;BR&gt;The only way to do this in C# would be to load the data into a DOM (i.e. &lt;I&gt;XmlDocument&lt;/I&gt;) or &lt;I&gt;XmlReader&lt;/I&gt;, or treat the XML as string data and search for tokens.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Note&lt;/B&gt;: this category was the one that actually started this series – I felt that if you knew the XSLT emitted by these functoids it would help understand when to use them, and what you can achieve with them.&lt;BR&gt;&lt;BR&gt;Functoids covered in this category:&lt;BR&gt;
&lt;TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=4 cellPadding=4 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD valign="middle"&gt;
Assert&lt;/TD&gt;
&lt;TD valign="middle"&gt;
Record Count&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD valign="middle"&gt;
Index&lt;/TD&gt;
&lt;TD valign="middle"&gt;
Scripting&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD valign="middle"&gt;
Iteration&lt;/TD&gt;
&lt;TD valign="middle"&gt;
Table Looping&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD valign="middle"&gt;
Looping&lt;/TD&gt;
&lt;TD valign="middle"&gt;
Table Extractor&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD valign="middle"&gt;
Mass Copy&lt;/TD&gt;
&lt;TD valign="middle"&gt;
Value Mapping&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD valign="middle"&gt;
Nil Value&lt;/TD&gt;
&lt;TD valign="middle"&gt;
Value Mapping (Flattening)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=3ae6de6c-10f8-436d-86bf-e0283bbc6af1"/&gt;</summary>
  </entry>
  <entry>
    <title>Understanding the BizTalk Mapper: Part 10 - Database Functoids</title>
    <link rel="alternate" type="text/html" href="http://www.bizbert.com/bizbert/2008/02/18/Understanding+The+BizTalk+Mapper+Part+10+Database+Functoids.aspx" />
    <id>http://www.bizbert.com/bizbert/PermaLink,guid,38c71b7a-6ca8-415d-903a-fa63cb7ebe86.aspx</id>
    <published>2008-02-18T07:20:59.051-08:00</published>
    <updated>2008-03-01T03:00:55.7308845-08:00</updated>
    <category term="BizTalk Mapper" label="BizTalk Mapper" scheme="http://www.bizbert.com/bizbert/CategoryView,category,BizTalk%2BMapper.aspx" />
    <summary>This category contains both Database and Cross Referencing Functoids – but they all connect to a database to retrieve/update data.&lt;BR&gt;Unlike all other default functoids, these functoids all call classes/methods in external assemblies – no inline C# is emitted at all. Because of this, this is the only category that emits an &lt;I&gt;ExtensionObjects&lt;/I&gt; file listing the strong names of the external assemblies used.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Note&lt;/B&gt;: in this category I show some of the source code from the external assemblies as well.&lt;BR&gt;&lt;BR&gt;
Functoids covered in this category:&lt;BR&gt;
&lt;TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=4 cellPadding=4 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD  vAlign="middle"&gt;
Database Lookup&lt;/TD&gt;
&lt;TD vAlign="middle"&gt;
Get Common Value&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD  vAlign="middle"&gt;
Error Return&lt;/TD&gt;
&lt;TD vAlign="middle"&gt;
Remove Application ID&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD  vAlign="middle"&gt;
Format Message&lt;/TD&gt;
&lt;TD vAlign="middle"&gt;
Set Common ID&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD  vAlign="middle"&gt;
Get Application ID&lt;/TD&gt;
&lt;TD vAlign="middle"&gt;
Value Extractor&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD  vAlign="middle"&gt;
Get Application Value&lt;/TD&gt;
&lt;TD vAlign="middle"&gt;
Common Code&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD  vAlign="middle"&gt;
Get Common ID&lt;/TD&gt;
&lt;TD vAlign="middle"&gt;
&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=38c71b7a-6ca8-415d-903a-fa63cb7ebe86"/&gt;</summary>
  </entry>
</feed>