Sunteți pe pagina 1din 32

<?xml version="1.0" encoding="utf-8" ?

>
<!doctype html public "-//w3c//dtd xhtml 1.1//en"
"http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="ctl00_head1"><link id="ctl00_headerlink1" rel="stylesheet"
type="text/css" href="http://i3.msdn.microsoft.com/global/global-bn1847.0.css"
/><link id="ctl00_headerlink2" rel="stylesheet" type="text/css"
href="http://i3.msdn.microsoft.com/platform/masterpages/library/library-
bn1847.0.css" />
<script language="javascript" type="text/javascript">var
jsdomain='http://i2.msdn.microsoft.com';var jsbuildnumber='-bn1847.0';</script>
<script language="javascript" type="text/javascript"
src="http://i2.msdn.microsoft.com/platform/controls/surveylauncher/resources/broke
r-bn1847.0.js" ></script>
<meta name="robots" content="noindex,nofollow" /><meta name="mn" content="1099-
10:33:05 am" /><meta name="ms.locale" content="en-us" /><meta
name="search.shortid" content="cc303238" />
<!-- looking for metadata? use the robot view instead
http://currentsite/currenturl(robot).aspx -->
<meta name="dcs.dcsuri" content="/en-us/library(d=default)/cc303238(l=en-
us,v=msdn.10).aspx" />
<link rel="stylesheet" type="text/css" href="http://i3.msdn.microsoft.com/en-
us/library/mtps-bn1847.0.css?l=en-
us&amp;i=library&amp;ct=alternateselector;cceditor;ccsection;cctageditor;collapsib
learea;contentfallback;dropdownfilter;expandcollapseall;eyebrow;footer;interactive
toolbar;irootbrand;localemanagementflyout;masthead;memberlistframeworksfilter;memb
erlistmembersfilter;mtpsloginstatus;quicklinksflyout;relatedpages;resizablearea;se
arch;surveylauncher;tabstrip;templatedflyout;toc;userrecognition;webmetrix;webtren
ds"></link><link rel="alternate" media="print" href="/en-
us/library/cc303238(printer).aspx" />
<title>
biztalk server 2006 or wf? choosing the right workflow tool for your project
</title><style type="text/css">
.ctl00_masthead1_ctl00_scopemenu_0 { background-
color:white;visibility:hidden;display:none;position:absolute;left:0px;top:0px; }
.ctl00_masthead1_ctl00_scopemenu_1 { text-decoration:none; }
.ctl00_masthead1_ctl00_scopemenu_2 { }
.ctl00_masthead1_ctl00_scopemenu_3 { border-style:none; }
.ctl00_masthead1_ctl00_scopemenu_4 { }
.ctl00_masthead1_ctl00_scopemenu_5 { }
.ctl00_masthead1_ctl00_scopemenu_6 { border-style:none; }
.ctl00_masthead1_ctl00_scopemenu_7 { }
.ctl00_masthead1_ctl00_scopemenu_8 { border-style:none; }
.ctl00_masthead1_ctl00_scopemenu_9 { }

</style></head>
<body>
<form name="aspnetform" method="post" action="/en-us/library/cc303238.aspx"
id="aspnetform">
<input type="hidden" name="__viewstate" id="__viewstate"
value="/wepdwubma9kfgjmd2qwagidd2qwbgidd2qwcaifd2qwamypzbyczg9kfgjmdw8wbh4iq3nzq2x
hc3mfh1f1awnrtglua3ngbhlvdxrtdgf0awnmaw5rx21zzg4eb1rvb2xuaxafgu1py3jvc29mdc5jb20gu
xvpy2sgtglua3mebf8hu0icamrkagkpfgiebghyzwyfey9lbi11cy9kzwzhdwx0lmfzchhkagspzbygagu
pdxyghwefc1nlyxjjacbnu0rohwafeexpylrlehrcb3htzwfyy2gfagiczgqcbw8pfgqfaquuq2xpy2sga
gvyzsb0bybzzwfyy2geceltywdlvxjsbulodhrwoi8vas5tc2rulm1py3jvc29mdc5jb20vugxhdgzvcm0
vq29udhjvbhmvu2vhcmnol3jlc291cmnlcy9zzwfyy2guz2lmzgqccq88kwanaqwukwacbqmwojaukwacf
gqebfrlehqfbdxpbwcgc3jjpsjodhrwoi8vas5tc2rulm1py3jvc29mdc5jb20vugxhdgzvcm0vq29udhj
vbhmvu2vhcmnol3jlc291cmnlcy9zcgfjzs5nawyiighlawdodd0imzaiihdpzhropsiymcivph4fvmfsd
wvlfcsabaulmdowlda6mswwojiukwacfgyfbqulu2vhcmnoie1tre4fbgucmdaecfnlbgvjdgvkz2qukwa
cfgqfbquuu2vhcmnoie1py3jvc29mdc5jb20fbgudmta1zbqraaiwbb8fbqtmaxzlifnlyxjjab8gbqmxm
tvkzaird2qwbaibdxychglpbm5lcmh0bwwfhy5orvqgrnjhbwv3b3jrierldmvsb3blcibdzw50zxjkagc
pfgiebxn0ewxlbqtozwlnahq6mnb4o2qcbq9kfgicaq9kfgqcaq9kfgycaq8pfgqec05hdmlnyxrlvxjsb
t5odhrwoi8vbxnkbi5tawnyb3nvznquy29tl2vulxvzl2xpynjhcnkvy2mzmdmymzgochjpbnrlcikuyxn
web8bbrjqcmludcbuaglzienvbnrlbnqwah4hb25jbgljawvgamf2yxnjcmlwddogv2virm9ybv9eb0nhb
gxiywnrkcdjdgwwmcrpyjenlcdwcmludgvyrnjpzw5kbhlqywdljyxhzxrtzxj2zxjeyxrhlg51bgwsbnv
sbcxmywxzzsk7fgicag8wah8fbrhqcmludgvyiezyawvuzgx5ifzlcnnpb25kagmpdxychgdwaxnpymxla
grkagupdxyehwof0gftywlsdg86p3n1ymply3q9qml6vgfsaybtzxj2zxigmjawnibvcibxriuzzibdag9
vc2luzyb0agugumlnahqgv29ya2zsb3cgvg9vbcbmb3igww91cibqcm9qzwn0jmjvzhk9vghpcybvukwgc
g9pbnrzihrvigegcgfnzsbvbibnu0roihroyxqgbwf5igludgvyzxn0ihlvdtogahr0cdovl21zzg4ubwl
jcm9zb2z0lmnvbs9lbi11cy9sawjyyxj5l2njmzazmjm4lmfzchgfaquru2vuzcbuaglzienvbnrlbnqwa
h8lbvlqyxzhc2nyaxb0oibxzwjgb3jtx0rvq2fsbgjhy2soj2n0bdawjglimscsj3nlbmruaglzugfnzsc
sr2v0u2vydmvyrgf0ysxudwxslg51bgwszmfsc2upoxycagipfgifbqueu2vuzgqcaw9kfgjmd2qwagibd
2qwagibd2qwbgypzbyczg8pfgifaqu4vhvybibzy3jpchrpbmcgb24gihrvihn1ym1pdcbhihjhdgluzyb
hbmqgc2vuzcbmzwvkymfjay5kfgqcaq8pfgifbqufq2xpy2sgdg8gumf0zsbhbmqgr2l2zsbgzwvkymfja
2rkagmpfgifcwvaawyojgdldcgny3rsmdbfawixx0zsew91df90yknvbw1lbnrzjykhpw51bgwpicrnzxq
oj2n0bdawx2limv9gbhlvdxrfdgjdb21tzw50cycplmzvy3vzkck7fgicaq8pfgifaquhq2xpy2sgysbzd
gfyigfuzcbwcm92awrligzlzwriywnrzbyczg8wbh4kq2fsbgjhy2tjrauyy3rsmdakawixjezsew91dcr
syxrpbmcxhgnuywcfiwnvbnrlbnrsyxrpbmdjyzmwmzizoe1tre4umtblbi11cx4jtwf4umf0aw5nagvka
gepzbyezg8pfgifbqudr2l2zsbmzwvkymfjaybvbib0aglzignvbnrlbnrkzaicdw8wbh8fbqrtzw5khwe
fevnlbmqgvghpcybdb250zw50hg1pbknsawvudensawnrbyibcmv0dxjuielzugfnzvjhdgvkkcjjdgwwm
f9pyjffrmx5b3v0x1jhdgluzzeilcjjdgwwmf9pyjffrmx5b3v0x2xit3b0vgv4dcisj1bszwfzzsbyyxr
lihrozsbwywdligzpcnn0licsicjjdgwwmcrpyjekrmx5b3v0iix0aglzkwrkagcpzbyczg8pzbychgvjb
gfzcwuncmvzaxphymxlqxjlyryezg8pfgqfaaulbgvmdfnly3rpb24fagicfgifcqumd2lkdgg6mzawchg
7zaicdw8wbb8abqxyawdodfnly3rpb24fagicfgieb29ua2v5dxafrsbyyv9rzxlqcmvzcyh3aw5kb3cuz
xzlbnqsicjjdgwwmf9yczffcmftcgxpdhrlciisimn0bdawx3jzmv9yyuxlznqikryiagmpdxychwxnzgq
ccw8pfgifdghkzaipdw8wah8magqwamypzbycagepfgifcau8v2fudcbtb3jlpybizxjligfyzsbzb21li
gfkzgl0aw9uywwgcmvzb3vyy2vzig9uihroaxmgdg9wawm6zaivd2qwbaibdxychxefd01uufnfrm9vdgv
yrmfkzrykagepdxyehwafee1uufnfrm9vdgvytglua3mfagiczgqcaw8pfggfbqu4jmnvchk7idiwmdggi
e1py3jvc29mdcbdb3jwb3jhdglvbi4gqwxsihjpz2h0cybyzxnlcnzlzc4faqu0wqkgmjawocagtwljcm9
zb2z0ienvcnbvcmf0aw9ulibbbgwgcmlnahrzihjlc2vydmvklh8abrrnvfbtx0zvb3rlcknvchlyawdod
b8cagjkzaifdw8wch8kbq4vy2mzmdazodkuyxnweb8bbqxuzxjtcybvzibvc2ufbqumvgvybxmgb2ygvxn
lhwafee1uufnfrm9vdgvytglua3mfagiczgqcbw8pfgofcgvcahr0cdovl3d3dy5tawnyb3nvznquy29tl
2xpynjhcnkvdg9vbgjhci8zljavdhjhzgvtyxjrcy9lbi11cy5tc3b4hwefclryywrlbwfya3mfbqukvhj
hzgvtyxjrcx8abrbnvfbtx0zvb3rlckxpbmtzhwicamrkagkpdxykhwofkmh0dha6ly93d3cubwljcm9zb
2z0lmnvbs9pbmzvl3byaxzhy3kubxnweb8bbrfqcml2ywn5ifn0yxrlbwvudb8fbrfqcml2ywn5ifn0yxr
lbwvudb8abrbnvfbtx0zvb3rlckxpbmtzhwicamrkagmpzbycagepdxykhg1bbhrlcm5hdgvuzxh0brvna
wnyb3nvznqgq29ycg9yyxrpb24fbavjahr0cdovl2kubxnkbi5tawnyb3nvznquy29tl1bsyxrmb3jtl0n
vbnryb2xzl0zvb3rlci9yzxnvdxjjzxmvbxnsb2dvlmdpzh8bbrvnawnyb3nvznqgq29ycg9yyxrpb24fa
auptvrqu19gb290zxjmb2dvhwicamrkgaifhl9fq29udhjvbhnszxf1axjlug9zdejhy2tlzxlfxxybbsj
jdgwwmcrnyxn0agvhzdeky3rsmdaku2vhcmnoqnv0dg9ubr9jdgwwmcrnyxn0agvhzdeky3rsmdaku2nvc
gvnzw51dw9kbqncmdbk7zkb5tpog3qhdn9dp7qs32r/kvu=" />

<script type="text/javascript">
//<![cdata[
function wkaddnewitemclick(){$get("ctl00_rs1_wikicontent_add").click();};
var ccs_addlinkid="ctl00_rs1_wikicontent_add";var ccs_user="";var
ccs_contenturl="http://msdn.microsoft.com/en-us/library/cc303238.aspx";//]]>
</script>

<script src="http://i2.msdn.microsoft.com/platform/cjs/silverlight-bn1847.0.js"
type="text/javascript"></script>
<script type="text/javascript">
//<![cdata[
var search_masterpagetype="library";var gdomain="m.webtrends.com";
var gdcsid="dcsmgru7m99k7mqmgrhudo0k8_8c6m";
var gfpc="wt_fpc";
/*<![cdata[*/
if(document.cookie.indexof(gfpc+"=")==-1){document.write("<scr"+"ipt
type='text/javascript'
src='"+"http"+(window.location.protocol.indexof('https:')==0?'s':'')+"://"+gdomain
+"/"+gdcsid+"/wtid.js"+"'><\/scr"+"ipt>");}
/*]]>*/
var detectedlocale = 'en-us';
var wtsp="msdnlib_dotnet";
var gtrackevents = 0;
//]]>
</script>

<script src="/webresource.axd?d=azcthbhdgd-jcpho7mjktg2&amp;t=633422327986397412"
type="text/javascript"></script>
<script type="text/javascript">
//<![cdata[
function ra_onresizeableareatoggle(iscollapsing) {}var ra_widthcookiename =
"tocwidth"; var ra_collapsedcookiename = "toccollapsed";//]]>
</script>

<script
src="http://i2.msdn.microsoft.com/platform/cjs/extract/system.web.extensions/3.5.0
.0/3.5.21022.8/microsoftajax.en-us.js" type="text/javascript"></script>
<script
src="http://i2.msdn.microsoft.com/platform/cjs/extract/ajaxcontroltoolkit/3.0.1111
9.29307/3.0.11119.0/ajaxcontroltoolkit.compat.timer.timer.js"
type="text/javascript"></script>
<script
src="http://i2.msdn.microsoft.com/platform/cjs/extract/ajaxcontroltoolkit/3.0.1111
9.29307/3.0.11119.0/ajaxcontroltoolkit.common.common.js"
type="text/javascript"></script>
<script
src="http://i2.msdn.microsoft.com/platform/cjs/extract/ajaxcontroltoolkit/3.0.1111
9.29307/3.0.11119.0/ajaxcontroltoolkit.animation.animations.js"
type="text/javascript"></script>
<script
src="http://i2.msdn.microsoft.com/platform/cjs/extract/ajaxcontroltoolkit/3.0.1111
9.29307/3.0.11119.0/ajaxcontroltoolkit.extenderbase.basescripts.en.js"
type="text/javascript"></script>
<script
src="http://i2.msdn.microsoft.com/platform/cjs/extract/ajaxcontroltoolkit/3.0.1111
9.29307/3.0.11119.0/ajaxcontroltoolkit.animation.animationbehavior.js"
type="text/javascript"></script>
<script
src="http://i2.msdn.microsoft.com/platform/cjs/extract/ajaxcontroltoolkit/3.0.1111
9.29307/3.0.11119.0/ajaxcontroltoolkit.popupextender.popupbehavior.js"
type="text/javascript"></script>
<script
src="http://i2.msdn.microsoft.com/platform/cjs/extract/ajaxcontroltoolkit/3.0.1111
9.29307/3.0.11119.0/ajaxcontroltoolkit.autocomplete.autocompletebehavior.js"
type="text/javascript"></script>
<script
src="http://i2.msdn.microsoft.com/platform/cjs/extract/microsoft.mtps.web.ui/3.805
.1847.0/0.0.0.0/microsoft.mtps.web.ui.mtpsrating.mtpsratingbehavior.js"
type="text/javascript"></script>
<script
src="http://i2.msdn.microsoft.com/platform/cjs/extract/microsoft.mtps.web.ui/3.805
.1847.0/0.0.0.0/microsoft.mtps.web.ui.collapsiblepanel.collapsiblepanelbehavior.js
" type="text/javascript"></script>

<div id="rheader">

<div class="mastheadfontbase">
<div>
<div class="globalbar">
<div class="teaser">

</div>
<div class="globalbarright">
<div class="localeflyout">
<div class="localemanagementflyoutstatic"
style="position:relative;" id="ctl00$masthead1$localemanagement$ctl00"><a
class="localemanagementflyoutstaticlink" href="javascript:void(0)">united states -
english&nbsp;</a><img class="localemanagementflyoutpoparrow"
src="http://i.msdn.microsoft.com/platform/controls/localemanagementflyout/resource
s/popdownarrow.gif" alt="dropdown arrow" height="4" width="7" border="0" /><div
id="ctl00$masthead1$localemanagement$ctl00_popup"
class="localemanagementflyoutpopup" style="position:
absolute;visibility:hidden;left:-65534px;">
<table border="0" width="175">
<tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl05','')">
argentina (español)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl06','')">
australia (english)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl07','')">
brasil (português)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl08','')">
canada (english)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl09','')">
canada (français)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl10','')">
中国 (简体中文)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl11','')">
colombia (español)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl12','')">
deutschland (deutsch)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl13','')">
españa (español)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl14','')">
france (français)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl15','')">
india (english)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl16','')">
italia (italiano)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl17','')">
méxico (español)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl18','')">
perú (español)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl19','')">
Россия (pусский)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl20','')">
united kingdom (english)</a></td>
</tr><tr>
<td><a
href="javascript:__dopostback('ctl00$masthead1$localemanagement$ctl00$ctl21','')">
united states (english)</a></td>
</tr><tr>
<td class="localemanagementflyoutpopuphr"></td>
</tr><tr>
<td><a href="/en-
us/preferences/lang/default.aspx">more...</a></td>
</tr>
</table></div><div id="ctl00$masthead1$localemanagement$ctl00_anim"
class="tflypopupanimate"></div>
</div>

</div>
<div class="sitemap">
<div class="quicklinksflyoutstatic_msdn"
style="position:relative;" id="ctl00$masthead1$quicklinks$ctrlflyout"><a
id="ctl00_masthead1_quicklinks_ctrlflyout_ctrltitle" title="microsoft.com quick
links" class="quicklinksflyoutstaticlink_msdn"
href="javascript:void(0)"><span>microsoft.com&nbsp;</span><img
class="quicklinkspoparrow"
src="http://i.msdn.microsoft.com/platform/controls/quicklinksflyout/resources/popd
ownarrow-msdn-right.gif" alt="dropdown arrow" height="4" width="7" border="0"
/></a><div id="ctl00$masthead1$quicklinks$ctrlflyout_popup"
class="quicklinksflyoutpopup" style="position: absolute;visibility:hidden;left:-
65534px;">
<?xml version="1.0" encoding="utf-16"?><table><tr><td
valign="top"><h4>product families</h4><div class="list"><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447412">office</a></div><div
class="listitem"><a
href="http://go.microsoft.com/?linkid=4447413">windows</a></div><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447414">windows server
system</a></div><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447415">windows mobile</a></div><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447416">developer
tools</a></div><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447417">business solutions</a></div><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447418">games &amp;
xbox</a></div><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447419">msn</a></div></div></td><td
valign="top"><h4>resources</h4><div class="list"><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447420">microsoft update</a></div><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447421">office
update</a></div><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447422">download center</a></div><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447423">help &amp;
support</a></div><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447424">security</a></div><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447425">volume
licensing</a></div></div><h4>about microsoft</h4><div class="list"><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447426">company
information</a></div><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447427">investor relations</a></div><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447428">presspass for
journalists</a></div></div></td><td valign="top"><h4>popular places</h4><div
class="list"><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447429">msdn (developers)</a></div><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447430">technet (it
pros)</a></div><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447431">microsoft at home</a></div><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447432">microsoft at
work</a></div><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447433">business &amp;
industry</a></div><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447434">microsoft partners</a></div><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447435">microsoft
hardware</a></div><div class="listitem"><a
href="http://go.microsoft.com/?linkid=4447436">product catalog</a></div><div
class="listitem"><a
href="http://go.microsoft.com/?linkid=4447437">mactopia</a></div><div
class="listitem"><a href="http://go.microsoft.com/?linkid=4447438">microsoft.com
site map</a></div></div></td></tr><tr><td colspan="10"
class="quicklinksflyoutpopuphr" /></tr><tr><td valign="top"><h4>popular
searches</h4><div class="list"><div class="listitem"><a
href="http://search.microsoft.com/results.aspx?mkt=en-us&amp;setlang=en-
us&amp;q=templates">templates</a></div><div class="listitem"><a
href="http://search.microsoft.com/results.aspx?q=activesync&amp;l=1&amp;mkt=en-
us&amp;form=qbme1">activesync</a></div><div class="listitem"><a
href="http://search.microsoft.com/results.aspx?q=clip+art&amp;l=1&amp;mkt=en-
us&amp;form=qbme1">clip art</a></div></div></td><td valign="top"><h4>popular
downloads</h4><div class="list"><div class="listitem"><a
href="http://www.microsoft.com/downloads/details.aspx?familyid=435bfce7-da2b-4a6a-
afa4-f7f14e605a0d&amp;displaylang=en">windows defender beta 2</a></div><div
class="listitem"><a
href="http://www.microsoft.com/downloads/results.aspx?pocid=&amp;freetext=directx&
amp;displaylang=en">directx end-user runtime</a></div><div class="listitem"><a
href="http://www.microsoft.com/downloads">more popular
downloads</a></div></div></td></tr></table></div><div
id="ctl00$masthead1$quicklinks$ctrlflyout_anim" class="tflypopupanimate"></div>
</div>

</div>
<div class="passportscarab">
<span class="userrecognitionstatictext">welcome </span>

&nbsp;|&nbsp;

<a id="idppscarab"
href="http://login.live.com/login.srf?wa=wsignin1.0&amp;rpsnv=10&amp;ct=1212773585
&amp;rver=5.0.3265.0&amp;wp=mclbi&amp;wreply=http:%2f%2fmsdn.microsoft.com%2fen-
us%2flibrary%2fcc303238.aspx&amp;lc=1033&amp;cb=wizid%3db28a479f-4189-428a-8f89-
4ace6507a68c%26returnurl%3dhttp%253a%252f%252fmsdn.microsoft.com%252fen-
us%252flibrary%252fcc303238.aspx%26wp%3dmclbi%26lcid%3d1033&amp;id=74335"><span
class="mtps_globaltoolbarlinks_msdn">sign in</span></a>

</div>

</div>
</div>
</div>
<div class="thinnavbox">
<a href="/en-us/default.aspx" id="ctl00_masthead1_brandlink"><div
class="brandlogo"></div></a>

<div class="searchbox">

<input name="ctl00$masthead1$ctl00$returnsubmit" type="text"


id="ctl00_masthead1_ctl00_returnsubmit" style="visibility:hidden;display:none;" />
<input name="ctl00$masthead1$ctl00$searchtextbox" type="text"
value="search msdn with live search" id="ctl00_masthead1_ctl00_searchtextbox"
title="search msdn" class="libtextboxsearch" onfocus="search_onfocussearch(this);"
onblur="search_onblursearch(this);" />
<input type="image" name="ctl00$masthead1$ctl00$searchbutton"
id="ctl00_masthead1_ctl00_searchbutton" title="click here to search"
class="searchbutton"
src="http://i.msdn.microsoft.com/platform/controls/search/resources/search.gif"
border="0" />
<a
href="#ctl00_masthead1_ctl00_scopemenu_skiplink"><img alt="skip navigation links"
src="/webresource.axd?d=utv1mortqqtbcohlmmmxyq2&amp;t=633422327986397412"
width="0" height="0" border="0" /></a><table id="ctl00_masthead1_ctl00_scopemenu"
class="contextmenu ctl00_masthead1_ctl00_scopemenu_2" cellpadding="0"
cellspacing="0" border="0">
<tr onmouseover="menu_hoverstatic(this)" onmouseout="menu_unhover(this)"
onkeyup="menu_key(event)" id="ctl00_masthead1_ctl00_scopemenun0">
<td><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td nowrap="nowrap" width="100%"><a
class="ctl00_masthead1_ctl00_scopemenu_1"
href="javascript:__dopostback('ctl00$masthead1$ctl00$scopemenu','')"><img
src="http://i.msdn.microsoft.com/platform/controls/search/resources/space.gif"
height="30" width="20"/></a></td>
</tr>
</table></td>
</tr>
</table><div id="ctl00_masthead1_ctl00_scopemenun0items"
class="ctl00_masthead1_ctl00_scopemenu_0 nontransparentcontextmenupanel
ctl00_masthead1_ctl00_scopemenu_5">
<table border="0" cellpadding="0" cellspacing="0">
<tr onmouseover="menu_hoverdynamic(this)"
onmouseout="menu_unhover(this)" onkeyup="menu_key(event)"
id="ctl00_masthead1_ctl00_scopemenun1">
<td><table class="contextmenuitem
ctl00_masthead1_ctl00_scopemenu_4 contextmenuitemselected
ctl00_masthead1_ctl00_scopemenu_7" cellpadding="0" cellspacing="0" border="0"
width="100%">
<tr>
<td nowrap="nowrap" width="100%"><a
class="ctl00_masthead1_ctl00_scopemenu_1 contextmenuitem
ctl00_masthead1_ctl00_scopemenu_3 contextmenuitemselected
ctl00_masthead1_ctl00_scopemenu_6"
href="javascript:__dopostback('ctl00$masthead1$ctl00$scopemenu','\\00')">search
msdn</a></td>
</tr>
</table></td>
</tr><tr onmouseover="menu_hoverdynamic(this)"
onmouseout="menu_unhover(this)" onkeyup="menu_key(event)"
id="ctl00_masthead1_ctl00_scopemenun2">
<td><table class="contextmenuitem
ctl00_masthead1_ctl00_scopemenu_4" cellpadding="0" cellspacing="0" border="0"
width="100%">
<tr>
<td nowrap="nowrap" width="100%"><a
class="ctl00_masthead1_ctl00_scopemenu_1 contextmenuitem
ctl00_masthead1_ctl00_scopemenu_3"
href="javascript:__dopostback('ctl00$masthead1$ctl00$scopemenu','\\105')">search
microsoft.com</a></td>
</tr>
</table></td>
</tr><tr onmouseover="menu_hoverdynamic(this)"
onmouseout="menu_unhover(this)" onkeyup="menu_key(event)"
id="ctl00_masthead1_ctl00_scopemenun3">
<td><table class="contextmenuitem
ctl00_masthead1_ctl00_scopemenu_4" cellpadding="0" cellspacing="0" border="0"
width="100%">
<tr>
<td nowrap="nowrap" width="100%"><a
class="ctl00_masthead1_ctl00_scopemenu_1 contextmenuitem
ctl00_masthead1_ctl00_scopemenu_3"
href="javascript:__dopostback('ctl00$masthead1$ctl00$scopemenu','\\115')">live
search</a></td>
</tr>
</table></td>
</tr>
</table><div class="contextmenuitem ctl00_masthead1_ctl00_scopemenu_4
contextmenuitemselected ctl00_masthead1_ctl00_scopemenu_7
ctl00_masthead1_ctl00_scopemenu_0" id="ctl00_masthead1_ctl00_scopemenun0itemsup"
onmouseover="popout_up(this)" onmouseout="popout_stop(this)" align="center">
<img src="/webresource.axd?d=i_hgpjbflwp2o6xoiuznbuomv9vyp-
guynstmcvhdfe1&amp;t=633422327986397412" alt="scroll up" />
</div><div class="contextmenuitem ctl00_masthead1_ctl00_scopemenu_4
contextmenuitemselected ctl00_masthead1_ctl00_scopemenu_7
ctl00_masthead1_ctl00_scopemenu_0" id="ctl00_masthead1_ctl00_scopemenun0itemsdn"
onmouseover="popout_down(this)" onmouseout="popout_stop(this)" align="center">
<img src="/webresource.axd?d=1odrchmztlhvfip62crwotdwgkwmwjru5zbcbc-
js_c1&amp;t=633422327986397412" alt="scroll down" />
</div>
</div><a id="ctl00_masthead1_ctl00_scopemenu_skiplink"></a>

</div>
<div id="ctl00_masthead1_centerbuttonarea" class="thinnavtarget">
<div class="thinnavtabright"></div>
<div id="ctl00_masthead1_centerbutton" class="browsecenter"><a
id="ctl00_masthead1_ctl01" onclick="javascript:track('|masthead|
ctl00_masthead1_centerbutton|ctl00_masthead1_ctl01',this);" title="developer
centers" href="/en-us/aa937802.aspx">developer centers</a></div>
<div class="thinnavtableft"></div>
</div>
<div id="ctl00_masthead1_sitebuttonarea" class="thinnavtarget">
<div class="thinnavtabright"></div>
<div id="ctl00_masthead1_sitebutton" class="browsesite"><a
id="ctl00_masthead1_ctl02" onclick="javascript:track('|masthead|
ctl00_masthead1_sitebutton|ctl00_masthead1_ctl02',this);" title="msdn home"
href="/en-us/default.aspx">msdn home</a></div>
<div class="thinnavtableft"></div>
</div>
</div>
<div class="clear"></div>

<div class="navigationbox">
<div id="ctl00_masthead1_tabs_centertitle" class="headertitle">.net
framework developer center</div>
<div class="sponsor">

</div>
<div class="clearleft"></div>
<div id="ctl00_masthead1_tabs_mantabsholder" class="sitenavigation">
<div class="sitenavtaboffleft"></div><div class="taboff"><a
id="ctl00_masthead1_tabs_ctl01" onclick="javascript:track('|tabstrip link|
ctl00_masthead1_tabs_ctl00|ctl00_masthead1_tabs_ctl01',this);"
href="http://msdn.microsoft.com/en-
us/netframework/default.aspx">home</a></div><div
class="sitenavtaboffright"></div><div class="sitenavtabonleft"></div><div
class="tabon"><a id="ctl00_masthead1_tabs_ctl03" onclick="javascript:track('|
tabstrip link|ctl00_masthead1_tabs_ctl02|ctl00_masthead1_tabs_ctl03',this);"
href="http://msdn.microsoft.com/en-us/library/aa139615.aspx">library</a></div><div
class="sitenavtabonright"></div><div class="sitenavtaboffleft"></div><div
class="taboff"><a id="ctl00_masthead1_tabs_ctl05" onclick="javascript:track('|
tabstrip link|ctl00_masthead1_tabs_ctl04|ctl00_masthead1_tabs_ctl05',this);"
href="http://msdn.microsoft.com/en-
us/netframework/aa663309.aspx">learn</a></div><div
class="sitenavtaboffright"></div><div class="sitenavtaboffleft"></div><div
class="taboff"><a id="ctl00_masthead1_tabs_ctl07" onclick="javascript:track('|
tabstrip link|ctl00_masthead1_tabs_ctl06|ctl00_masthead1_tabs_ctl07',this);"
href="http://msdn.microsoft.com/en-
us/netframework/aa569263.aspx">downloads</a></div><div
class="sitenavtaboffright"></div><div class="sitenavtaboffleft"></div><div
class="taboff"><a id="ctl00_masthead1_tabs_ctl09" onclick="javascript:track('|
tabstrip link|ctl00_masthead1_tabs_ctl08|ctl00_masthead1_tabs_ctl09',this);"
href="http://msdn.microsoft.com/en-
us/netframework/bb545029.aspx">support</a></div><div
class="sitenavtaboffright"></div><div class="sitenavtaboffleft"></div><div
class="taboff"><a id="ctl00_masthead1_tabs_ctl11" onclick="javascript:track('|
tabstrip link|ctl00_masthead1_tabs_ctl10|ctl00_masthead1_tabs_ctl11',this);"
href="http://msdn.microsoft.com/en-
us/netframework/aa569258.aspx">community</a></div><div
class="sitenavtaboffright"></div></div>
</div>
<div class="clear"></div>
<div id="ctl00_masthead1_tabs_localnavigation" class="localnavigation"
style="height:2px;">

</div>
<div class="cleartabstrip"></div>
<div id="ctl00_masthead1_tabs_localnavbottom" class="localnavbottom"><img
width="100%" height="1px"
src="http://i.msdn.microsoft.com/platform/controls/tabstrip/resources/space.gif"
border="0" /></div>

</div>

<!--[if ie]>
<style>
.tbfont{ font-size: 70%;}
</style><![endif]-->

<div id="ctl00_ib1_panel1" class="miniratings">

<div id="ctl00_ib1_miniratings_left" class="miniratings_left">

<a id="ctl00_ib1_hlprint" title="print this content" onclick="javascript:


webform_docallback('ctl00$ib1','printerfriendlypage',getserverdata,null,null,false
);" href="http://msdn.microsoft.com/en-us/library/cc303238(printer).aspx"><img
id="ctl00_ib1_imgprint"
src="http://i.msdn.microsoft.com/platform/controls/interactivetoolbar/resources/rt
g_print.gif" border="0" />&nbsp;
printer friendly version</a>

<a id="ctl00_ib1_hlsendcont" title="send this content" onclick="javascript:


webform_docallback('ctl00$ib1','sendthispage',getserverdata,null,null,false);"
href="mailto:?subject=biztalk server 2006 or wf%3f choosing the right workflow
tool for your project&amp;body=this url points to a page on msdn that may interest
you: http://msdn.microsoft.com/en-us/library/cc303238.aspx"><img
id="ctl00_ib1_imgsendcont"
src="http://i.msdn.microsoft.com/platform/controls/interactivetoolbar/resources/rt
g_email.gif" border="0" />&nbsp;
send</a>
</div>
<div id="ctl00_ib1_up1">

<div id="ctl00_ib1_miniratings_right" class="miniratings_right">

<div class="ratingflyoutstatic" style="position:relative;"


id="ctl00$ib1$flyout"><div id="ctl00_ib1_flyout_rtgcontainer" title="turn
scripting on to submit a rating and send feedback." style="display: block; text-
align:right;">

<table style="float:right">
<tr>
<td style="text-align:right;line-height:70%;">
<span id="ctl00_ib1_flyout_ratetitlelabel"
class="tbfont">click to rate and give feedback</span>
</td>
<td id="ctl00_ib1_flyout_tdrtg" style="width:85px"
onclick="if($get('ctl00_ib1_flyout_tbcomments')!=null)
$get('ctl00_ib1_flyout_tbcomments').focus();">

<div id="ctl00_ib1_flyout_rating1" title="click a star and


provide feedback" dir="ltr">
<input type="hidden"
name="ctl00$ib1$flyout$rating1_ratingextender_clientstate"
id="ctl00_ib1_flyout_rating1_ratingextender_clientstate" value="4" /><a href="#"
id="ctl00_ib1_flyout_rating1_a" title="click a star and provide feedback"
style="text-decoration:none"><span id="ctl00_ib1_flyout_rating1_star_1"
class="ratingstar filledratingstar">&nbsp;</span><span
id="ctl00_ib1_flyout_rating1_star_2" class="ratingstar
filledratingstar">&nbsp;</span><span id="ctl00_ib1_flyout_rating1_star_3"
class="ratingstar filledratingstar">&nbsp;</span><span
id="ctl00_ib1_flyout_rating1_star_4" class="ratingstar
filledratingstar">&nbsp;</span><span id="ctl00_ib1_flyout_rating1_star_5"
class="ratingstar emptyratingstar">&nbsp;</span></a>
</div>

</td>

</tr>
</table>

</div>
<div style="display: block; float: none; clear: both;">
</div>
<div id="ctl00$ib1$flyout_popup" class="ratingflyoutpopup"
style="position: absolute;visibility:hidden;left:-65534px;">
<span id="ctl00_ib1_flyout_lbopttext"
class="optionaltext">give feedback on this content</span><textarea
name="ctl00$ib1$flyout$tbcomments" rows="2" cols="20"
id="ctl00_ib1_flyout_tbcomments" class="comment"></textarea><input type="submit"
name="ctl00$ib1$flyout$btnsubmit" value="send" onclick="return
ispagerated(&quot;ctl00_ib1_flyout_rating1&quot;,&quot;ctl00_ib1_flyout_lbopttext&
quot;,'please rate the page first.', &quot;ctl00$ib1$flyout&quot;,this);"
id="ctl00_ib1_flyout_btnsubmit" title="send this content" class="button"
/></div><div id="ctl00$ib1$flyout_anim" class="tflypopupanimate"></div>
</div>
</div>

</div>
<div style="display: block; clear: both; visibility: hidden;"></div>

</div>

</div>
<div id="contents">
<div id="ctl00_rs1_ra1" class="resizablearea">
<div id="ctl00_rs1_raleft" class="leftsection" style="width:300px;">

<img id="ctl00_rs1_tocvector1_o" class="hidden"


src="http://i.msdn.microsoft.com/platform/controls/toc/resources/o.gif" border="0"
/>
<img id="ctl00_rs1_tocvector1_c" class="hidden"
src="http://i.msdn.microsoft.com/platform/controls/toc/resources/c.gif" border="0"
/>
<img id="ctl00_rs1_tocvector1_s" class="hidden"
src="http://i.msdn.microsoft.com/platform/controls/toc/resources/s.gif" border="0"
/>
<img id="ctl00_rs1_tocvector1_e" class="hidden"
src="http://i.msdn.microsoft.com/platform/controls/toc/resources/e.gif" border="0"
/>
<div id="holder" onclick="tocclick(event)">
<div id="ctl00_rs1_tocvector1_root" class="roottoc">
<ul class="toc" id="tocvectortreeid"><li name="ms310241(n)"><img
src="http://i.msdn.microsoft.com/platform/controls/toc/resources/c.gif"/><a
href="http://msdn.microsoft.com/en-us/library/ms123401.aspx" target="_top">msdn
library</a></li></ul>
</div>
</div>

</div><div class="splitter" title="click and drag to resize. double click or


press 't' to toggle visibility." style="left:300px;" id="ctl00_rs1_rasplitter"
onmousedown="ra_resizestart(event,this,'ctl00_rs1_raleft')"
onmouseup="ra_resizestop()" onmouseover="highlightsplitterbar(this.id,0);"
onmouseout="highlightsplitterbar(this.id,1);"
ondblclick="ra_opencollapse('ctl00_rs1_rasplitter','ctl00_rs1_raleft')"></div><div
id="ctl00_rs1_raright" class="rightsection" onkeyup=" ra_keypress(window.event,
&quot;ctl00_rs1_rasplitter&quot;,&quot;ctl00_rs1_raleft&quot;)">

<div >
<div id="ctl00_rs1_eb1_panel1" class="eyebrowmenubar">

<div class="stat" style="position:relative;" id="ctl00$rs1$eb1$ctl00"><a


title="msdn" href="http://msdn.microsoft.com/en-us/ms348103.aspx">msdn</a><div
id="ctl00$rs1$eb1$ctl00_popup" class="popup" style="position:
absolute;visibility:hidden;left:-65534px;">
<img
src="http://i.msdn.microsoft.com/platform/controls/eyebrow/resources/s.gif"
class="spin"/><span name="http://msdn.microsoft.com/en-us/library/36cf08ac-18d1-
4fe0-abc8-466852a0f9c7(n).aspx">please wait</span></div><div
id="ctl00$rs1$eb1$ctl00_anim" class="tflypopupanimate"></div>
</div>
<div class="stat" style="position:relative;"
id="ctl00$rs1$eb1$ctl01"><a title="msdn library"
href="http://msdn.microsoft.com/en-us/library/ms123401.aspx">msdn library</a><div
id="ctl00$rs1$eb1$ctl01_popup" class="popup" style="position:
absolute;visibility:hidden;left:-65534px;">
<img
src="http://i.msdn.microsoft.com/platform/controls/eyebrow/resources/s.gif"
class="spin"/><span name="http://msdn.microsoft.com/en-
us/library/ms310241(n).aspx">please wait</span></div><div
id="ctl00$rs1$eb1$ctl01_anim" class="tflypopupanimate"></div>
</div>
<div class="stat" style="position:relative;"
id="ctl00$rs1$eb1$ctl02"><a title=".net development"
href="http://msdn.microsoft.com/en-us/library/aa139615.aspx">.net
development</a><div id="ctl00$rs1$eb1$ctl02_popup" class="popup" style="position:
absolute;visibility:hidden;left:-65534px;">
<img
src="http://i.msdn.microsoft.com/platform/controls/eyebrow/resources/s.gif"
class="spin"/><span name="http://msdn.microsoft.com/en-
us/library/aa139615(n).aspx">please wait</span></div><div
id="ctl00$rs1$eb1$ctl02_anim" class="tflypopupanimate"></div>
</div>
<div class="stat" style="position:relative;"
id="ctl00$rs1$eb1$ctl03"><a title="articles and overviews"
href="http://msdn.microsoft.com/en-us/library/aa338218.aspx">articles and
overviews</a><div id="ctl00$rs1$eb1$ctl03_popup" class="popup" style="position:
absolute;visibility:hidden;left:-65534px;">
<img
src="http://i.msdn.microsoft.com/platform/controls/eyebrow/resources/s.gif"
class="spin"/><span name="http://msdn.microsoft.com/en-
us/library/aa338218(n).aspx">please wait</span></div><div
id="ctl00$rs1$eb1$ctl03_anim" class="tflypopupanimate"></div>
</div>
<div class="stat" style="position:relative;"
id="ctl00$rs1$eb1$ctl04"><a title="windows workflow foundation"
href="http://msdn.microsoft.com/en-us/library/cc268290.aspx">windows workflow
foundation</a><div id="ctl00$rs1$eb1$ctl04_popup" class="popup" style="position:
absolute;visibility:hidden;left:-65534px;">
<img
src="http://i.msdn.microsoft.com/platform/controls/eyebrow/resources/s.gif"
class="spin"/><span name="http://msdn.microsoft.com/en-
us/library/cc268290(n).aspx">please wait</span></div><div
id="ctl00$rs1$eb1$ctl04_anim" class="tflypopupanimate"></div>
</div>
<div class="nochildstat"><strong>&nbsp;biztalk server 2006 or wf?
choosing...</strong></div><span
style="float:none;clear:both;display:block;"></span>
</div>

</div>
<div class="rightpanel">
<div class="contentbar">
<div id="ctl00_rs1_expandcollapse_ecdiv" class="ecpanel"><img
id="ctl00_rs1_expandcollapse_ecimg" class="ecimg" onclick="ec_click()"
src="http://i.msdn.microsoft.com/platform/controls/expandcollapseall/resources/min
us.gif" alt="collapse all/expand all" align="middle" border="0" /><a
id="ctl00_rs1_expandcollapse_eclink" class="eclink"
href="javascript:ec_click()">collapse all</a></div>

<style type="text/css">
.vb, .cs, .cpp, .nu
{
display:none;
}
</style>
<style id="languagespecifictextstyle" type="text/css">
.nu
{
display:inline;
}
</style>

</div>
<div class="contentarea">

<span id="ctl00_rs1_altselector"></span>

<div class="topic" ><div class="majortitle" xmlns:msxsl="urn:schemas-


microsoft-com:xslt">
.net development (windows workflow) technical articles
</div><div class="title" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
biztalk server 2006 or wf? choosing the right workflow tool for your
project
</div><!--content type: docstudio. transform: msdneditorial2mtps.xslt.--
><div id="mainsection"> <div id="mainbody"> <span style="color:darkgray;">
</span><p /> <span id="changehistory"> </span> <p>kent brown</p> <p>twentysix new
york (<a id="ctl00_rs1_maincontentcontainer_ctl01"
onclick="javascript:track('ctl00_rs1_maincontentcontainer_ctl00|
ctl00_rs1_maincontentcontainer_ctl01',this);"
href="http://www.26ny.com/">www.26ny.com</a>)</p> <p>november 2007</p> <p>revised
february 2008</p> <p>applies to:</p> <p> microsoft biztalk server 2006</p>
<p> windows workflow foundation</p> <p> <b>summary:</b> this article will
provide guidance for choosing between microsoft biztalk server 2006 and windows
workflow foundation in a variety of application and enterprise integration
workflow scenarios. (16 printed pages)</p> <div
id="ctl00_rs1_maincontentcontainer_cpe279617" class="mtps_collapsibleregion"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<div id="ctl00_rs1_maincontentcontainer_cpe279617_h"
class="collapseregionlink">
<img id="ctl00_rs1_maincontentcontainer_cpe279617_i"
src="http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resources/minus
.gif" border="0" style="vertical-align:middle;" />&nbsp;contents
</div><div id="ctl00_rs1_maincontentcontainer_cpe279617_c"
class="mtps_collapsiblesection">
<a name="sectiontoggle0"><!----></a> <p> <a
href="#biztalk06_or_wf_topic1">introduction</a> </p> <p> <a
href="#biztalk06_or_wf_topic2">process for choosing the right workflow tool</a>
</p> <p> <a href="#biztalk06_or_wf_topic3">common workflow scenarios</a> </p> <p>
<a href="#biztalk06_or_wf_topic4">it's all in the host</a> </p> <p> <a
href="#biztalk06_or_wf_topic5">workflow-technology recommendations</a> </p> <p> <a
href="#biztalk06_or_wf_topic6">future-proofing</a> </p> <p> <a
href="#biztalk06_or_wf_topic7">conclusion</a> </p> <p> <a
href="#biztalk06_or_wf_topic8">addendum</a> </p> <p> <a
href="#biztalk06_or_wf_topic9">acknowledgments</a> </p> <p> <a
href="#biztalk06_or_wf_topic10">more information</a> </p> <a
name="biztalk06_or_wf_topic1"><!----></a><h3
class="subheading">introduction</h3><div class="subsection"> <p>workflow is
pervasive in everyday business processes, so that a common need is finding
programming tools that directly support building workflow solutions. microsoft
biztalk server 2006 and windows workflow foundation (wf) are the two primary tools
from microsoft for programming workflow solutions. however, because of the
apparent overlap between them, many architects and developers have difficulty
deciding which workflow technology makes sense for their purposes.</p> <p>this is
especially true given the fact that wf has been clearly identified as the
preferred workflow technology going forward, while biztalk server 2006 is still
the premium server product for enterprise integration. until biztalk server
orchestration fully supports wf, architects and developers have to choose
carefully in which technology to invest.</p> <p>one of the challenges in choosing
the right technology for implementing workflow is that workflow can mean many
things—among them:</p> <ul><li>
flow of ui screens with which a user interacts to complete a
task.<br /> </li><li>
flow of business logic within an application or service.<br />
</li><li>
interaction of several human beings to complete a business
process.<br /> </li><li>
coordination of multiple message exchanges between systems to
process a business transaction.<br /> </li><li>
coordination of steps for extracting, transforming, and loading
(etl) data into a database.<br /> </li></ul> <p>while the spectrum of workflow
scenarios is wide, it is helpful to group them into four broad categories:
<i>human workflow</i>, <i>application workflow</i>, <i>enterprise integration
workflow</i>, and <i>data integration workflow</i>.</p> <p>of the four major
workflow categories, application workflow and enterprise integration workflow are
the two areas in which people find it most difficult to choose a technology. the
human workflow and data integration workflow scenarios are fairly straightforward,
from a tools-selection perspective. human workflow requires a user interface and
is often document-centric, so that microsoft office sharepoint server 2007 is the
recommended platform for building human workflow solutions. microsoft sql server
integration services (ssis) is the recommended tool for data integration
scenarios.</p> <p>this article will provide guidance for choosing between biztalk
server 2006 and wf in application workflow and enterprise integration workflow
scenarios.</p> </div> <h3 class="subheading">the biztalk server orchestration
engine</h3><div class="subsection"> <p>the biztalk server orchestration engine has
always been one of the compelling features of biztalk server. when it was
introduced, it was the best tool that was available from microsoft for performing
workflow-centric programming. biztalk server orchestration provides a visual
programming environment for developing components to control complex, multistep
message flows to complete a particular business transaction.</p> <p>the biztalk
server orchestration code artifacts closely resemble the flowchart or unified
modeling language (uml) activity diagrams that a business analyst might produce to
document a business process. these artifacts then can be compiled and executed in
the orchestration-engine runtime, which provides services such as long-running
transactions and compensation, durability, fault tolerance, and disaster recovery,
which are crucial for building systems that automate mission-critical business
transactions.</p> </div> <h3 class="subheading">a workflow foundation for the
future</h3><div class="subsection"> <p>while there are distinct categories of
workflow scenarios, there is enough in common between the scenarios, from a
programming perspective, to make it worthwhile to try to establish a common
framework for workflow development. the orchestration engine in biztalk server is
powerful, but it was never designed to be used outside of biztalk server; so, it
is not possible to repurpose biztalk server orchestration effectively for the
other workflow categories.</p> <p>wf, which is released in microsoft .net
framework 3.0, introduces a visual, workflow-centric programming model to the .net
framework that is designed to be general and extensible enough to be used in all
workflow-related scenarios on the windows platform going forward. the team that
produced wf was able to take the best concepts of the biztalk server orchestration
engine, consider the requirements for the broader realm of workflow scenarios, and
design a framework that is flexible enough to support them all.</p> <p>as evidence
of the flexibility of wf, microsoft office sharepoint server 2007 uses it to
implement human workflow solutions. the intent is for third-party bpm vendors also
to build their solutions on top of wf, instead of building their own proprietary
workflow engines; several vendors have already done so. individual developers also
can use wf to implement custom application workflow in .net framework
applications. the plan also is for a future version of biztalk server to implement
the orchestration engine on wf for implementing enterprise integration workflow
solutions.</p> <div><img alt="" src="cc303238.d666313e-4a3d-403b-953f-
95971ab556a2(en-us,msdn.10).gif" /></div> <p> <b>figure 1. using the right
workflow tool: biztalk server 2006 vs. wf</b> </p> </div>
</div>
</div><a name="biztalk06_or_wf_topic2"><!----></a><div
id="ctl00_rs1_maincontentcontainer_cpe279618" class="mtps_collapsibleregion"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<div id="ctl00_rs1_maincontentcontainer_cpe279618_h"
class="collapseregionlink">
<img id="ctl00_rs1_maincontentcontainer_cpe279618_i"
src="http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resources/minus
.gif" border="0" style="vertical-align:middle;" />&nbsp;process for choosing the
right workflow tool
</div><div id="ctl00_rs1_maincontentcontainer_cpe279618_c"
class="mtps_collapsiblesection">
<a name="sectiontoggle1"><!----></a> <p>our method for
providing guidance to help you decide which workflow tool fits your project will
be to delineate the most common workflow scenarios, so that you can determine the
scenario or combination of scenarios that best fits your project. then, we will
give specific guidance for each scenario as to which tool—biztalk server 2006 or
wf—is the best fit, and why. in addition, we will make use of the application
platform infrastructure optimization (apio) model—a model for rating the maturity
of an organization's application platform and development capabilities—to provide
organization-specific guidance in the scenarios in which either tool can be used
effectively. finally, we will look at the road map for biztalk server 2006 and wf,
so that you can make the best decisions for future-proofing the applications that
you are building today.</p>
</div>
</div><a name="biztalk06_or_wf_topic3"><!----></a><div
id="ctl00_rs1_maincontentcontainer_cpe279619" class="mtps_collapsibleregion"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<div id="ctl00_rs1_maincontentcontainer_cpe279619_h"
class="collapseregionlink">
<img id="ctl00_rs1_maincontentcontainer_cpe279619_i"
src="http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resources/minus
.gif" border="0" style="vertical-align:middle;" />&nbsp;common workflow scenarios
</div><div id="ctl00_rs1_maincontentcontainer_cpe279619_c"
class="mtps_collapsiblesection">
<a name="sectiontoggle2"><!----></a> <p>even after
confining our scope to the application and enterprise integration categories of
workflow, there is still a broad range of workflow scenarios to consider. as
figure 2 shows, on one side of the spectrum are scenarios in which wf clearly is
the right choice. an example of this is workflow capability within an independent
software vendor (isv) product, where the licensing costs and deployment complexity
of biztalk server 2006 would be prohibitive. in this scenario, as an isv, you are
in the business of making commercial software, and the extra programming effort
that is required to host wf royalty-free is a reasonable investment.</p> <div><img
alt="" src="cc303238.7b961873-0196-4221-b2e9-f60f3b102795(en-us,msdn.10).gif"
/></div> <p> <b>figure 2. integration and workflow continuum</b> </p> <p>on the
other side of the spectrum are enterprise integration solutions that are built
within a corporate it department, where clearly biztalk server 2006 is the right
choice. in this scenario, you want to focus on producing business value, instead
of investing in building the "plumbing" to make your solution scalable, reliable,
and manageable; so, the licensing cost of biztalk server 2006 is well worth it,
because of what it provides.</p> <p>most projects fall somewhere between these two
ends of the spectrum. the following are some common scenarios in which the
requirements dictate a workflow solution:</p> <ul><li> <b>ui page controller</b>—a
common requirement in complex applications is to enforce ui screen navigation
according to the business rules of the specific use case that is being
implemented. the simplest example is a wizard that walks the user through a
prescribed set of screens to accomplish a task. often, it is a more complex graph
of screen-navigation possibilities that are based on the user's actions and the
state of the data.<br />
the model-view-controller (mvc) pattern is the classic technique for
pulling this navigational logic out of the forms themselves, so that they are
simpler and more reusable across different use cases. the controller in the mvc
pattern is really a workflow, or state machine; so, it is natural to look for a
workflow tool in implementing these kinds of applications.<br /> </li><li> <b>long
running business logic</b>—when many steps are required to complete a business
transaction, the user might have to stop in the middle of the process or wait for
actions from other users or systems before continuing. the ability to pause
temporarily (or "hibernate") a process and then restart it, based on external
events, is central to the idea of workflow. without a workflow engine, developers
are forced to design and code manually the mechanisms for storing the state of an
incomplete process and recalling that state when the process is continued. with a
well-designed workflow engine, this capability is supported natively without
additional work for the developers.<br /> </li><li> <b>dynamically updateable
process flow</b>—while it seems possible at first to codify business processes
into well-defined sequential steps, humans often must modify the flow midstream to
account for real-life situations. in an expense-approval process, the manager of
the employee who submitted the expense report might be the default approver.
however, the manager might decide to delegate the task to a secretary (for
example, because the manager is headed out to play golf) or escalate the approval
to a superior (for example, because the manager is unsure of the policy for a
particular expense). allowing the user to update the flow is often simpler than
trying to anticipate every possible permutation of the flow ahead of time.<br />
</li><li> <b>abstraction of rules from business logic</b>—in this scenario, your
goal is to separate the business rules from other business logic. a good example
is form-validation rules. in a mortgage application program, the loan application
form might have one set of field-validation rules before the user can press the
<b>submit</b> button to submit a loan application. if the same form is used by the
loan officer to review and approve the loan, additional validation rules are
required, because it is at a different stage in the process.<br />
implementing the validation rules separately from the form makes it
easier for the form to be reused in different scenarios and to enforce the
appropriate validation rules simply by evaluating the appropriate set of rules for
that scenario.<br /> </li><li> <b>web service aggregator</b>—applications often
must aggregate data from several different web services. in many situations, the
aggregation logic itself can and should be extracted from the application, and
exposed as a service in its own right that can be reused from other applications.
these services often are called <i>composite web services</i>, and they are an
important element of a mature service-oriented architecture. the web service
aggregator scenario usually is synchronous and short-running.<br /> </li><li>
<b>long running business process</b>—the long running business process scenario is
used in this article to designate server-based processes that integrate multiple
applications together, whereas <i>business logic</i> is used for logic within a
single application. the requirements for these server-based long running business
processes for multithreading, asynchronous behavior, persistence of process state,
correlation of messages to process instances, scalability, reliability,
transactional integrity, and so forth, are much higher than for business logic
within an application.<br /> </li><li> <b>business to business (b2b) process</b>—
the b2b process scenario is essentially the same as the long running business
process scenario, except that the former is between organizations in addition to
internal applications. the security requirements, therefore, are paramount. in
addition, you have even less control over the specific data format and transport
protocol, as these might be dictated by your business partner; so, you need the
ability to support a broad range of formats and protocols and support
configuration of the specific interchanges for a large number of partners.<br />
</li><li> <b>abstraction of rules from business process</b>—similarly to the
abstraction of rules from business logic scenario, this scenario applies when you
want to separate the business rules from the main code in the long running
business process scenario and the b2b process scenario. this scenario requires a
higher level of performance and scalability. also, it likely will require tools to
allow nonprogrammers to view and edit the rules.<br /> </li><li> <b>enterprise
rule repository</b>—in this scenario, the goal is to build a central shared-rules
repository that can be invoked from all applications in the enterprise. this
provides consistency across all applications in an organization for applying
important business rules. similarly to the abstraction of rules from business
process scenario, this scenario requires high scalability and tools to allow
nonprogrammers to view and edit the rules. in addition, this scenario requires
that the rules repository be capable of existing as its own entity in the
enterprise, with its own hosting mechanism that is separate from the workflow
engine, and with components or apis for executing the rules from various
applications.<br /> </li><li> <b>enterprise service bus (esb)/message broker</b>—
many organizations want a standardized communication infrastructure for all
services. the two most common topologies for this infrastructure are the esb and
the message broker. publish/subscribe messaging and topic-base routing are
commonly expected features of this infrastructure.<br /> </li></ul> <h3
class="subheading">application platform infrastructure optimization model</h3><div
class="subsection"> <p>in some of the workflow scenarios, both biztalk server 2006
and wf satisfactorily meet the technical requirements. for these scenarios, making
the right workflow-technology choice requires matching the solution to the needs
of the specific organization. for the purposes of making recommendations that
apply to your particular organization, we will use the application platform
infrastructure optimization (apio) model, as shown in figure 3.</p> <div><img
alt="" src="cc303238.e125956e-b3a5-4c50-9552-77a29cbf757a(en-us,msdn.10).gif"
/></div> <p> <b>figure 3. application platform infrastructure optimization (apio)
model</b> </p> <p>the apio model is a technique for profiling an organization's
maturity with respect to its application infrastructure, architecture, and
development practices. the goal of this model is to give organizations a road map
for optimizing their agility in providing it solutions to meet the needs of the
business.</p> <p>the apio model uses the following four profiles of an
organization's maturity:</p> <ul><li> <b>basic</b>—organizations treat software as
a cost. they have largely siloed applications with little integration or reuse.
the applications that they do have might be on a variety of platforms. they do not
have consistent standards for infrastructure or development techniques; they do
not have a consistent architectural vision.<br /> </li><li> <b>standardized</b>—
organizations still treat software as a cost, but they have taken steps to improve
efficiencies. they have an architectural vision and try to consider opportunities
for reuse. they have started to integrate some applications, but they are mostly
point-to-point integrations.<br /> </li><li> <b>advanced</b>—organizations treat
software as a business enabler. they have dedicated architects and a clear
architectural vision. they have many services and achieve a high level of reuse.
all core business processes are automated and monitored. they use a centralized,
packaged integration platform.<br /> </li><li> <b>dynamic</b>—organizations treat
software as a strategic asset. they have a very mature soa in vision and
implementation. they have clear processes for dynamically versioning and
redeploying services. the can quickly adapt to business requirements changes, and
can quickly integrate with new business partners.<br /> </li></ul> </div> <h3
class="subheading">it's not just where you are, but where you are going</h3><div
class="subsection"> <p>somewhat implicit in the apio model is the notion that
every organization would aspire to move towards the dynamic profile. in reality,
it depends on the nature of the business and the philosophy of management
regarding technology. some businesses might be completely satisfied to stay in the
basic or standardized profile.</p> <p>you should consider the current profile, as
well as the near-term and long-term goals, with the near-term goal being the most
important. an organization in the basic profile, with a desire to be in the
dynamic profile eventually, might choose wisely to focus initially on getting into
the standardized profile; so, its technology decisions should mostly be consistent
with the standardized profile.</p> <p>in general, biztalk server 2006 is going to
be a better fit in organizations that are—or have a near-term goal to be—in the
advanced or dynamic profile. an organization in the basic profile that is
relatively satisfied in this profile might have neither the strategic motivation
to adopt biztalk server 2006 nor the capabilities to take advantage of it
effectively; so, they would not likely want to make the investment. however, if an
organization in the basic profile has made a decision to move towards the advanced
profile aggressively, adopting biztalk server 2006 might be a strategic step in
that direction.</p> <p>the point of introducing the apio model into the discussion
is that having a good idea of the current and targeted apio profiles of the
organization will aid in deciding between wf and biztalk server 2006, when the
technical scenario could be well supported by either technology. two different
organizations might well make different choices—each making the right choice for
its organizational profile.</p> </div>
</div>
</div><a name="biztalk06_or_wf_topic4"><!----></a><div
id="ctl00_rs1_maincontentcontainer_cpe279620" class="mtps_collapsibleregion"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<div id="ctl00_rs1_maincontentcontainer_cpe279620_h"
class="collapseregionlink">
<img id="ctl00_rs1_maincontentcontainer_cpe279620_i"
src="http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resources/minus
.gif" border="0" style="vertical-align:middle;" />&nbsp;it's all in the host
</div><div id="ctl00_rs1_maincontentcontainer_cpe279620_c"
class="mtps_collapsiblesection">
<a name="sectiontoggle3"><!----></a> <p>one of the most
important aspects to consider when choosing between biztalk server 2006 and wf is
the hosting requirements for your workflows. unlike biztalk server 2006, wf does
not provide hosting "out-of-the-box"; you must implement a host that establishes
the windows process and starts up the workflow runtime engine in which your
workflows will execute.</p> <p>in order to build a framework that can support the
full spectrum of workflow scenarios realistically, wf abstracts the core behaviors
that an environment such as biztalk server 2006 provides, so that various hosts
can provide the specific desired behavior for these services.</p> <p>the core
services that a wf workflow host provides are the following:</p> <ul><li>
<b>scheduling service</b>—creates and manages the threads that are used by the
runtime engine to execute workflow instances.<br /> </li><li> <b>commit work batch
service</b>—manages the transactions that are used by the runtime engine for
database operations.<br /> </li><li> <b>persistence service</b>—handles
persistence of the workflow instance when it is directed to do so by the runtime
engine. this service is optional. if it is not provided, the workflow instances
will not be persisted, and they must run in-memory for their entire lifetime.<br
/> </li><li> <b>tracking service</b>—provides ability to record tracking events
within workflows. this service is optional.<br /> </li></ul> <h3
class="subheading">what it takes to build a workflow host</h3><div
class="subsection"> <p>depending on your workflow scenario and the services that
you must provide to your workflows, building a wf host might be trivial or
prohibitive. for the scenarios in which workflow is within the context of an
application, hosting wf is fairly straightforward. the application itself acts as
the process host, and there are standard implementations of the core services that
can be configured with minimal effort.</p> <p>however, the necessary
sophistication of the host jumps dramatically when you get into highly scalable,
server-based scenarios. table 1 shows a laundry list of host services that might
be needed—most of which are provided in biztalk server 2006.</p> <p> <b>table 1.
host services</b> </p> <h3 class="subheading"><!----></h3><table width="100%"
border="1" style="background-color: #cccccc;"><tr> <td> <ul><li>
scale-out configuration<br /> </li><li>
load balancing<br /> </li><li>
fail-over<br /> </li><li>
throttling<br /> </li><li>
thread management<br /> </li><li>
memory management<br /> </li><li>
service isolation<br /> </li><li>
exception configuration<br /> </li><li>
failed-message management<br /> </li><li>
message tracking<br /> </li></ul> </td> <td> <ul><li>
archiving and purging<br /> </li><li>
identity and impersonation<br /> </li><li>
multi-environment deployment model<br /> </li><li>
health monitoring<br /> </li><li>
utilization/performance tracking<br /> </li><li>
composite-process state management<br /> </li><li>
scripting<br /> </li><li>
disaster recovery<br /> </li><li>
regulatory compliance<br /> </li><li>
configuration management<br /> </li></ul> </td> </tr></table>
</div> <h3 class="subheading">what business are you in, anyway?</h3><div
class="subsection"> <p>if you are tasked with building a specific application with
tight deadlines, you probably don’t want your team distracted by having to build a
complex host when they should be focused on implementing the necessary business
logic. in this case, biztalk server 2006 is well worth the investment to buy—
instead of attempting to build—a robust workflow host. if you are part of the
central architectural team of a large corporation, you might choose to invest in
building a host that could be used across the organization. even so, this effort
should not be taken on lightly.</p> </div>
</div>
</div><a name="biztalk06_or_wf_topic5"><!----></a><div
id="ctl00_rs1_maincontentcontainer_cpe279621" class="mtps_collapsibleregion"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<div id="ctl00_rs1_maincontentcontainer_cpe279621_h"
class="collapseregionlink">
<img id="ctl00_rs1_maincontentcontainer_cpe279621_i"
src="http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resources/minus
.gif" border="0" style="vertical-align:middle;" />&nbsp;workflow-technology
recommendations
</div><div id="ctl00_rs1_maincontentcontainer_cpe279621_c"
class="mtps_collapsiblesection">
<a name="sectiontoggle4"><!----></a> <h3
class="subheading">for scenarios within an application: wf</h3><div
class="subsection"> <p>for all of the scenarios that are contained within an
application—including ui page controller, long running business logic, dynamically
updateable process flow, web service composition, and abstraction of rules from
business logic—wf is the right workflow-technology choice.</p> <p>in the majority
of application-centric scenarios, the usage pattern requires synchronous, low-
latency interaction between the application and the workflow, which is not the
strength of biztalk server 2006. biztalk server 2006 would not be a good fit for
these scenarios, for performance reasons; biztalk server orchestrations run on
dedicated biztalk servers, and invoking them from a client application requires a
round trip across the network. in addition, the design of biztalk server 2006 of
persisting every message to the messagebox database for durability introduces
additional latency, which might not be acceptable in the context of an interactive
ui, if the workflow must be called synchronously.</p> <p>wf is a better fit for
these scenarios; it meets the workflow requirements, and it is simpler and cheaper
than biztalk server 2006. the messaging capabilities of biztalk server 2006—for
example, the mapping and adapters—are not needed in these scenarios. the
requirements for hosting services are modest, so that hosting the wf runtime
inside the application does not require a prohibitive amount of work.</p> </div>
<h3 class="subheading">for most business-process scenarios: biztalk server
2006</h3><div class="subsection"> <p>for most of the scenarios that involve
server-based business processes, biztalk server 2006 is the right choice. these
include b2b process, abstraction of rules from business process, enterprise rule
repository, and enterprise service bus (esb)/message broker.</p> <p>these
scenarios require high scalability. also, they require the ability to view running
processes, and to stop and restart them. finally, they require support for scaling
out to multiple servers. in these scenarios, the advanced hosting features of
biztalk server 2006 are required and well worth the investment.</p> <div><img
alt="" src="cc303238.f24e0595-87d1-405f-b7b9-38fc586535e0(en-us,msdn.10).gif"
/></div> <h3 class="subheading"><!----></h3><table width="100%" border="1"
style="background-color: #cccccc;"><tr> <th>
basic
</th> <th>
standardized
</th> <th>
advanced
</th> <th>
dynamic
</th> </tr><tr> <td> <p>wf → biztalk server 2006</p> </td> <td>
<p>biztalk server 2006</p> </td> <td> <p>biztalk server 2006</p> </td> <td>
<p>biztalk server 2006</p> </td> </tr></table> <p> <b>figure 4. long running
business process scenario</b> </p> <p>biztalk server 2006 is generally going to be
the best platform for the long running business process scenario. these processes
tend to be asynchronous, long-running, and stateful. these processes are often
mission-critical to the organization; therefore, they require high availability,
visibility, security, and manageability. the group or "farm" topology of biztalk
server 2006 allows you to manage an array of servers to provide scalability and
redundancy.</p> <p>the persistence mechanism of biztalk server 2006 for storing
process state has robust security built in to protect the privacy of the persisted
state, which might be important for regulatory reasons. the business activity
monitoring (bam) of biztalk server 2006 provides appropriate business-level
visibility into the running processes in a secure fashion. finally, these
scenarios often require support for heterogeneous message formats and transport
protocols, including legacy systems.</p> <p>for these reasons, biztalk server 2006
usually is going to be the best choice for organizations that are targeting the
standardized, advanced and dynamic profiles. these organizations usually consider
the long running business process scenario to be very important to the business
and very common within the enterprise; so, they purchase biztalk server 2006
specifically to establish a standardized platform for them.</p> <p>however, wf
might be a better choice for organizations that are in the basic apio profile.
these organizations generally are not looking to invest in building a standardized
application platform. instead, they are looking to minimize costs, and the
licensing and hardware costs of biztalk server 2006 might be prohibitive. the
exception to this guidance is when there are requirements for high scalability,
monitoring, and support for a broad variety of message formats and transport
protocols. in this case, although the organization is reluctant to invest in their
application platform, the cost of building the hosting and messaging features from
scratch likely would exceed the costs of biztalk server 2006.</p> <div><img alt=""
src="cc303238.07069f83-6a3c-40a9-819b-788c6e7d7b56(en-us,msdn.10).gif" /></div>
<h3 class="subheading"><!----></h3><table width="100%" border="1"
style="background-color: #cccccc;"><tr> <th>
basic
</th> <th>
standardized
</th> <th>
advanced
</th> <th>
dynamic
</th> </tr><tr> <td> <p>wf</p> </td> <td> <p>wf → biztalk server
2006</p> </td> <td> <p>biztalk server 2006</p> </td> <td> <p>biztalk server
2006</p> </td> </tr></table> <p> <b>figure 5. web service aggregator scenario</b>
</p> <p>both biztalk server orchestrations and wf workflows have strong support
for external-consuming web services from a workflow, and for exposing the workflow
as a web service. therefore, for building web service aggregator solutions, just
as for long running business process solutions, the choice is determined by the
organizational profile and hosting requirements.</p> <p>if the aggregating web
service is only to aggregate other web services, the ability of biztalk server
2006 to support heterogeneous message formats and transport protocols adds little
value. however, if the service also should aggregate data from legacy environments
that are not exposed as web services, biztalk server 2006 would add value.</p>
<p>because the usage pattern is quick, synchronous request/response calls, the
message durability that is provided by biztalk server 2006 usually is not
important. in fact, the latency that is introduced by the persistence to the
messagebox actually is a liability. the main value that biztalk server 2006
provides for this scenario is the ability to manage the deployment across many
servers and to monitor running instances. the bam capability of biztalk server
2006 also might be useful for monitoring that service-level agreements (slas) are
met.</p> <p>for these reasons, wf is a very good choice for implementing web
service aggregators, especially in organizations in the basic and standardized
profiles. an example in which biztalk server 2006 might be advantageous is one in
which you must manage a large number of endpoints for different client
organizations. the receive port and receive location configuration of biztalk
server 2006 specifically handles this. in this case, certificates might be
important, too, and the support of biztalk server 2006 for configuring and
managing certificates and applying them to encryption/decryption might be
useful.</p> </div>
</div>
</div><a name="biztalk06_or_wf_topic6"><!----></a><div
id="ctl00_rs1_maincontentcontainer_cpe279622" class="mtps_collapsibleregion"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<div id="ctl00_rs1_maincontentcontainer_cpe279622_h"
class="collapseregionlink">
<img id="ctl00_rs1_maincontentcontainer_cpe279622_i"
src="http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resources/minus
.gif" border="0" style="vertical-align:middle;" />&nbsp;future-proofing
</div><div id="ctl00_rs1_maincontentcontainer_cpe279622_c"
class="mtps_collapsiblesection">
<a name="sectiontoggle5"><!----></a> <p>you want to ensure
that your investments in software licensing costs, in learning a workflow
technology, and in building specific workflow components, will provide you the
most possible value in the future. besides choosing the right workflow for your
specific workflow scenario and organization, you must also take into account the
product road maps for biztalk server 2006 and wf. there is not a simple answer for
this. the comments that follow do not make a strong argument for choosing either
technology; instead they are data points to aid in your decision.</p> <h3
class="subheading">what biztalk server 2006 r2 adds</h3><div class="subsection">
<p>biztalk server 2006 r2 adds two features that might affect your choice of
workflow platform: the wcf adapters, and the bam interceptors for wcf and wf.</p>
<h4 class="subheading">wcf adapters</h4><div class="subsection"> <p>if your team
has adopted windows communication foundation (wcf) as the standard technology for
implementing services in building your soa, the fact that biztalk server 2006 did
not have wcf support might have disqualified it as a platform for building and
hosting composite web services. this might have pushed you towards wf, even if
biztalk server 2006 was otherwise a great match for your scenarios and apio
profile.</p> <p>fortunately, with the introduction of great wcf integration in
biztalk server 2006 r2, this is no longer a concern. biztalk server 2006 now has
strong integration with wcf, and it is an excellent platform for building
composite services out of more granular services and exposing these composite
services as wcf services.</p> </div> <h4 class="subheading">bam interceptor for
wf</h4><div class="subsection"> <p>the second relevant biztalk server 2006 r2
feature is the introduction of the bam interceptor for wf. if business-activity
monitoring is an important feature of your solution, you might have been pushed
toward using biztalk server 2006—just to take advantage of bam—when wf was
otherwise a better fit for your scenario. with the bam interceptor for wf, you can
choose wf if it is the right workflow technology for your project and still make
use of bam as an enterprise business-activity monitoring solution.</p> <p>bam is a
feature of biztalk server 2006 that provides a framework for capturing events and
data from biztalk server orchestrations and message flows, and presenting that
data in a portal to provide the business user with end-to-end visibility into the
business process. a powerful aspect of the way in which bam works for biztalk
server 2006 applications is that bam monitoring can be configured (or
"instrumented") after a biztalk server 2006 application has been deployed, without
requiring modifications to the biztalk server 2006 code artifacts.</p> <p>bam is
designed as an enterprise-wide business-activity monitoring solution; therefore,
it is possible for non–biztalk server 2006 applications to feed events and data
into bam. however, the apis for doing so require quite a bit of code to be written
in the external applications. the bam wf interceptor in biztalk server 2006 r2
provides the capability to instrument wf workflows for bam more simply and without
requiring code modifications. by using the bam interceptors, you can track your
business processes without recompiling your wf or wcf solution; integration is
done through a configuration file.</p> </div> </div> <h3
class="subheading">biztalk server 2006 extensions for wf sdk</h3><div
class="subsection"> <p>the biztalk server 2006 extensions for wf sdk was announced
and demoed at teched 2007. this sdk provides a simple mechanism for hosting wf
workflows in biztalk server 2006. this tool is intended for use by .net developers
who are building wf workflows today and looking for an easy way to achieve robust,
scalable hosting of those workflows.</p> <p>the sdk provides two custom wf
activities—a btsreceive activity and a btssend activity—that can be used within a
wf workflow for receiving and sending messages via biztalk server 2006. as a
developer, you define wcf <b>datacontracts</b> for the inbound and outbound
messages, and a <b>servicecontract</b> to define the message-exchange pattern.
within the wf workflow, the btsreceive and btssend activities are configured to
use the defined <b>servicecontract</b>, as shown in figure 6.</p> <div><img alt=""
src="cc303238.01d03f78-ff44-42b4-bea3-232319ad97f1(en-us,msdn.10).gif" /></div>
<p> <b>figure 6. btsreceive and btssend activities for use in defined
servicecontract</b> </p> <p>after the wf workflow has been completed and compiled,
you right-click on the workflow project and select <b>generate orchestration</b>
to generate automatically a wrapper orchestration (see figure 7) that will
initiate the wf workflow and route biztalk server 2006 messages both to and from
it.</p> <p>the auto-generated wrapper orchestration contains schemas for the
messages defined in the <b>servicecontract</b>. it also contains the biztalk
server orchestration shapes and code for receiving a biztalk server 2006 message,
creating and starting the workflow instance, passing inbound message(s) into the
workflow instance, receiving the outbound message(s), and forwarding them back to
the biztalk server 2006 messaging engine. to complete the hosting of your wf
workflow, you just have to compile and deploy the wrapper orchestration, and bind
it by using the normal biztalk server 2006 mechanism.</p> <div><img alt=""
src="cc303238.cc2fd7cd-4bdc-45ab-9b24-97b99d8a36ef(en-us,msdn.10).gif" /></div>
<p> <b>figure 7. generating a wrapper orchestration automatically</b> </p> <p>in
addition to taking advantage of the robust, scalable hosting mechanism of biztalk
server 2006 for wf workflows, the biztalk server 2006 extensions for wf sdk allows
you to take advantage of the biztalk server 2006 messaging infrastructure. thus,
you can leverage the many available adapters for getting messages into and out of
biztalk server 2006, as well as the pipeline processing, including the mapping
capabilities.</p> <p>as powerful as it is, the biztalk server 2006 extensions for
wf sdk should be used as a tool to allow wf developers to deploy their workflows
on top of biztalk server 2006—not as a replacement for orchestrations in scenarios
in which we have identified biztalk server 2006 as the proper tool. there are some
wf shapes that do not work when they are wrapped in an orchestration. this is
because hosting your wf workflows inside of biztalk server 2006 by using the
biztalk server 2006 extensions for wf sdk will not provide the same hosting
behavior as native orchestrations. the sdk has a faq list (included in the quick
start guide) that outlines these differences.</p> </div>
</div>
</div><a name="biztalk06_or_wf_topic7"><!----></a><div
id="ctl00_rs1_maincontentcontainer_cpe279623" class="mtps_collapsibleregion"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<div id="ctl00_rs1_maincontentcontainer_cpe279623_h"
class="collapseregionlink">
<img id="ctl00_rs1_maincontentcontainer_cpe279623_i"
src="http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resources/minus
.gif" border="0" style="vertical-align:middle;" />&nbsp;conclusion
</div><div id="ctl00_rs1_maincontentcontainer_cpe279623_c"
class="mtps_collapsiblesection">
<a name="sectiontoggle6"><!----></a> <p>biztalk server 2006
and windows workflow foundation are the primary tools from microsoft for
implementing workflow solutions in the application and enterprise integration
workflow categories. in order to choose which is right for your project, you first
must identify which of the workflow scenarios you are targeting.</p> <p>next, use
the table in figure 8 to see the recommended workflow technology for your
scenario. for workflow within an application, we recommend wf. for most server-
based business process and b2b scenarios, we recommend biztalk server 2006.</p>
<div><img alt="" src="cc303238.fad5f586-a2bf-43b5-b4bb-8f30ad1a0ac1(en-
us,msdn.10).gif" /></div> <p> <b>figure 8. scenario-specific workflow
technologies</b> </p> <p>for both the long running business process and the web
service aggregator scenarios, either technology can be applied affectively. for
these scenarios, you should assess the current and near-term target apio profile
of your organization. organizations that are either in or moving towards the
advanced or dynamic profiles should use biztalk server 2006 for these scenarios.
organizations in the basic and standard profiles can use wf effectively for these
scenarios.</p> <p>finally, you should consider the release dates and desired
lifetime of your solution, relative to the product road map for biztalk server
2006 and wf. by using this framework and the guidance in this article, you should
be able to choose the right workflow for your project.</p>
</div>
</div><a name="biztalk06_or_wf_topic8"><!----></a><div
id="ctl00_rs1_maincontentcontainer_cpe279624" class="mtps_collapsibleregion"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<div id="ctl00_rs1_maincontentcontainer_cpe279624_h"
class="collapseregionlink">
<img id="ctl00_rs1_maincontentcontainer_cpe279624_i"
src="http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resources/minus
.gif" border="0" style="vertical-align:middle;" />&nbsp;addendum
</div><div id="ctl00_rs1_maincontentcontainer_cpe279624_c"
class="mtps_collapsiblesection">
<a name="sectiontoggle7"><!----></a> <h3
class="subheading">dispelling misconceptions about biztalk server 2006 vs.
wf</h3><div class="subsection"> <p>the following are some common misconceptions
regarding wf and biztalk server 2006, and the clarifying arguments that we use to
dispel them:</p> <ul><li> <b>wf is the replacement for biztalk server 2006.</b>
<i>no.</i> because wf is the "latest and greatest" offering from microsoft for
programming workflows, many who are unfamiliar with biztalk server 2006 initially
assume that it has been made obsolete with the release of wf. the simple answer to
correct this impression is that wf is a low-level developer framework for building
all kinds of workflows, while biztalk server 2006 is a full-blown server product
with advanced features for a specific category of workflow scenarios: enterprise
integration. (see figure 1.)<br />
wf provides only a small subset of this functionality: workflow and
business rules. while wf might be a simpler, more cost-effective solution for
scenarios that do not require all of the other features that biztalk server 2006
provides, in no way does it supplant biztalk server 2006 for the core enterprise
integration scenarios that biztalk server 2006 was designed to support.<br />
</li><li> <b>biztalk server is going away.</b> <i>no.</i> a similar misconception
is the impression that because wf was released as the workflow tool of the future,
and biztalk server has not yet been rewritten to use wf, microsoft is no longer
investing in biztalk server and will eventually replace it with a new wf-based
product. this is just not the case; biztalk server has been a very successful
product, and the enterprise integration area that it targets continues to be an
area that microsoft is committed to supporting.<br /> </li><li> <b>you have to
choose biztalk server 2006 over .net framework.</b> <i>no.</i> it might be
tempting for .net developers who are not familiar with biztalk server 2006 to
choose wf over biztalk server 2006, just on the basis that they would rather go
"pure" .net. however, this is really not a useful criterion; biztalk server 2006
itself is built on the .net framework.<br />
in fact, biztalk server 2006 represents over 2 million lines of .net
code that can be applied to your solution—saving you the time, trouble, and cost
of developing its functionality from scratch. in addition, biztalk server 2006
programming itself is done inside of microsoft visual studio .net, and the
components are compiled and deployed as .net assemblies. besides, most significant
biztalk server 2006 projects combine biztalk server 2006 components with custom
.net components; so, biztalk server 2006 development should be considered
specialized .net development, instead of something that is foreign or
different.<br />
the real question is whether the biztalk server 2006 features
provide enough value for your particular workflow scenario to justify the
licensing costs. you don't want to use a sledgehammer to hang pictures; neither do
you want to use a carpenter's hammer for crushing large rocks.<br /> </li><li>
<b>the most features wins.</b> <i>a poor choice.</i> we could put up a feature
matrix that compares the granular features of wf to those of biztalk server 2006.
however, this comparison would not be very helpful; biztalk server 2006 has such a
large number of features that are targeted specifically at the enterprise
integration space. if that is not your target scenario, the feature comparisons
will be meaningless. biztalk server 2006 would probably win, in terms of the
number of feature check boxes; however, this is an apples-to-oranges comparison,
if those features do not relate to the workflow scenario that you are
targeting.<br /> </li></ul> </div>
</div>
</div><a name="biztalk06_or_wf_topic9"><!----></a><div
id="ctl00_rs1_maincontentcontainer_cpe279625" class="mtps_collapsibleregion"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<div id="ctl00_rs1_maincontentcontainer_cpe279625_h"
class="collapseregionlink">
<img id="ctl00_rs1_maincontentcontainer_cpe279625_i"
src="http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resources/minus
.gif" border="0" style="vertical-align:middle;" />&nbsp;acknowledgments
</div><div id="ctl00_rs1_maincontentcontainer_cpe279625_c"
class="mtps_collapsiblesection">
<a name="sectiontoggle8"><!----></a> <p>i would like to
thank paul andrew and kris horrocks, and everyone who reviewed this article.</p>
</div>
</div><a name="biztalk06_or_wf_topic10"><!----></a><div
id="ctl00_rs1_maincontentcontainer_cpe279626" class="mtps_collapsibleregion"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<div id="ctl00_rs1_maincontentcontainer_cpe279626_h"
class="collapseregionlink">
<img id="ctl00_rs1_maincontentcontainer_cpe279626_i"
src="http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resources/minus
.gif" border="0" style="vertical-align:middle;" />&nbsp;more information
</div><div id="ctl00_rs1_maincontentcontainer_cpe279626_c"
class="mtps_collapsiblesection">
<a name="sectiontoggle9"><!----></a> <ul><li>
"biztalk server 2006 r2 extensions for windows workflow foundation sdk
v1": <a id="ctl00_rs1_maincontentcontainer_ctl26"
onclick="javascript:track('ctl00_rs1_maincontentcontainer_cpe279626_c|
ctl00_rs1_maincontentcontainer_ctl26',this);"
href="http://www.microsoft.com/downloads/details.aspx?familyid=b701c00f-cdc1-4edb-
a975-
b9412263ec6e&displaylang=en">http://www.microsoft.com/downloads/details.aspx?famil
yid=b701c00f-cdc1-4edb-a975-b9412263ec6e&amp;displaylang=en</a><br /> </li><li>
paul andrew's blog (provides an overview of the sdk): <a
id="ctl00_rs1_maincontentcontainer_ctl27"
onclick="javascript:track('ctl00_rs1_maincontentcontainer_cpe279626_c|
ctl00_rs1_maincontentcontainer_ctl27',this);"
href="http://blogs.msdn.com/pandrew/archive/2007/11/01/just-released-biztalk-
server-2006-extensions-for-windows-workflow-foundation-
sdk.aspx">http://blogs.msdn.com/pandrew/archive/2007/11/01/just-released-biztalk-
server-2006-extensions-for-windows-workflow-foundation-sdk.aspx</a><br />
</li><li>
msdn forums for wf (where the sdk can be discussed): <a
id="ctl00_rs1_maincontentcontainer_ctl28"
onclick="javascript:track('ctl00_rs1_maincontentcontainer_cpe279626_c|
ctl00_rs1_maincontentcontainer_ctl28',this);"
href="http://forums.microsoft.com/msdn/showforum.aspx?forumid=122&siteid=1">http:/
/forums.microsoft.com/msdn/showforum.aspx?forumid=122&amp;siteid=1</a><br />
</li></ul> <div class="subsection"> <h4 class="subheading">about the
author</h4><div class="subsection"> <p>kent brown is the director and senior
architect of the enterprise integration practice at twentysix new york, a
microsoft gold certified consulting partner in new york city. he has been excited
about biztalk server since its inception in 2000, and has played an evangelist
role around the product for the last seven years. kent is a member of the
microsoft biztalk virtual technical specialist team, as well as a microsoft
connected systems developer mvp. he is the founder and leader of the nyc connected
systems users group (<a id="ctl00_rs1_maincontentcontainer_ctl29"
onclick="javascript:track('ctl00_rs1_maincontentcontainer_cpe279626_c|
ctl00_rs1_maincontentcontainer_ctl29',this);"
href="http://www.nyccsug.org/">http://www.nyccsug.org</a>).</p> </div> </div>
</div>
</div> </div> </div></div>
</div>
</div>

<div style="overflow:hidden;display:block;position:relative;">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td id="ctl00_rs1_mtpsfooter_footerfadecell" class="mtps_footerfade">
<div id="ctl00_rs1_mtpsfooter_sitelinks" class="mtps_footerlinks">
<a id="ctl00_rs1_mtpsfooter_localfooterlink0" title="manage your
profile" href="http://go.microsoft.com/?linkid=8786242">manage your
profile</a>&nbsp;|&nbsp;<a id="ctl00_rs1_mtpsfooter_localfooterlink1"
title="legal" href="http://www.microsoft.com/legal/">legal</a>&nbsp;|&nbsp;<a
id="ctl00_rs1_mtpsfooter_localfooterlink2" title="contact us"
href="http://go.microsoft.com/?linkid=2028439">contact us</a>&nbsp;|&nbsp;<a
id="ctl00_rs1_mtpsfooter_localfooterlink3" title="msdn flash newsletter"
href="http://msdn.microsoft.com/flash/">msdn flash newsletter</a>
</div>
<span id="ctl00_rs1_mtpsfooter_msft_copyright" title="© 2008 microsoft
corporation. all rights reserved." class="mtps_footercopyright">&copy; 2008
microsoft corporation. all rights reserved.</span>
<a id="ctl00_rs1_mtpsfooter_msft_terms" title="terms of use"
class="mtps_footerlinks" href="/cc300389.aspx">terms of use</a>
&nbsp;|&nbsp;
<a id="ctl00_rs1_mtpsfooter_msft_trademarks" title="trademarks"
class="mtps_footerlinks"
href="http://www.microsoft.com/library/toolbar/3.0/trademarks/en-
us.mspx">trademarks</a>
&nbsp;|&nbsp;
<a id="ctl00_rs1_mtpsfooter_msft_privacystatement" title="privacy statement"
class="mtps_footerlinks" href="http://www.microsoft.com/info/privacy.mspx">privacy
statement</a>
</td>

<td id="ctl00_rs1_mtpsfooter_footerlogocell">
<img id="ctl00_rs1_mtpsfooter_msft_logo" title="microsoft corporation"
class="mtps_footerlogo"
src="http://i.msdn.microsoft.com/platform/controls/footer/resources/mslogo.gif"
alt="microsoft corporation" border="0" />
</td>

</tr>
</table>

</div>
</div>
</div>
</div>
<div style="display:none"><img
src="http://c.microsoft.com/trans_pixel.asp?source=msdn&amp;type=pv&amp;uri=%2fen-
us%2flibrary(d%3ddefault)%2fcc303238(l%3den-us%2cv%3dmsdn.10).aspx&amp;p=_en-
us_library(d=default)_cc303238(l=en-us,v=msdn.10).aspx&amp;prd=netframework"
width="0" height="0" hspace="0" vspace="0" border="0" alt="page view tracker"
/></div>

<script
src="http://i2.msdn.microsoft.com/platform/controls/webtrends/resources/msdn.wtnvr
-bn1847.0.js" type="text/javascript"></script>
<script
src="http://i2.msdn.microsoft.com/platform/controls/webtrends/resources/webtrendss
cript-bn1847.0.js" type="text/javascript"></script>
<noscript>
<div><img alt="dcsimg" id="img1" width="1" height="1"
src="http://m.webtrends.com/dcsmgru7m99k7mqmgrhudo0k8_8c6m/njs.gif?dcsuri=/nojavas
cript&amp;wt.js=no" /></div>
</noscript><script type="text/javascript" src="http://i2.msdn.microsoft.com/en-
us/library/mtps-bn1847.0.js?l=en-
us&amp;i=library&amp;ct=alternateselector;cceditor;ccsection;cctageditor;collapsib
learea;contentfallback;dropdownfilter;expandcollapseall;eyebrow;footer;interactive
toolbar;irootbrand;localemanagementflyout;masthead;memberlistframeworksfilter;memb
erlistmembersfilter;mtpsloginstatus;quicklinksflyout;relatedpages;resizablearea;se
arch;surveylauncher;tabstrip;templatedflyout;toc;userrecognition;webmetrix;webtren
ds"></script>

<script type="text/javascript">
//<![cdata[
window.settimeout(function(){ec_init("ctl00_rs1_expandcollapse","expand
all","collapse
all","http://i.msdn.microsoft.com/platform/controls/expandcollapseall/resources/pl
us.gif","http://i.msdn.microsoft.com/platform/controls/expandcollapseall/resources
/minus.gif");},0);sys.webforms.pagerequestmanager.getinstance().add_beginrequest(c
cs_beginrequesthandler);sys.webforms.pagerequestmanager.getinstance().add_endreque
st(ccs_endrequesthandler);var ctl00_masthead1_ctl00_scopemenu_data = new object();
ctl00_masthead1_ctl00_scopemenu_data.disappearafter = 500;
ctl00_masthead1_ctl00_scopemenu_data.horizontaloffset = -155;
ctl00_masthead1_ctl00_scopemenu_data.verticaloffset = 22;
ctl00_masthead1_ctl00_scopemenu_data.hoverclass =
'ctl00_masthead1_ctl00_scopemenu_9 contextmenuitemhover';
ctl00_masthead1_ctl00_scopemenu_data.hoverhyperlinkclass =
'ctl00_masthead1_ctl00_scopemenu_8 contextmenuitemhover';
registerautosubmit('ctl00_ib1_flyout_rating1','ctl00_ib1_flyout_btnsubmit','conte
ntratingcc303238msdn.10en-us');
//]]>
</script>
<script type="text/javascript" language="javascript">
<!--
function getcontentwnd(){ return parent; } function oninitpage(){var ownd =
getcontentwnd();} function getserverdata(arg, context){} function onsave(){ var
ownd = getcontentwnd(); window.external.addfavorite('http://msdn.microsoft.com/en-
us/library/cc303238.aspx', ownd.document.title ); }
-->
</script>
<script type="text/javascript">
//<![cdata[
document.getelementbyid('ctl00_ib1_flyout_rtgcontainer').title="click a star and
provide feedback";

document.onkeypress = function(e){ ra_keypress(e,


"ctl00_rs1_rasplitter","ctl00_rs1_raleft");};
sys.application.initialize();
tfly_init('ctl00$masthead1$localemanagement$ctl00',0,0,1,4,60,'localemanagementfly
outstatichover','',100,400,'','','','');
tfly_init('ctl00$masthead1$quicklinks$ctrlflyout',0,0,1,4,60,'quicklinksflyoutstat
ichover_msdn','',100,400,'','','','');
sys.application.add_init(function() {
$create(ajaxcontroltoolkit.autocompletebehavior,
{"completioninterval":500,"delimitercharacters":"","enablecaching":false,"id":"ctl
00_masthead1_ctl00_searchautocomplete","minimumprefixlength":4,"servicemethod":"ge
tterms","servicepath":"../../platform/controls/search/termservice.asmx"}, null,
null, $get("ctl00_masthead1_ctl00_searchtextbox"));
});
tfly_init('ctl00$ib1$flyout',5,2,1,4,60,'','',100,400,'','','','');
sys.application.add_init(function() {
$create(microsoft.mtps.web.ui.mtpsratingbehavior,
{"autopostback":false,"callbackid":"ctl00$ib1$flyout$rating1","clientstatefieldid"
:"ctl00_ib1_flyout_rating1_ratingextender_clientstate","emptystarcssclass":"emptyr
atingstar","filledstarcssclass":"filledratingstar","rating":4,"starcssclass":"rati
ngstar","tag":"contentratingcc303238msdn.10en-
us","waitingstarcssclass":"savedratingstar","id":"ctl00_ib1_flyout_rating1_ratinge
xtender"}, null, null, $get("ctl00_ib1_flyout_rating1"));
});
//]]>
</script>
<script type="text/javascript">//<![cdata[*/
var tocvectorobject;var hostbase;var closedimg;var openimg;var emptyimg;var
loadingimg;var tocvector;var tocindex = 0;var holder;var tocloaded = false;var
toccollapsed = 'false';tocvectorobject = {"nodes": [{"id": "ms310241" ,"url":
"/ms310241(n)"},{"id": "aa139615" ,"url": "/aa139615(n)"},{"id": "aa338218"
,"url": "/aa338218(n)"},{"id": "cc268290" ,"url": "/cc268290(n)"},{"id":
"cc303238" ,"url": "/cc303238(n)"}]};hostbase ="http://msdn.microsoft.com/en-
us/library";tocvector = eval(tocvectorobject);closedimg =
"http://i.msdn.microsoft.com/platform/controls/toc/resources/c.gif";openimg =
"http://i.msdn.microsoft.com/platform/controls/toc/resources/o.gif";emptyimg =
"http://i.msdn.microsoft.com/platform/controls/toc/resources/e.gif";loadingimg =
"http://i.msdn.microsoft.com/platform/controls/toc/resources/s.gif";sys.applicatio
n.add_load(loadtoc);/*]]>*/
</script>
<script type="text/javascript">
//<![cdata[
tfly_init('ctl00$rs1$eb1$ctl00',0,-1,-
1,10,5,'stathover','',0,0,'eyebrowmenubarsetheight','expeye','','');
tfly_init('ctl00$rs1$eb1$ctl01',0,-1,-
1,10,5,'stathover','',0,0,'eyebrowmenubarsetheight','expeye','','');
tfly_init('ctl00$rs1$eb1$ctl02',0,-1,-
1,10,5,'stathover','',0,0,'eyebrowmenubarsetheight','expeye','','');
tfly_init('ctl00$rs1$eb1$ctl03',0,-1,-
1,10,5,'stathover','',0,0,'eyebrowmenubarsetheight','expeye','','');
tfly_init('ctl00$rs1$eb1$ctl04',0,-1,-
1,10,5,'stathover','',0,0,'eyebrowmenubarsetheight','expeye','','');
sys.application.add_init(function() {
$create(microsoft.mtps.web.ui.collapsiblepanelbehavior,
{"autocollapse":false,"autoexpand":false,"collapsecontrolid":"ctl00_rs1_mainconten
tcontainer_cpe279617_h","collapsed":false,"collapsedimage":"http://i.msdn.microsof
t.com/platform/controls/collapsiblearea/resources/plus.gif","collapsedsize":0,"col
lapsedtext":"","expandcontrolid":"ctl00_rs1_maincontentcontainer_cpe279617_h","exp
andedimage":"http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resourc
es/minus.gif","expandedsize":0,"expandedtext":"","imagecontrolid":"ctl00_rs1_mainc
ontentcontainer_cpe279617_i","scrollcontents":false,"suppresspostback":false,"text
labelid":"","id":"ctl00_rs1_maincontentcontainer_cpe279617_x"}, null, null,
$get("ctl00_rs1_maincontentcontainer_cpe279617_c"));
});
sys.application.add_init(function() {
$create(microsoft.mtps.web.ui.collapsiblepanelbehavior,
{"autocollapse":false,"autoexpand":false,"collapsecontrolid":"ctl00_rs1_mainconten
tcontainer_cpe279618_h","collapsed":false,"collapsedimage":"http://i.msdn.microsof
t.com/platform/controls/collapsiblearea/resources/plus.gif","collapsedsize":0,"col
lapsedtext":"","expandcontrolid":"ctl00_rs1_maincontentcontainer_cpe279618_h","exp
andedimage":"http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resourc
es/minus.gif","expandedsize":0,"expandedtext":"","imagecontrolid":"ctl00_rs1_mainc
ontentcontainer_cpe279618_i","scrollcontents":false,"suppresspostback":false,"text
labelid":"","id":"ctl00_rs1_maincontentcontainer_cpe279618_x"}, null, null,
$get("ctl00_rs1_maincontentcontainer_cpe279618_c"));
});
sys.application.add_init(function() {
$create(microsoft.mtps.web.ui.collapsiblepanelbehavior,
{"autocollapse":false,"autoexpand":false,"collapsecontrolid":"ctl00_rs1_mainconten
tcontainer_cpe279619_h","collapsed":false,"collapsedimage":"http://i.msdn.microsof
t.com/platform/controls/collapsiblearea/resources/plus.gif","collapsedsize":0,"col
lapsedtext":"","expandcontrolid":"ctl00_rs1_maincontentcontainer_cpe279619_h","exp
andedimage":"http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resourc
es/minus.gif","expandedsize":0,"expandedtext":"","imagecontrolid":"ctl00_rs1_mainc
ontentcontainer_cpe279619_i","scrollcontents":false,"suppresspostback":false,"text
labelid":"","id":"ctl00_rs1_maincontentcontainer_cpe279619_x"}, null, null,
$get("ctl00_rs1_maincontentcontainer_cpe279619_c"));
});
sys.application.add_init(function() {
$create(microsoft.mtps.web.ui.collapsiblepanelbehavior,
{"autocollapse":false,"autoexpand":false,"collapsecontrolid":"ctl00_rs1_mainconten
tcontainer_cpe279620_h","collapsed":false,"collapsedimage":"http://i.msdn.microsof
t.com/platform/controls/collapsiblearea/resources/plus.gif","collapsedsize":0,"col
lapsedtext":"","expandcontrolid":"ctl00_rs1_maincontentcontainer_cpe279620_h","exp
andedimage":"http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resourc
es/minus.gif","expandedsize":0,"expandedtext":"","imagecontrolid":"ctl00_rs1_mainc
ontentcontainer_cpe279620_i","scrollcontents":false,"suppresspostback":false,"text
labelid":"","id":"ctl00_rs1_maincontentcontainer_cpe279620_x"}, null, null,
$get("ctl00_rs1_maincontentcontainer_cpe279620_c"));
});
sys.application.add_init(function() {
$create(microsoft.mtps.web.ui.collapsiblepanelbehavior,
{"autocollapse":false,"autoexpand":false,"collapsecontrolid":"ctl00_rs1_mainconten
tcontainer_cpe279621_h","collapsed":false,"collapsedimage":"http://i.msdn.microsof
t.com/platform/controls/collapsiblearea/resources/plus.gif","collapsedsize":0,"col
lapsedtext":"","expandcontrolid":"ctl00_rs1_maincontentcontainer_cpe279621_h","exp
andedimage":"http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resourc
es/minus.gif","expandedsize":0,"expandedtext":"","imagecontrolid":"ctl00_rs1_mainc
ontentcontainer_cpe279621_i","scrollcontents":false,"suppresspostback":false,"text
labelid":"","id":"ctl00_rs1_maincontentcontainer_cpe279621_x"}, null, null,
$get("ctl00_rs1_maincontentcontainer_cpe279621_c"));
});
sys.application.add_init(function() {
$create(microsoft.mtps.web.ui.collapsiblepanelbehavior,
{"autocollapse":false,"autoexpand":false,"collapsecontrolid":"ctl00_rs1_mainconten
tcontainer_cpe279622_h","collapsed":false,"collapsedimage":"http://i.msdn.microsof
t.com/platform/controls/collapsiblearea/resources/plus.gif","collapsedsize":0,"col
lapsedtext":"","expandcontrolid":"ctl00_rs1_maincontentcontainer_cpe279622_h","exp
andedimage":"http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resourc
es/minus.gif","expandedsize":0,"expandedtext":"","imagecontrolid":"ctl00_rs1_mainc
ontentcontainer_cpe279622_i","scrollcontents":false,"suppresspostback":false,"text
labelid":"","id":"ctl00_rs1_maincontentcontainer_cpe279622_x"}, null, null,
$get("ctl00_rs1_maincontentcontainer_cpe279622_c"));
});
sys.application.add_init(function() {
$create(microsoft.mtps.web.ui.collapsiblepanelbehavior,
{"autocollapse":false,"autoexpand":false,"collapsecontrolid":"ctl00_rs1_mainconten
tcontainer_cpe279623_h","collapsed":false,"collapsedimage":"http://i.msdn.microsof
t.com/platform/controls/collapsiblearea/resources/plus.gif","collapsedsize":0,"col
lapsedtext":"","expandcontrolid":"ctl00_rs1_maincontentcontainer_cpe279623_h","exp
andedimage":"http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resourc
es/minus.gif","expandedsize":0,"expandedtext":"","imagecontrolid":"ctl00_rs1_mainc
ontentcontainer_cpe279623_i","scrollcontents":false,"suppresspostback":false,"text
labelid":"","id":"ctl00_rs1_maincontentcontainer_cpe279623_x"}, null, null,
$get("ctl00_rs1_maincontentcontainer_cpe279623_c"));
});
sys.application.add_init(function() {
$create(microsoft.mtps.web.ui.collapsiblepanelbehavior,
{"autocollapse":false,"autoexpand":false,"collapsecontrolid":"ctl00_rs1_mainconten
tcontainer_cpe279624_h","collapsed":false,"collapsedimage":"http://i.msdn.microsof
t.com/platform/controls/collapsiblearea/resources/plus.gif","collapsedsize":0,"col
lapsedtext":"","expandcontrolid":"ctl00_rs1_maincontentcontainer_cpe279624_h","exp
andedimage":"http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resourc
es/minus.gif","expandedsize":0,"expandedtext":"","imagecontrolid":"ctl00_rs1_mainc
ontentcontainer_cpe279624_i","scrollcontents":false,"suppresspostback":false,"text
labelid":"","id":"ctl00_rs1_maincontentcontainer_cpe279624_x"}, null, null,
$get("ctl00_rs1_maincontentcontainer_cpe279624_c"));
});
sys.application.add_init(function() {
$create(microsoft.mtps.web.ui.collapsiblepanelbehavior,
{"autocollapse":false,"autoexpand":false,"collapsecontrolid":"ctl00_rs1_mainconten
tcontainer_cpe279625_h","collapsed":false,"collapsedimage":"http://i.msdn.microsof
t.com/platform/controls/collapsiblearea/resources/plus.gif","collapsedsize":0,"col
lapsedtext":"","expandcontrolid":"ctl00_rs1_maincontentcontainer_cpe279625_h","exp
andedimage":"http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resourc
es/minus.gif","expandedsize":0,"expandedtext":"","imagecontrolid":"ctl00_rs1_mainc
ontentcontainer_cpe279625_i","scrollcontents":false,"suppresspostback":false,"text
labelid":"","id":"ctl00_rs1_maincontentcontainer_cpe279625_x"}, null, null,
$get("ctl00_rs1_maincontentcontainer_cpe279625_c"));
});
sys.application.add_init(function() {
$create(microsoft.mtps.web.ui.collapsiblepanelbehavior,
{"autocollapse":false,"autoexpand":false,"collapsecontrolid":"ctl00_rs1_mainconten
tcontainer_cpe279626_h","collapsed":false,"collapsedimage":"http://i.msdn.microsof
t.com/platform/controls/collapsiblearea/resources/plus.gif","collapsedsize":0,"col
lapsedtext":"","expandcontrolid":"ctl00_rs1_maincontentcontainer_cpe279626_h","exp
andedimage":"http://i.msdn.microsoft.com/platform/controls/collapsiblearea/resourc
es/minus.gif","expandedsize":0,"expandedtext":"","imagecontrolid":"ctl00_rs1_mainc
ontentcontainer_cpe279626_i","scrollcontents":false,"suppresspostback":false,"text
labelid":"","id":"ctl00_rs1_maincontentcontainer_cpe279626_x"}, null, null,
$get("ctl00_rs1_maincontentcontainer_cpe279626_c"));
});
//]]>
</script>
</form>
</body>
</html>

S-ar putea să vă placă și