<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The .NET Endpoint : Workflow</title><link>http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx</link><description>Tags: Workflow</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Getting started with Windows Server AppFabric</title><link>http://blogs.msdn.com/endpoint/archive/2009/11/30/getting-started-with-windows-server-appfabric.aspx</link><pubDate>Mon, 30 Nov 2009 22:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9930435</guid><dc:creator>AppFabric Team</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9930435.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9930435</wfw:commentRss><description>&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=2 face=Calibri&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 11pt"&gt;In a &lt;A href="http://blogs.msdn.com/endpoint/archive/2009/11/17/developing-and-managing-services-with-windows-server-appfabric.aspx"&gt;previous post&lt;/A&gt; we introduced Windows Server AppFabric, a set of extensions to the Windows Application Server that “make it easier to build, scale and manage Web and composite applications that run on Internet Information Services (IIS).” AppFabric enhances the Application Server role in Windows by providing some features out of the box that customers previously have had to build by themselves. These include a scalable distributed cache and features for managing WCF and WF services. In this post I’m going to give you some tips for getting started with the service and workflow management features of AppFabric. &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=2 face=Calibri&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 11pt"&gt;First, if you haven’t already done so, install AppFabric. You’ll find a pointer to the download page on the &lt;A href="http://msdn.microsoft.com/appfabric"&gt;Windows Server AppFabric Development Center site&lt;/A&gt;. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Keep this site handy. This is the main site for AppFabric and is where you will find the latest news as well as links to samples, tutorials, and the support forum.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=2 face=Calibri&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 11pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Find the &lt;A href="http://go.microsoft.com/fwlink/?LinkID=164914"&gt;link to the download page&lt;/A&gt; on the Dev Center site.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Follow that link and take a few minutes to download and read the installation guide and release notes. Install any prerequisite software and Windows hotfixes that you may be missing. The prereqs include .NET 4 Beta 2 and &lt;A href="http://blogs.msdn.com/powershell/"&gt;Windows PowerShell&lt;/A&gt; v2. If you’re running on Windows Vista SP2 or Windows Server 2008 SP2 you’ll need to uninstall PowerShell v1 and download and install v2. Windows 7 and Windows Server 2008 R2 include PowerShell v2 by default. See the installation guide for details. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=2 face=Calibri&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 11pt"&gt;On the download page find the Setup package for your machine’s operating system and architecture, and run the Setup wizard. We’ll use only the service and workflow management features of AppFabric for now so we require only the Worker feature to be installed, but install and configure the distributed cache features if you will use those later.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=2 face=Calibri&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 11pt"&gt;The Dev Center site links to a &lt;A href="http://go.microsoft.com/fwlink/?LinkID=168903"&gt;tutorial&lt;/A&gt; that walks you through deploying, configuring, monitoring, and managing a WF service. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;The tutorial does a nice job introducing most of the service and workflow management features of AppFabric and is well worth the time to go through. The first version of the tutorial has you use the IIS Manager tools for the exercises, while the second version has you complete the tasks using PowerShell cmdlets and scripts. The tutorial comes with a sample application that you will deploy using the &lt;A href="http://www.iis.net/expand/WebDeploymentTool"&gt;Web Deployment Tool&lt;/A&gt;. You’ll hear us highlight this tool quite a bit as we talk about managing IIS hosted services. The tool is powerful for synchronizing applications and IIS settings from one machine to another.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=2 face=Calibri&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 11pt"&gt;If you just want to see some of the features in action, though, you can create a simple workflow service project in Visual Studio 2010 and run it in IIS. Create a new project using the WCF Workflow Service Application template. This will give you a workflow service with a GetData operation that receives a message and sends a response. On the project properties, view the Web tab and configure the application to run in IIS instead of the Visual Studio Development Server.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you’re running Visual Studio elevated as an administrator and you have the IIS 6 Management Compatibility feature of IIS installed you can create a new virtual directory directly from the Web tab. Otherwise, use IIS Manager to create the virtual directory, pointing it to the root directory of your Visual Studio project. (This is where you’ll find the web.config and XAMLX files.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=2 face=Calibri&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 11pt"&gt;Once you have your application running in IIS you can see and manage its services with AppFabric. Open IIS Manager and expand the tree. Click on the root node and find the Application Server Extensions for .NET 4 modules in the center features pane. With those modules you can view service activity on the Dashboard, view endpoints, and configure services. Go back to your project in Visual Studio and add a Delay activity at the end of your workflow to keep instances alive for a few minutes so you can watch them go from the Active to Idle states in the Persisted WF Instances section of the Dashboard and see the instances show up in the WF Instance History section as they complete.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=2 face=Calibri&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 11pt"&gt;AppFabric adds some powerful features to the Windows Application Server. Install the Beta 1 and go through the tutorials to learn about the features in depth, or try a simple scenario on your own to get familiar with the features. If you run into any problems or have feedback to share with us please do so in our &lt;A href="http://social.msdn.microsoft.com/Forums/en-US/dublin/threads"&gt;forum&lt;/A&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;or via our &lt;A href="http://connect.microsoft.com/Dublin/feedback"&gt;Connect page&lt;/A&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9930435" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Dublin/default.aspx">Dublin</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/AppFabric/default.aspx">AppFabric</category></item><item><title>Developing and Managing Services with Windows Server AppFabric</title><link>http://blogs.msdn.com/endpoint/archive/2009/11/17/developing-and-managing-services-with-windows-server-appfabric.aspx</link><pubDate>Tue, 17 Nov 2009 19:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9923605</guid><dc:creator>Cliff Simpkins</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9923605.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9923605</wfw:commentRss><description>&lt;P&gt;Today at PDC we are excited to introduce the Windows Server AppFabric Beta 1. AppFabric evolves the existing application server capabilities of Windows Server to make it easier to build, scale and manage Web and composite applications that run on Internet Information Services (IIS).&lt;/P&gt;
&lt;P&gt;For Web applications, AppFabric provides caching capabilities to provide high-speed access, scale, and high availability to application data These capabilities are based on the technology previously code named “Velocity.”&lt;/P&gt;
&lt;P&gt;For composite applications, AppFabric makes it easier to build and manage services built using &lt;A href="http://msdn.microsoft.com/wf" target=_blank mce_href="http://msdn.microsoft.com/wf"&gt;Windows Workflow Foundation (WF)&lt;/A&gt; and &lt;A href="http://msdn.microsoft.com/wcf" target=_blank mce_href="http://msdn.microsoft.com/wcf"&gt;Windows Communication Foundation (WCF)&lt;/A&gt;. These capabilities are based on the technology previously code named “Dublin.”&lt;/P&gt;
&lt;P&gt;This first post provides an introduction to developing and managing WF services with AppFabric. Download the Beta 1 release at &lt;A href="http://msdn.microsoft.com/appfabric" target=_blank mce_href="http://msdn.microsoft.com/appfabric"&gt;http://msdn.microsoft.com/appfabric&lt;/A&gt;.&lt;/P&gt;
&lt;H1&gt;Introduction to AppFabric&lt;/H1&gt;
&lt;P&gt;The benefits of having service-based applications, often referred to as SOA, to create systems based on autonomous services have been articulated in several MSDN &lt;A href="http://www.bing.com/search?q=MSDN+SOA&amp;amp;form=QBLH&amp;amp;qs=n" mce_href="http://www.bing.com/search?q=MSDN+SOA&amp;amp;form=QBLH&amp;amp;qs=n"&gt;articles&lt;/A&gt;. &lt;A href="http://msdn.microsoft.com/wcf" mce_href="http://msdn.microsoft.com/wcf"&gt;WCF&lt;/A&gt; is the technology that enables this, and in turn has been integrated with other Microsoft developer technologies such as &lt;A href="http://msdn.microsoft.com/en-us/data/bb931106.aspx" mce_href="http://msdn.microsoft.com/en-us/data/bb931106.aspx"&gt;ADO.NET Data Services&lt;/A&gt;, WCF rich Internet applications (RIA) services and &lt;A href="http://msdn.microsoft.com/en-us/netframework/cc950529.aspx" mce_href="http://msdn.microsoft.com/en-us/netframework/cc950529.aspx"&gt;WCF REST&lt;/A&gt; services. In .NET Framework 4, WCF has been deeply integrated with an improved &lt;A href="http://msdn.microsoft.com/en-us/netframework/aa663328.aspx" mce_href="http://msdn.microsoft.com/en-us/netframework/aa663328.aspx"&gt;WF&lt;/A&gt; runtime enabling you to build WCF services that are implemented with WF. &lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Whatever technology that you use to build and compose services together, you face challenges based on these questions:. “When building server applications what features of the platform can I take advantage of that light up my application and enable me to focus more on the business?” “Having built this application, where is the best place to test this, to run this in production, and how do I manage it?”&lt;/P&gt;
&lt;P&gt;This post focuses on how Windows Server AppFabric, combined with the .NET Framework 4, addresses these challenges, with particular emphasis on WF services.&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;H1&gt;Developing WF Services &lt;/H1&gt;
&lt;P&gt;Depending on the architecture of your application, typically you build services focused on the middle tier. For example, ADO.NET Data Services are suited for the data access tier and can be composed together with other services in the middle tier. For an overview of WF services in .NET 4, read &lt;A href="http://msdn.microsoft.com/en-us/library/ee354381.aspx#_Workflow_Services" mce_href="http://msdn.microsoft.com/en-us/library/ee354381.aspx#_Workflow_Services"&gt;the Aaron’s overview of WCF in .NET 4 on MSDN&lt;/A&gt;. &lt;A title=_GoBack name=_GoBack&gt;&lt;/A&gt;In the middle tier, WF services are an ideal technology, since they are strongly focused on using declarative approaches for composing services for your business. For additional reading on WCF Services, &lt;A href="http://www.davidchappell.com/TheWorkflowWay--Chappell.pdf" mce_href="http://www.davidchappell.com/TheWorkflowWay--Chappell.pdf"&gt;David Chappell’s ‘The Workflow Way’&lt;/A&gt; provides an excellent introduction to the topic.&lt;/P&gt;
&lt;P&gt;The key values that WF Services bring to service authoring are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;Long-running applications&lt;/B&gt; that wait for external input for activation such as messages, thereby using resources efficiently.&lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;A single or sequential flow control programming model&lt;/B&gt; while handling the complexity of multiple async I/O calls. For example, by using a parallel activity in your WF Service you can coordinate multiple calls to other services allowing the WF runtime to take care of all the async message calls and marshaling the data back to your service.&lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;Coordination of messages to workflow instances&lt;/B&gt; &lt;B&gt;with the use of message correlation&lt;/B&gt;. WF Services in .NET Framework 4 provide content-based correlation that enables you to query the content of a message for unique information to identify the specific workflow instance the message relates to. This enables long-running scenarios being able to activate a specific workflow instance when clients send messages.&lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;Consistent WCF and WF instrumentation integrated with Event Tracing for Windows (ETW). &lt;/B&gt;The WCF and WF runtimes now both emit ETW events for tracing and tracking to provide detailed monitoring and diagnostics. Using ETW provides greater performance, thereby having less impact on your applications.&lt;B&gt;&lt;/B&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;An expressive set of workflow activities for authoring business process&lt;/B&gt;. Here the Flowchart activity is extremely powerful by enabling you to more closely match the typically graphical representation of a business process drawn using Visio, for example, with the implementation of the business in code using the Flowchart. &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;A simple extensibility model for workflow activities&lt;/B&gt;, enabling you to define your own library of business domain activities. These can be included into the Workflow Designer in Visual Studio 2010, enabling developers to more quickly build business WF services.&lt;/LI&gt;&lt;/UL&gt;
&lt;H1&gt;Hosting and Managing Services&lt;/H1&gt;
&lt;P&gt;Regardless of the technology used to build your service, where and how you run your services introduces a number of options. Today you can host your services in a process created by the Windows Process Activation service (WAS) in IIS, a Windows service or a self-hosted executable. This provides a mechanism for activating workflows, but is only one part of a broader hosting picture for providing a suitable environment to run your production applications. Typically there are other platform service requirements that as a developer you would like to take advantage of, such as application state storage (persistence), instrumentation for health monitoring, caching, and other capabilities that provide scalability and reliability to deployed applications. Windows Server as an application server today provides services you can take advantage of such as MSMQ for message queuing, and the event log for diagnostics. &lt;/P&gt;
&lt;P&gt;Windows Server AppFabric builds on the application server capabilities in Windows Server to 1) host and manage your WCF and WF Services and 2) provide a distributed in-memory data cache. AppFabric provides a set of common services that your applications can take advantage of thereby allowing you as a developer to concentrate on building solutions that solve key business problems. These common services are focused on enhancing Windows Server’s WCF and WF Service hosting capabilities, and making it easier to manage these services. Additionally the distributed cache introduces rich scale-out capabilities for applications built using .NET Framework.&lt;/P&gt;
&lt;H2&gt;Persisting WF Services &lt;/H2&gt;
&lt;P&gt;The key scenarios this enables are;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Reliability – The ability to persist (save) workflow state and reliably resume workflow instances that have been idle for a defined time interval.&lt;S&gt; &lt;/S&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;S&gt;&lt;/S&gt;Availability – The recovery of saved workflow state when an application, process, or computer terminates unexpectedly.&lt;/LI&gt;
&lt;LI&gt;Scalability – The ability to unload idle workflow instances from memory to efficiently use resources, the capability of retrying to load workflow instances when a message arrives on a different computer in the host farm, and gracefully handling retries when there is a lock on the instance.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Windows Server AppFabric provides a Windows service called the Workflow Management service (WMS) that manages instances in the persistence store. AppFabric can install a SQL Server persistence store for your WF Services which the WMS monitors to enable the scenarios above. AppFabric also supports other store solutions as well.&lt;/P&gt;
&lt;H2&gt;Monitoring&lt;/H2&gt;
&lt;P&gt;The key scenarios this enables are;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Health monitoring – How well is my app running? The ability to see expected healthy events occur within your service to know that it is still operational.&lt;/LI&gt;
&lt;LI&gt;Troubleshooting – What has failed with my app? The ability to quickly diagnose failures within your service and either correct these or provide a developer with further detailed information.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Windows Server AppFabric provides a Windows service called the Event Collector service that captures health and failure events from your services and writes these to a SQL Server monitoring store, or another store built to leverage the pluggable AppFabric monitoring solution. This provides analytical data about your applications. You can either take advantage of rich UI tooling integrated into IIS Manager to view these events in the monitoring store, or build your own reporting using SQL Server Reporting Services or another data analysis solution, to view this data.&lt;/P&gt;
&lt;H2&gt;Process Hosting&lt;/H2&gt;
&lt;P&gt;The key scenarios this enables are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;Efficiently using computer resources by hosting services in the Windows Process Activation Service (WAS) in IIS&lt;/B&gt;. IIS and the WF runtime are deeply integrated. For example, if IIS decides to recycle a process due to memory constrains it will communicate with the WF Service to ensure that a graceful shutdown occurs, thereby allowing the service to be restarted in another process or on another computer by the WMS.&lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;Auto-start to “warm-up” services hosted in IIS&lt;/B&gt;. When the computer starts, or when IIS starts, services can be pre-warmed, thereby reducing the latency on the first message.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;By integrating the WF runtime deeply with the IIS/WAS process activation model, WF Services are ideally suited to being hosted in IIS/WAS and benefit from the rich hosting capabilities that IIS/WAS provide.&lt;/P&gt;
&lt;H2&gt;Distributed Caching&lt;/H2&gt;
&lt;P&gt;Distributed, service-oriented applications often require support for a large number of users, and high performance, throughput, and short response time. Services are increasingly moving “far away” from their underlying data stores and in many cases those data stores are “expensive” to access due to both technical and licensing costs. As a result, developers are increasingly forced to find alternatives to continually accessing the physical data store and often turn to caching to meet these challenges. &lt;/P&gt;
&lt;P&gt;Windows Server AppFabric provides a distributed, in-memory, application cache for developing scalable, available, and high-performance applications. The caching capabilities fuse memory across multiple computers to give applications a single unified cache view that can be easily scaled-out by simply adding more computers on demand. &lt;/P&gt;
&lt;P&gt;Some key caching features provided by Windows Server AppFabric include:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Caching any serializable CLR object and providing access through simple cache APIs&lt;/LI&gt;
&lt;LI&gt;Enterprise scale: tens to hundreds of computers&lt;/LI&gt;
&lt;LI&gt;Configurable to run as a service accessed over the network &lt;/LI&gt;
&lt;LI&gt;Dynamic scale-out by adding new nodes&lt;/LI&gt;
&lt;LI&gt;High availability through backup copies&lt;/LI&gt;
&lt;LI&gt;Automatic load-balancing&lt;/LI&gt;
&lt;LI&gt;Seamless integration with ASP.NET with an ASP.NET Session State Provider (better perf and scale and no more sticky routing!)&lt;/LI&gt;
&lt;LI&gt;Integration with administration and monitoring tools such as Windows PowerShell, Event Tracing for Windows, and System Center.&lt;/LI&gt;&lt;/UL&gt;
&lt;H1&gt;Tooling&lt;/H1&gt;
&lt;P&gt;The tooling support for services in Windows Server AppFabric will be covered in more detail by future posts. Integrating tooling into IIS Manager provides a familiar management, control, and monitoring experience for the IT professional managing applications in a production environment or the developer troubleshooting deployed applications. In addition, AppFabric provides an extensive set of Windows PowerShell commands to enable you to script the capabilities in the UI.&lt;/P&gt;
&lt;H1&gt;Summary&lt;/H1&gt;
&lt;P&gt;This post describes the key benefits of building WF Services with Visual Studio 2010 and .NET Framework 4, and the benefits of hosting these in Windows Server and managing and scaling them with AppFabric. &lt;/P&gt;
&lt;P&gt;The deep integration of WCF and WF provides an intuitive approach for developing declarative WF Services. WF Services make it possible to build long-running services that take advantage of the service coordination support provided by the workflow runtime, enabling you to use workflow to solve key business problems. &lt;/P&gt;
&lt;P&gt;Windows Server AppFabric adds improved hosting capabilities to Windows Server to efficiently host all your WCF services, including WF Services. Additionally, AppFabric provides common services that help you as a developer build scalable Web and composite applications.&lt;/P&gt;
&lt;H1&gt;Downloads&lt;/H1&gt;
&lt;P&gt;You can download Visual Studio 2010 Beta 2 from &lt;A href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx" mce_href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;the Visual Studio 2010 page on MSDN&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;You can download Windows Server AppFabric Beta 1 from &lt;A href="http://msdn.microsoft.com/appfabric" mce_href="http://msdn.microsoft.com/appfabric"&gt;AppFabric page on MSDN&lt;/A&gt;. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9923605" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Dublin/default.aspx">Dublin</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/AppFabric/default.aspx">AppFabric</category></item><item><title>New Beta 2 docs to help with code migration (from .NET 3.x and .NET 4 Beta 1)</title><link>http://blogs.msdn.com/endpoint/archive/2009/11/02/new-beta-2-docs-to-help-with-code-migration-from-net-3-x-and-net-4-beta-1.aspx</link><pubDate>Mon, 02 Nov 2009 16:06:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9916213</guid><dc:creator>Cliff Simpkins</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9916213.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9916213</wfw:commentRss><description>&lt;p&gt;Fresh on the heels of the &lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx" target="_blank"&gt;beta 2 release of .NET 4/Visual Studio 2010&lt;/a&gt;, the team has been working on supplemental documentation to help you out with evaluation and adoption of WCF and WF in .NET 4.&lt;/p&gt;  &lt;p&gt;Last week, two sets of documentation went live:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=153313" target="_blank"&gt;WF4 Migration Guidance&lt;/a&gt;: The WF team updated the documents to .NET Beta 2. We posted the documents up to the Downloads site mid last week.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=169193" target="_blank"&gt;B1-&amp;gt;B2 Breaking Changes&lt;/a&gt;: The team also created a document that outlines the breaking changes between Beta 1 and Beta 2 of the .NET Framework 4.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We have a couple of new migration guidance documents in their final authoring/reviewing stages, and I hope to have them published out to the Downloads site by the time PDC comes around.&lt;/p&gt;  &lt;p&gt;It’s exciting times having the second beta bits out, seeing what folks are doing with the new capabilities in .NET 4, and hearing from some customers that they are planning on taking advantage of the &lt;a href="http://blogs.msdn.com/jeffbe/archive/2009/10/19/going-live-with-visual-studio-2010-beta-2.aspx" target="_blank"&gt;”Go Live” License&lt;/a&gt; that is available with the Beta 2 release.&lt;/p&gt;  &lt;p&gt;At any rate – happy Monday all – enjoy the docs and the new beta! If you’re heading to PDC and &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/10/26/going-to-pdc-want-to-meet-the-team.aspx" target="_blank"&gt;want to grab lunch with someone from the team while at the event&lt;/a&gt;, remember to drop me a note. BTW – I saw the shirts for the event last week – they look real nice!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9916213" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/PDC/default.aspx">PDC</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category></item><item><title>WF4 Changes Between Beta 1 and Beta 2</title><link>http://blogs.msdn.com/endpoint/archive/2009/10/20/wf4-changes-between-beta-1-and-beta-2.aspx</link><pubDate>Tue, 20 Oct 2009 05:25:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909665</guid><dc:creator>mwinkle</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9909665.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9909665</wfw:commentRss><description>&lt;p&gt;Hi all, I’m &lt;a href="http://blogs.msdn.com/mwinkle"&gt;Matt Winkler&lt;/a&gt;, a PM on the WF team and occasional guest blogger here on the endpoint.&amp;#160; I wanted to take a moment to highlight some of the interesting new things in WF4 in Beta 2.&amp;#160; For more info on Beta 2, please check out &lt;a href="http://go.microsoft.com/fwlink/?LinkID=151797"&gt;this page&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;The goals of a milestone like Beta 2 are two fold: 1.) to react to customer feedback that we’ve received on previous releases and 2.) stabilize and lock down the product to get ready to ship.&amp;#160; While the items in #1 will be most visible, the team has done a lot of work stabilizing the product, and I feel pretty good about the Beta 2 release.&lt;/p&gt;  &lt;p&gt;What are the big changes? &lt;/p&gt;  &lt;h1&gt;Activity Hierarchy&amp;#160; Changes&lt;/h1&gt;  &lt;p&gt;For those of you who thought it was a little weird that we talked about writing activities, but having to derive (ultimately) from WorkflowElement in order to write them, this change is for you.&amp;#160; Here’s a snapshot of the activity hierarchy in Beta 1:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/WF4ChangesBetweenBeta1andBeta2_D123/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WorkflowElement" border="0" alt="WorkflowElement" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/WF4ChangesBetweenBeta1andBeta2_D123/image_thumb.png" width="469" height="320" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We heard that feedback loud and clear and have made a few changes to how the activity hierarchy is factored:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/WF4ChangesBetweenBeta1andBeta2_D123/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/WF4ChangesBetweenBeta1andBeta2_D123/image_thumb_1.png" width="460" height="331" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The key changes are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;WorkflowElement&lt;/strong&gt; goes away, and is replaced with &lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.activities.activity(VS.100).aspx"&gt;Activity&lt;/a&gt;&lt;/strong&gt;.&amp;#160; Activity is the root type for all units of execution within the world of WF &lt;/li&gt;    &lt;li&gt;Addition of &lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.activities.activitywithresult(VS.100).aspx"&gt;ActivityWithResult&lt;/a&gt;&lt;/strong&gt; which is the base for the Expression activities &lt;/li&gt;    &lt;li&gt;Addition of &lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.activities.asynccodeactivity(VS.100).aspx"&gt;AsyncCodeActivity&lt;/a&gt;.&lt;/strong&gt;&amp;#160; We got a lot of feedback that people liked what we were doing integrating asynchronous programming within activities but that there was still a fair amount of work in order to hook those up.&amp;#160; &lt;strong&gt;AsyncCodeActivity&lt;/strong&gt; is some nice sugar that makes it pretty easy to write an activity that takes advantage APIs that surface a Begin/End pair using the asynchronous programming model. &lt;/li&gt; &lt;/ul&gt;  &lt;h1&gt;Runtime and Hosting &lt;/h1&gt;  &lt;p&gt;Validation has been improved for activity authors to write code within &lt;a href="http://msdn.microsoft.com/en-us/library/system.activities.activity.cachemetadata(VS.100).aspx"&gt;&lt;strong&gt;CacheMetadata()&lt;/strong&gt;&lt;/a&gt; to validate the activity tree.&amp;#160; CacheMetadata() is also the one stop shop for customizing behaviors that were previously spread through methods like OnGetArguments(), GetConstraints(),&amp;#160; and GetActivities()&lt;/p&gt;  &lt;p&gt;Make it easier to use &lt;a href="http://msdn.microsoft.com/en-us/library/system.activities.activityaction(VS.100).aspx"&gt;&lt;strong&gt;ActivityAction&lt;/strong&gt;&lt;/a&gt; by introducing &lt;a href="http://msdn.microsoft.com/en-us/library/system.activities.delegateargument(VS.100).aspx"&gt;&lt;strong&gt;DelegateArguments&lt;/strong&gt;&lt;/a&gt; to pass data into and out of an ActivityAction.&amp;#160; In Beta 1, this required using an object of type Variable&amp;lt;T&amp;gt; that was assigned to a property named Argument. &lt;/p&gt;  &lt;p&gt;In the ‘under the hood’ category, the team has made improvements to Persistance, Durable timer and tracking which should provide a better runtime experience for the WF4 developer.&lt;/p&gt;  &lt;p&gt;Last on the runtime front, dynamic update was a feature that had made its debut in Beta 1, but was removed again between Beta 1 and Beta 2 - and will not be present in the RTM release.&amp;#160; &lt;/p&gt;  &lt;p&gt;And, within hosting, WorkflowInstance was renamed to &lt;a href="http://msdn.microsoft.com/en-us/library/system.activities.workflowapplication(VS.100).aspx"&gt;&lt;strong&gt;WorkflowApplication&lt;/strong&gt;&lt;/a&gt; based on Beta 1 feedback from users.&lt;/p&gt;  &lt;h1&gt;Activities&lt;/h1&gt;  &lt;p&gt;The messaging activities are the key component for integrating WF and WCF together.&amp;#160; Based on customer feedback we’ve made improvements to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Correlation      &lt;ul&gt;       &lt;li&gt;XPath can now be generated from ParametersContent &lt;/li&gt;        &lt;li&gt;CorrelationQuery and AdditionalCorrelations have been merged into a collection called &lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.activities.correlationinitializer(VS.100).aspx"&gt;&lt;strong&gt;CorrelationInitializers&lt;/strong&gt;&lt;/a&gt;.&amp;#160;&amp;#160; Also, we’ve reduced the need for CorrelationHandles all over the place by improving the &lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.activities.correlationscope(VS.100).aspx"&gt;&lt;strong&gt;CorrelationScope&lt;/strong&gt;&lt;/a&gt; and having an implicit correlation handle. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Parameters support      &lt;ul&gt;       &lt;li&gt;We’ve removed the *Parameters activities and merged that into the &lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.activities.send(VS.100).aspx"&gt;&lt;strong&gt;Send&lt;/strong&gt;&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.activities.receive(VS.100).aspx"&gt;&lt;strong&gt;Receive&lt;/strong&gt;&lt;/a&gt; activities.&amp;#160; You can now use the &lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.activities.send.content(VS.100).aspx"&gt;&lt;strong&gt;Content&lt;/strong&gt;&lt;/a&gt; property to support MessageContent (primarily for untyped Message or MessageContract ) and ParametersContent (which is for the more RPC style list of name value pairs). &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We’ve also refactored the semantics around the error handling activities to behave similar to a “throw” in a C# catch block. The most visible aspect of this change is the addition of the &lt;a href="http://msdn.microsoft.com/en-us/library/system.activities.statements.rethrow(VS.100).aspx"&gt;&lt;strong&gt;Rethrow&lt;/strong&gt;&lt;/a&gt; activity.&lt;/p&gt;  &lt;p&gt;Lastly, the InvokePowershell activity is no longer shipped as part of the .NET Framework. Fear note, for it is not gone; it has been moved to the SDK samples, joining other quite useful activities.&lt;/p&gt;  &lt;h1&gt;&amp;#160;&lt;/h1&gt;  &lt;h1&gt;Interop Activity &lt;/h1&gt;  &lt;p&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/system.activities.statements.interop(VS.100).aspx"&gt;&lt;strong&gt;Interop&lt;/strong&gt;&lt;/a&gt; activity is a key component for WF4 workflows, allowing you to continue to leverage activities built in WF3.&amp;#160; We’ve made improvements to the way that validations and transactions are handled within the Interop activity to more fully support WF3 activities. &lt;/p&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h1&gt;Designer&lt;/h1&gt;  &lt;p&gt;I plan on having a whole post specifically around that, but we’ve done a fair bit of work to address feedback that we’ve received, namely:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Expand in place support      &lt;ul&gt;       &lt;li&gt;This makes it easy expand an activity within the canvas without having to drill into it.&amp;#160; This also lets you collapse activities when you don’t want to see all of the detail &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Imports designer      &lt;ul&gt;       &lt;li&gt;No more fully qualified type names within expressions &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Text of flowchart lines for FlowDecision and FlowSwitch      &lt;ul&gt;       &lt;li&gt;This is a nice usability / readability fix for the Flowchart, making it easier to see which cases and conditions the lines leading from decision shapes are for. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We received a lot of great feedback from folks about Beta1, and we’ve had a few usability studies done here in Redmond which have provided additional feedback that have shaped the work that we’ve done on the designer.&amp;#160; Additionally, we’ve done work to clean up the object model to make it easier to rehost and customize the design experience. There have also been a number of key stability improvements and bug fixes to the expression editing experience which was a little rough in Beta 1. &lt;/p&gt;  &lt;p&gt;If there are other resources you are looking for, let us know!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909665" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category></item><item><title>All WCF, WF, and ‘Dublin’ sessions live on PDC site; 5 Weeks to Go!</title><link>http://blogs.msdn.com/endpoint/archive/2009/10/14/all-wcf-wf-and-dublin-sessions-live-on-pdc-site-5-weeks-to-go.aspx</link><pubDate>Wed, 14 Oct 2009 17:01:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9907240</guid><dc:creator>Cliff Simpkins</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9907240.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9907240</wfw:commentRss><description>&lt;p&gt;We’re five weeks out from &lt;a href="http://microsoftpdc.com/"&gt;PDC09&lt;/a&gt;, and the rest of our sessions went live last week. I know I posted a couple weeks ago about PDC and sessions that went live, but I wanted to let folks know about the four new sessions – to help you maximize your experience around the Connected Framework technologies!&lt;/p&gt;  &lt;p&gt;This looks to be a great event, as the team dives in deep on the enhancements coming with .NET 4, and discussing some of the thoughts around what’s to come next.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PDC Sessions of Note     &lt;br /&gt;&lt;/strong&gt;The below list is a refresh of the one &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/09/29/the-team-is-getting-ready-for-pdc-are-you.aspx"&gt;I posted a couple weeks ago&lt;/a&gt;, with additions marked out.&lt;/p&gt;  &lt;p&gt;The larger team will be delivering the following seven sessions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/FT25"&gt;&lt;strong&gt;Microsoft Application Server Technologies: Present and Future&lt;/strong&gt;&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Anil-Nori"&gt;Anil Nori&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/FT13"&gt;What’s New for Windows Communication Foundation 4&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Ed-Pinto"&gt;Ed Pinto&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/P09-22"&gt;Windows Workflow Foundation 4 from the Inside Out&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Bob-Schmidt"&gt;Bob Schmidt&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/FT17"&gt;Spice up your applications with WF 4&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Matt-Winkler"&gt;Matt Winkler&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/FT14"&gt;Workflow Services and ‘Dublin’&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Mark-Fussell"&gt;Mark Fussell&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/SVR15"&gt;&lt;strong&gt;Microsoft BizTalk Server Futures and Roadmap&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;(&lt;a href="http://microsoftpdc.com/Speakers/Balasubramanian-Sriram"&gt;Balasubramanian Sriram&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/SVR16"&gt;&lt;strong&gt;Connecting Applications with the Microsoft BizTalk Enterprise Service Bus&lt;/strong&gt;&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Syed-Rasheed"&gt;Syed Rasheed&lt;/a&gt;; &lt;a href="http://microsoftpdc.com/Speakers/Ron-Jacobs"&gt;Ron Jacobs&lt;/a&gt;)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In addition to the sessions being done by the team, WCF comes up in several other sessions of note at the event:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/P09-01"&gt;Accelerating Applications Using Windows HPC Server 2008&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/CL06"&gt;Networking and Web Services in Silverlight&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/PR12"&gt;It's All About the Services: Developing Custom Applications for Microsoft SharePoint Server 2010 Using Microsoft ASP.NET, WCF, and REST&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Maxim-Lukiyanov"&gt;Maxim Lukiyanov&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/SVR20"&gt;&lt;strong&gt;Queuing and Publish/Subscribe in a Heterogeneous Environment&lt;/strong&gt;&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/David-Ingham"&gt;David Ingham&lt;/a&gt;; &lt;a href="http://microsoftpdc.com/Speakers/John-O%E2%80%99Hara"&gt;John O’Hara&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/FT12"&gt;Using ADO.NET Data Services&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Pablo-Castro"&gt;Pablo Castro&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/P09-04"&gt;Data Programming and Modeling for the Microsoft .NET Developer&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Don-Box"&gt;Don Box&lt;/a&gt;, &lt;a href="http://microsoftpdc.com/Speakers/Chris-Anderson"&gt;Chris Anderson)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;On the Floor of the Event&lt;/strong&gt;    &lt;br /&gt;As an update, we have confirmed that we will have a small 20-seat theatre in the Framework and Tools lounge area. In the theatre area, we’ll be doing a series shorter ‘chalk talks’, discussing more special interest topics. There are some real gems being planned for discussion; we’re looking forward to hearing your thoughts.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’ll post up any additional notes as we come up on the event. And, as a reminder, drop a note if you want to catch up with someone from the team while at PDC. Let me know what you would like to discuss, and I’ll reach out to the team that will be in LA and try to connect you with someone so you can coordinate schedules.&lt;/p&gt;  &lt;p&gt;Hope to see y’all in LA!   &lt;br /&gt;Cliff&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9907240" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/PDC/default.aspx">PDC</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Dublin/default.aspx">Dublin</category></item><item><title>The team is getting ready for PDC; are you?</title><link>http://blogs.msdn.com/endpoint/archive/2009/09/29/the-team-is-getting-ready-for-pdc-are-you.aspx</link><pubDate>Tue, 29 Sep 2009 21:19:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9900912</guid><dc:creator>Cliff Simpkins</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9900912.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9900912</wfw:commentRss><description>&lt;p&gt;The &lt;a href="http://microsoftpdc.com/" target="_blank"&gt;2009 Professional Developers Conference (PDC)&lt;/a&gt; is less than a couple months away, and the team is starting to create content and demos for the event. The team has been working with PDC event management over the last couple months to secure sessions and space at the event; and I wanted to share with you how the event is shaping up, as well as make a plug for our sessions.&lt;/p&gt;  &lt;p&gt;The event will deliver a lot of really great material, as well as provide you with access to folks who are writing the code. We hope you can make it down to Los Angeles in November for the event.&lt;/p&gt;  &lt;h2&gt;PDC Sessions Of Note&lt;/h2&gt;  &lt;p&gt;So far, four sessions are currently live on the &lt;a href="http://microsoftpdc.com/" target="_blank"&gt;PDC event website&lt;/a&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/FT13" target="_blank"&gt;What’s New for Windows Communication Foundation 4&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Ed-Pinto" target="_blank"&gt;Ed Pinto&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/P09-22" target="_blank"&gt;Windows Workflow Foundation 4 from the Inside Out&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Bob-Schmidt" target="_blank"&gt;Bob Schmidt&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/FT17" target="_blank"&gt;Spice up your applications with WF 4&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Matt-Winkler" target="_blank"&gt;Matt Winkler&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/FT14" target="_blank"&gt;Workflow Services and ‘Dublin’&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Mark-Fussell" target="_blank"&gt;Mark Fussell&lt;/a&gt;)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In addition to the sessions being done by the team, WCF comes up in several other sessions of note at the event:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/P09-01" target="_blank"&gt;Accelerating Applications Using Windows HPC Server 2008&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/CL06" target="_blank"&gt;Networking and Web Services in Silverlight&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/PR12"&gt;It's All About the Services: Developing Custom Applications for Microsoft SharePoint Server 2010 Using Microsoft ASP.NET, WCF, and REST&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Maxim-Lukiyanov" target="_blank"&gt;Maxim Lukiyanov&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/FT12"&gt;Using ADO.NET Data Services&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Pablo-Castro" target="_blank"&gt;Pablo Castro&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/P09-04"&gt;Data Programming and Modeling for the Microsoft .NET Developer&lt;/a&gt; (&lt;a href="http://microsoftpdc.com/Speakers/Don-Box"&gt;Don Box&lt;/a&gt;, &lt;a href="http://microsoftpdc.com/Speakers/Chris-Anderson"&gt;Chris Anderson)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We are working very hard to not present the same content as last year. &lt;/p&gt;  &lt;p&gt;For WF, we’re building upon last year’s introductions to WF4 to expose more of the underlying architecture of the new WF runtime, really giving you a view into how different the new runtime is…and demonstrating how workflow services work in the new Windows Application Server technology (codename ‘Dublin’). &lt;/p&gt;  &lt;p&gt;For WCF, we heard you loud and clear that there wasn’t enough WCF content. This year, we have a session focusing on the WCF enhancements coming in .NET 4, in addition to the sessions covering how WCF is used with HPC Server, Silverlight, and covering advances in ADO.NET Data Services (which is built upon WCF). &lt;/p&gt;  &lt;p&gt;And, last but not least, last year’s PDC introduced the technology called ‘Dublin’ – and it’s been a hot topic for customers ever since PDC. This year, we dive deeper into how ‘Dublin’ lights up WCF and WF applications and where we’re going with the technology.&lt;/p&gt;  &lt;p&gt;We have a few more excellent sessions in the pipeline covering technology futures; and I’ll post the updated list up here when the next batch of sessions goes live.&lt;/p&gt;  &lt;h2&gt;On the Floor of the Event&lt;/h2&gt;  &lt;p&gt;Beyond sessions, speakers and other team members will be at the event in the lounge area for Framework and Tools, both to hang out and chat with you about the technologies, as well as working a couple booths in the lounge area to show the technologies in action. &lt;/p&gt;  &lt;p&gt;Anyone attending PDC is encouraged to stop down to the lounge and say hello. Bring your questions or just share your thoughts on the technologies; we truly love meeting our customers – and your comments and questions do have direct impact on the shape of the future platform. If there’s someone in particular you would like to connect with, let me know – I’m happy to share folks’ lounge schedules as we come up on the event and schedules are finalized…just let me know who you’re looking to connect with or a particular topic you want to drill down on.&lt;/p&gt;  &lt;p&gt;We are currently working on getting a small 20-seat chalk-talk area in the lounge area again this year to do smaller, more niche discussions. We’ll post more on that topic here in the coming weeks, as well, as we make progress on that front.&lt;/p&gt;  &lt;h2&gt;Pre-PDC Workshops&lt;/h2&gt;  &lt;p&gt;And, lastly, it’s worth noting that &lt;a href="http://microsoftpdc.com/Speakers/Michele-Leroux-Bustamante"&gt;Michele Leroux Bustamante&lt;/a&gt; will be running a pre-PDC workshop covering the &lt;a href="http://microsoftpdc.com/Sessions/Microsoft-Technology-Roadmap"&gt;Microsoft Technology Roadmap&lt;/a&gt;, helping workshop attendees understand how the many technologies that make up the .NET Framework fit together – from A-W (Azure to Azure). ^_^&lt;/p&gt;  &lt;p&gt;There is also a FREE &lt;a href="http://microsoftpdc.com/Sessions/WKSP08" target="_blank"&gt;Windows 7 Developer Boot Camp&lt;/a&gt; pre-PDC workshop that is open to anyone (whether attending PDC or not) as long as there is room.&lt;/p&gt;  &lt;h2&gt;Not registered? There’s still room!&lt;/h2&gt;  &lt;p&gt;There’s still room at the event, and I hear they have a $300 discount for folks registering before October 13 (and there’s also a significant discount for students and employees of academic institutions). And there is still plenty of hotel availability around the convention center as of a couple weeks ago (when I registered). A couple of the closest hotels were full, but there are still plenty of quality ones about.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9900912" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/PDC/default.aspx">PDC</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Dublin/default.aspx">Dublin</category></item><item><title>Migration Guidance for the WF Developer (Beta 1 - Part 2)</title><link>http://blogs.msdn.com/endpoint/archive/2009/07/21/migration-guidance-for-the-wf-developer-beta-1-part-2.aspx</link><pubDate>Wed, 22 Jul 2009 02:41:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9844065</guid><dc:creator>Cliff Simpkins</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9844065.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9844065</wfw:commentRss><description>&lt;p&gt;About six weeks ago, &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/06/05/migration-guidance-for-the-wf-developer.aspx" target="_blank"&gt;the WF team published up the first four WF3-&amp;gt;WF4 migration guidance documents&lt;/a&gt;, aimed at helping WF developers prepare and think about the new WF object model runtime.&lt;/p&gt;  &lt;p&gt;Today, we published the next three documents in the series to the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=153313" target="_blank"&gt;WF4 Migration Guidance document set&lt;/a&gt;. With today’s release, we begin moving from the general guidance and start to present cookbook material, addressing more specific scenarios and presenting code.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;WF Migration Overview (&lt;font color="#008080"&gt;Already Live&lt;/font&gt;)        &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;Overview of the document collection and an initial starting place for the WF3 developer&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Migration: Best Practices for WF3 Development (&lt;font color="#008080"&gt;Already Live&lt;/font&gt;)&lt;/strong&gt;      &lt;br /&gt;&lt;i&gt;How to design WF3 artifacts so they are more easily migratable to WF4&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Guidance: Rules (&lt;font color="#008080"&gt;&lt;font color="#008080"&gt;Already Live&lt;/font&gt;&lt;/font&gt;)        &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Discussion of how to bring rules-related investments forward into .NET 4&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Guidance: State Machine (&lt;font color="#008080"&gt;Already Live&lt;/font&gt;)        &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Discussion of WF4 control flow modeling in the absence of a StateMachine activity&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Migration Cookbook: Custom Activities (&lt;font color="#008080"&gt;Now Live!&lt;/font&gt;)        &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Examples and instructions for redesigning WF3 custom activities on WF4&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Migration Cookbook: Workflows (&lt;font color="#008080"&gt;Now Live!&lt;/font&gt;)        &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Examples and instructions for redesigning WF3 workflows on WF4&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Migration Cookbook: Workflow Services (&lt;font color="#008080"&gt;Now Live!&lt;/font&gt;)        &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Examples and instructions for redesigning WF3 workflow services on WF4&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Migration Cookbook: Advanced Custom Activities (Coming Soon)       &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Examples and instructions for redesigning advanced WF3 custom activities on WF4&lt;/i&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As I mentioned in the last post about the documents, &lt;a href="http://go.microsoft.com/fwlink/?LinkID=153313" target="_blank"&gt;these documents&lt;/a&gt; are initial draft releases that the team is releasing to you. For these, they are all written for the object model and features that are part of Beta 1. We will be updating the documents as additional releases of .NET 4 are publicly released, and the documents will address further scenarios with each release.&lt;/p&gt;  &lt;p&gt;Also – again – the team will be supporting feedback and requests for the documents and accompanying sample code in the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/wfprerelease/threads"&gt;WF 4 forum on MSDN&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Happy reading!   &lt;br /&gt;Cliff&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9844065" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Activities/default.aspx">Activities</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Samples/default.aspx">Samples</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Migration/default.aspx">Migration</category></item><item><title>Tracking Participants in .NET 4 Beta 1</title><link>http://blogs.msdn.com/endpoint/archive/2009/07/14/tracking-participants-in-net-4-beta-1.aspx</link><pubDate>Wed, 15 Jul 2009 02:11:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9833632</guid><dc:creator>.NET Connected Framework Team</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9833632.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9833632</wfw:commentRss><description>&lt;p&gt;Hello! My name is Miguel Susffalich and I work in the Connected Framework team. In previous posts we have showed an &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/06/11/introduction-to-workflow-tracking-in-net-framework-4-0-beta1.aspx"&gt;Introduction to Workflow Tracking&lt;/a&gt; and a deep dive into &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/06/19/workflow-tracking-profiles-in-net-4-0-beta-1.aspx"&gt;Tracking Profiles in .NET 4 Beta 1&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;In this post we will explain how Tracking Participants work and how they are used to process and store the Tracking Records emitted from the workflow. We will also cover the out of box Event Tracing for Windows (ETW) Tracking Participant and how to use it to view Tracking Records in Event Viewer. &lt;/p&gt;  &lt;p&gt;You can also try out the following samples for a more hands on experience with Tracking in .NET 4 Beta 1. Throughout this blog post, we will be using several examples contained in these resources:&lt;/p&gt;  &lt;p&gt;1) &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5aca0622-d87d-4cc9-a22c-0d58205a56b4&amp;amp;displaylang=en"&gt;WCF and WF samples for .NET 4 Beta 1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2) &lt;a href="http://msdn.microsoft.com/en-us/library/dd807395(VS.100).aspx"&gt;ETW tracking participant sample&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Tracking Participant Overview&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;As mentioned in the &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/06/11/introduction-to-workflow-tracking-in-net-framework-4-0-beta1.aspx"&gt;Introduction to Workflow Tracking&lt;/a&gt;, in WF 4 there are 3 main components to the tracking infrastructure:&lt;/p&gt;  &lt;p&gt;1) &lt;b&gt;Tracking Records&lt;/b&gt; are emitted from the Workflow Runtime.&lt;/p&gt;  &lt;p&gt;2) &lt;b&gt;Tracking Profiles&lt;/b&gt; let you subscribe to Tracking Records in a declarative, flexible manner.&lt;/p&gt;  &lt;p&gt;3) &lt;b&gt;Tracking Participants&lt;/b&gt; listen to the Tracking Records being emitted from the runtime directly and process them in whatever way they choose to. This includes writing to a specific output (e.g. File, Console, ETW), processing/aggregating the records, or any other combination that might be required.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/TrackingParticipantsin.NET4Beta1_E39D/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/TrackingParticipantsin.NET4Beta1_E39D/image_thumb.png" width="545" height="487" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In WF 4, multiple tracking participants can consume the tracking events simultaneously. Each tracking participant can be associated with a different tracking profile. &lt;/p&gt;  &lt;p&gt;Tracking Participants are used to get the tracking data emitted from the workflow and store it into different mediums. Likewise, any post processing on the Tracking Records can also be done within the Tracking Participant. In future posts we will cover the full extensibility of the Tracking infrastructure provided in WF 4, including writing Custom Tracking Participants.&lt;/p&gt;  &lt;p&gt;Next we will look at the out of box Tracking Participant included in .Net 4 Beta 1; the ETW Tracking Participant.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Out of box ETW Tracking Participant&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In .NET 4, we ship an out of box Event Tracing for Windows (ETW) Tracking Participant which writes the Tracking Records to ETW. The ETW Tracking Participant writes these records to an ETW session in a very efficient manner with minimal impact to the app’s performance. &lt;/p&gt;  &lt;p&gt;One of the advantages of using this tracking participant is the tracking records can be viewed in the Windows Event Viewer, alongside your application and system logs.&lt;/p&gt;  &lt;p&gt;The ETW tracking participant is configured in the web.config as follows &lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0" width="539"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="537"&gt;           &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&amp;lt;configuration&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&amp;lt;system.web&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;compilation targetFrameworkMoniker=&amp;quot;.NETFramework,Version=v4.0&amp;quot;/&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&amp;lt;/system.web&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&amp;lt;system.serviceModel&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;diagnostics&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt; &lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: red; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;etwProviderId&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;=&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: black; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;quot;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;52A3165D-4AD9-405C-B1E8-7D9A257EAC9F&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: black; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;quot; &lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;/&amp;gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;tracking&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;participants&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;add&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: red; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;name&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;=&amp;quot;EtwTrackingParticipant&amp;quot;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: red; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;type&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;=&amp;quot;System.Activities.Tracking.EtwTrackingParticipant, System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: red; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;profileName&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;=&amp;quot;HealthMonitoring_Tracking_Profile&amp;quot;/&amp;gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;participants&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;tracking&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;behaviors&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;serviceBehaviors&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;behavior name=&amp;quot;SampleTrackingSample.SampleWFBehavior&amp;quot;&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;trackingComponents&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;add&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: red; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;name&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;=&amp;quot;EtwTrackingParticipant&amp;quot;/&amp;gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;trackingComponents&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&amp;lt;/behavior&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/serviceBehaviors&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/behaviors&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p style="mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&amp;lt;/system.serviceModel&amp;gt; &lt;/span&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;           &lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt; &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;In ETW, events are written to the ETW session through a Provider Id. The Provider Id that the ETW Tracking Participant uses for writing the Tracking Records to ETW is defined in the diagnostics section of the web.config (under &lt;i&gt;&amp;lt;system.serviceModel&amp;gt;&amp;lt;diagnostics&amp;gt;&lt;/i&gt;):&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="539"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="537"&gt;         &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 5.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&amp;lt;system.serviceModel&amp;gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 5.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 5.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;diagnostics&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: red; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;etwProviderId&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;=&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: black; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;52A3165D-4AD9-405C-B1E8-7D9A257EAC9F&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: black; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;quot; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;/&amp;gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 5.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;… &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;By default, the ETW Tracking Participant uses a default Provider ID when one has not been specified.&lt;/p&gt;  &lt;p&gt;Tracking Participants are declared in the &lt;i&gt;&amp;lt;system.serviceModel&amp;gt;&amp;lt;tracking&amp;gt;&amp;lt;participants&amp;gt;&lt;/i&gt; section. Each tracking participant can have a profile associated with it to specify the tracking records it has subscribed to:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="539"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="537"&gt;         &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&amp;lt;system.serviceModel&amp;gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;… &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;tracking&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;participants&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;add&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: red; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;name&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;=&amp;quot;EtwTrackingParticipant&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: red; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;type&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;=&amp;quot;System.Activities.Tracking.EtwTrackingParticipant, System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: red; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;profileName&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;=&amp;quot;HealthMonitoring_Tracking_Profile&amp;quot;/&amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;participants&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;tracking&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;…&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Once they have been declared, the Tracking Participants can be added to the service behavior. This will add the selected Tracking Participants to the Workflow instance’s extensions, so that they begin to receive the Tracking Records. &lt;/p&gt;  &lt;p&gt;For this, we simply use the same name with which the Tracking Participant was declared in the previous step:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="541"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="539"&gt;         &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&amp;lt;behaviors&amp;gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;serviceBehaviors&amp;gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;behavior name=&amp;quot;SampleTrackingSample.SampleWFBehavior&amp;quot;&amp;gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;trackingComponents&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;add&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: red; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;name&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;=&amp;quot;EtwTrackingParticipant&amp;quot;/&amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a31515; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;trackingComponents&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: blue; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&amp;lt;/behavior&amp;gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;/serviceBehaviors&amp;gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-layout-grid-align: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: white; color: #a6a6a6; font-size: 8pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-themecolor: background1; mso-themeshade: 166; mso-highlight: white"&gt;&amp;lt;/behaviors&amp;gt; &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;A graphical representation of the flow of Tracking data through the ETW Tracking Participant would be as follows:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/TrackingParticipantsin.NET4Beta1_E39D/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/TrackingParticipantsin.NET4Beta1_E39D/image_thumb_5.png" width="538" height="420" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once the tracking data reaches the ETW Session, it can be consumed in a number of ways. One of the most useful ways to consume these events is through Event Viewer, a common Windows tool used for viewing logs and traces from applications and services.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Consuming Tracking data from the ETW Tracking Participant in Event Viewer&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Events that are written to the ETW session by the ETW Tracking Participant can be consumed through Event Viewer (when using the default Provider ID). This allows for rapidly viewing the Tracking Records that have been emitted by the workflow.&lt;/p&gt;  &lt;p&gt;To enabling viewing the Tracking Records in Event Viewer:&lt;/p&gt;  &lt;p&gt;1) Open Event Viewer (eventvwr.exe)&lt;/p&gt;  &lt;p&gt;2) Navigate to “Application and Services Logs”-&amp;gt; “Microsoft” -&amp;gt; “WCF” -&amp;gt; “WF-Development”&lt;/p&gt;  &lt;p&gt;3) Right-click and enable View -&amp;gt; “Show Analytic and Debug logs”&lt;/p&gt;  &lt;p&gt;4) Enable the log&lt;/p&gt;  &lt;p&gt;In the &lt;a href="http://msdn.microsoft.com/en-us/library/dd807395(VS.100).aspx"&gt;ETW Tracking Participant Sample&lt;/a&gt;, the workflow simulates to have an error, and the ETW Tracking Participant is used to trace the issue. The tracking events are displayed in the Event Viewer below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/TrackingParticipantsin.NET4Beta1_E39D/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/TrackingParticipantsin.NET4Beta1_E39D/image_thumb_2.png" width="534" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;All the Tracking Records have ETW event IDs ranging from 100-112. Other event IDs (200-225) are used for other types of tracing such as WCF Traces. In future posts we will cover correlating tracing and tracking events for a full end-to-end view of the monitoring data.&lt;/p&gt;  &lt;p&gt;Tracking Records emitted through the ETW Tracking Participant also appear with the appropriate severity level in Event Viewer. This way it is easy to identify any warnings or errors with the execution of the workflow. &lt;/p&gt;  &lt;p&gt;With the ETW Tracking Participant and its integration with Event Viewer, consuming Tracking Records is fast and easy in .Net 4 Beta 1.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;What’s Next&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In future posts we will cover writing Custom Tracking Participants and emitting Custom Tracking Records. In the meantime, we look forward to your feedback on our samples and Hands on Labs:&lt;/p&gt;  &lt;p&gt;1) &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5aca0622-d87d-4cc9-a22c-0d58205a56b4&amp;amp;displaylang=en"&gt;WCF and WF samples for .NET 4 Beta 1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2) &lt;a href="http://msdn.microsoft.com/en-us/library/dd807395(VS.100).aspx"&gt;ETW tracking participant sample&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9833632" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category></item><item><title>WF 3.5 Hands On Labs Updated</title><link>http://blogs.msdn.com/endpoint/archive/2009/06/30/wf-3-5-hands-on-labs-updated.aspx</link><pubDate>Wed, 01 Jul 2009 03:39:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9810195</guid><dc:creator>Cliff Simpkins</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9810195.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9810195</wfw:commentRss><description>&lt;p&gt;The ten Windows Workflow Foundation (WF) hands-on labs were &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=2e575633-e357-4ee7-aaff-34138f00e830&amp;amp;displaylang=en" target="_blank"&gt;updated today on Microsoft download center&lt;/a&gt; for your coding enjoyment!&lt;/p&gt;  &lt;p&gt;These ten labs were initially posted when WF was new to the world and .NET 3.0 was hot off the presses. This past winter, the product management team worked with &lt;a href="http://www.pluralsight.com/community/blogs/starr/default.aspx" target="_blank"&gt;David Starr&lt;/a&gt; to get the labs converted to .NET 3.5 and Visual Studio 2008, make the manuals consistent, and bring the VB.NET code up par to follow the same best practices as the C# code.&lt;/p&gt;  &lt;p&gt;Once installed, you will have the following labs installed on your machine:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;WF01: Getting Started with WF&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;WF02: Creating Custom Activities with WF&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;WF03: Hosting Workflows in WF&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;WF04: Creating State Machine Workflows in WF&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;WF05: Communicating with the Host Application for WF&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;WF06: WF and Web Services&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;WF07: Creating Rules Driven Workflow in WF&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;WF08: Transactional Behavior in WF&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;WF09: Modifying Workflow Models at Runtime with Workflow Change in WF&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;&lt;b&gt;WF10: Embedding the Workflow Designer for WF&lt;/b&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;About half the labs saw some significant updating and clean-up – and they should yield a greatly improved experience for the learner; we applied feedback from HOL participants who took the labs at our events and provided an evaluation. The second half of the labs were more simply migrated and cleaned up for consistency.&lt;/p&gt;  &lt;p&gt;But wait! There’s more! :) &lt;/p&gt;  &lt;p&gt;While we were at it, we added an eleventh lab to the mix. Because the labs were developed before the new WCF activities were introduced, we dug into the excellent &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8BDAA836-0BBA-4393-94DB-6C3C4A0C98A1&amp;amp;displaylang=en" target="_blank"&gt;Visual Studio 2008 training kit&lt;/a&gt; done by the DPE folks, we updated and cleaned up the lab that walked a user through using the new WCF Send and Receive activities for WF in .NET 3.5:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a name="_Toc216700866"&gt;&lt;/a&gt;&lt;a name="_Toc216677121"&gt;&lt;/a&gt;&lt;a name="_Toc216677087"&gt;&lt;/a&gt;&lt;a name="_Toc216676666"&gt;&lt;/a&gt;&lt;a name="_Toc216598133"&gt;&lt;/a&gt;&lt;a name="_Toc216540085"&gt;&lt;/a&gt;&lt;a name="_Toc216539956"&gt;&lt;/a&gt;&lt;a name="_Toc216539894"&gt;&lt;/a&gt;&lt;a name="_Toc216539806"&gt;&lt;/a&gt;&lt;a name="_Toc216278563"&gt;&lt;/a&gt;&lt;a name="_Toc216278505"&gt;&lt;/a&gt;&lt;a name="_Toc216183924"&gt;&lt;/a&gt;&lt;a name="_Toc216183102"&gt;&lt;/a&gt;&lt;a name="_Toc216173780"&gt;&lt;/a&gt;&lt;strong&gt;WF11: Workflow Enabled Services and Other New Features in the .NET Framework 3.5&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The product management team will be making three additional hands-on labs available in the near future: unit testing WF workflows (currently available on MSDN Virtual Labs), unit testing WCF services, and advanced context management in WF 3.5 (built by &lt;a href="http://www.pluralsight.com/community/blogs/matt/default.aspx" target="_blank"&gt;Matt Milner&lt;/a&gt;, and unveiled at TechEd 2009 North America). All three labs have scored pretty well at events, and we’re looking forward to sharing them with you for direct download.&lt;/p&gt;  &lt;p&gt;We hope that you find these updated labs useful; and, as always, welcome your feedback and comments.&lt;/p&gt;  &lt;p&gt;Enjoy!   &lt;br /&gt;- Cliff&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9810195" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Hands+On+Labs/default.aspx">Hands On Labs</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/3.5/default.aspx">3.5</category></item><item><title>Workflow Tracking Profiles in .NET 4.0 Beta 1</title><link>http://blogs.msdn.com/endpoint/archive/2009/06/19/workflow-tracking-profiles-in-net-4-0-beta-1.aspx</link><pubDate>Fri, 19 Jun 2009 20:56:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9791331</guid><dc:creator>.NET Connected Framework Team</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9791331.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9791331</wfw:commentRss><description>&lt;p&gt;Last week we introduced the new &lt;span style="color: #1f497d"&gt;&lt;a href="http://blogs.msdn.com/endpoint/archive/2009/06/11/introduction-to-workflow-tracking-in-net-framework-4-0-beta1.aspx"&gt;Workflow Tracking features in .NET 4.0&lt;/a&gt;&lt;/span&gt;.&amp;#160; In this post we’ll do a deep dive into tracking profiles and explain how to use them to track workflow execution in a flexible way.&amp;#160; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;Tracking Profile Overview&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Tracking profiles let you subscribe to events that are emitted by the runtime when the state of a Workflow instance changes.&amp;#160; Depending on your monitoring needs you may craft a profile that is very coarse, subscribing to a small set of high level state changes on a Workflow.&amp;#160; On the other hand you may create a very granular profile whose output is rich enough to reconstruct the execution later.&amp;#160; Tracking profiles can satisfy these extreme scenarios and anything in between.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Tracking profiles manifest themselves in one of two ways.&amp;#160; You can create tracking profiles programmatically in .NET or configure them as XML elements in the&lt;span style="color: #1f497d"&gt; &lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; color: #a31515; font-size: 9pt"&gt;system.serviceModel&lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt; &lt;/span&gt;section of a standard .NET configuration file.&amp;#160; This post covers configuration based profiles.&amp;#160; Here is an example tracking profile in .NET 4.0 Beta 1:&lt;/p&gt;  &lt;div style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #daeef3; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;   &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;system.serviceModel&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160; … &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;tracking&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt;&amp;#160; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;trackingProfile&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt; &lt;/span&gt;&lt;span style="font-family: consolas; color: red; font-size: 9pt"&gt;name&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;=&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9pt"&gt;&amp;quot;&lt;b&gt;&lt;span style="color: blue"&gt;High_Level_Tracking_Profile&lt;/span&gt;&lt;/b&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;workflow&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;workflowInstanceQuery&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;states&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;state&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt; &lt;/span&gt;&lt;span style="font-family: consolas; color: red; font-size: 9pt"&gt;name&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;=&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9pt"&gt;&amp;quot;&lt;b&gt;&lt;span style="color: blue"&gt;Started&lt;/span&gt;&lt;/b&gt;&amp;quot;&lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;state&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt; &lt;/span&gt;&lt;span style="font-family: consolas; color: red; font-size: 9pt"&gt;name&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;=&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9pt"&gt;&amp;quot;&lt;b&gt;&lt;span style="color: blue"&gt;Completed&lt;/span&gt;&lt;/b&gt;&amp;quot;&lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;states&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;workflowInstanceQuery&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;workflow&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;trackingProfile&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;profiles&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;tracking&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;#160;&amp;#160;&amp;#160; … &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 9pt"&gt;system.serviceModel&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9pt"&gt;&amp;gt;&amp;#160; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;Tracking Profile Structure&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Tracking profiles are structured as declarative subscriptions to events, or &lt;b&gt;tracking queries &lt;/b&gt;that let you “query” the Workflow Runtime for specific event records.&amp;#160; There are a handful of query types that let you subscribe to different classes of events.&amp;#160; Here are the most common query types that you can try out in .NET 4.0 Beta 1:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p style="text-indent: -0.25in; mso-list: l1 level1 lfo1" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-family: symbol; mso-fareast-font-family: symbol; mso-bidi-font-family: symbol"&gt;&lt;span style="mso-list: ignore"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;WorkflowInstanceQuery&lt;/b&gt; – Use this to track Workflow instance lifecycle changes like &lt;b&gt;Started&lt;/b&gt; and &lt;b&gt;Completed&lt;/b&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p style="text-indent: -0.25in; mso-list: l1 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: symbol; mso-fareast-font-family: symbol; mso-bidi-font-family: symbol"&gt;&lt;span style="mso-list: ignore"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;ActivityQuery&lt;/b&gt; – Use this to track lifecycle changes of the activities that make up a Workflow instance.&amp;#160; For example, you may want to keep track of every time the “Send E-Mail” activity completes within a Workflow instance.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p style="text-indent: -0.25in; mso-list: l1 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: symbol; mso-fareast-font-family: symbol; mso-bidi-font-family: symbol"&gt;&lt;span style="mso-list: ignore"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;FaultPropagationQuery&lt;/b&gt; – Use this to track the handling of faults that occur within an activity.&amp;#160; This event occurs each time a FaultHandler processes a fault.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p style="text-indent: -0.25in; mso-list: l1 level1 lfo1" class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family: symbol; mso-fareast-font-family: symbol; mso-bidi-font-family: symbol"&gt;&lt;span style="mso-list: ignore"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;UserTrackingQuery&lt;/b&gt; – Use this to track events that you define in your code activities.&amp;#160; There will be a follow up to this post that shows you how to create user tracking records. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;Variable Extractions&lt;span style="color: #1f497d"&gt; &lt;/span&gt;&lt;/b&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;When tracking the execution of a Workflow it is often useful to extract data.&amp;#160; This provides additional context when consuming the tracking records post execution.&amp;#160; Tracking profiles make this easy.&amp;#160; In .NET 4.0 you can extract variables from any activity in a Workflow.&amp;#160; The following example activity query comes from the monitoring hands on lab that shipped with the&lt;span style="color: #1f497d"&gt; &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5aca0622-d87d-4cc9-a22c-0d58205a56b4&amp;amp;displaylang=en"&gt;WCF and WF samples for .NET 4.0 Beta 1&lt;/a&gt;&lt;/span&gt;.&amp;#160; It shows how to extract the “StockSymbol” variable whenever the “GetStockPrice” activity completes.&lt;/p&gt;  &lt;div style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #daeef3; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;   &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;activityQueries&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;activityQuery&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt; &lt;/span&gt;&lt;span style="font-family: consolas; color: red; font-size: 8pt"&gt;activityName&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;=&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 8pt"&gt;&amp;quot;&lt;b&gt;&lt;span style="color: blue"&gt;GetStockPrice&lt;/span&gt;&lt;/b&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #1f497d"&gt; &lt;/span&gt;&lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;states&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;state&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt; &lt;/span&gt;&lt;span style="font-family: consolas; color: red; font-size: 8pt"&gt;name&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;=&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 8pt"&gt;&amp;quot;&lt;b&gt;&lt;span style="color: blue"&gt;Closed&lt;/span&gt;&lt;/b&gt;&amp;quot;&lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;states&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;variableQueries&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;variableQuery&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt; &lt;/span&gt;&lt;span style="font-family: consolas; color: red; font-size: 8pt"&gt;variable&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;=&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 8pt"&gt;&amp;quot;&lt;b&gt;&lt;span style="color: blue"&gt;StockSymbol&lt;/span&gt;&lt;/b&gt;&amp;quot;&lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;variableQueries&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;activityQuery&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormalCxSpMiddle"&gt;&lt;span style="line-height: 115%; font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; color: #a31515; font-size: 8pt"&gt;activityQueries&lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; color: #1f497d; font-size: 8pt"&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="line-height: 115%; font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&lt;/span&gt;&lt;/b&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;Annotations&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Annotations in Workflow 4.0 let you arbitrarily tag tracking records with a value that can be configured after build time.&amp;#160; For example, you might want several tracking records across several Workflows to be tagged with “Data Center” == “Contoso Data Center”.&amp;#160; This makes it easy to find all records with this tag when querying tracking records later.&amp;#160; To accomplish this, you would add an annotation to a tracking query like this:&lt;/p&gt;  &lt;div style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #daeef3; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;   &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;activityQueries&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;activityQuery&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt; &lt;/span&gt;&lt;span style="font-family: consolas; color: red; font-size: 8pt"&gt;activityName&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;=&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 8pt"&gt;&amp;quot;&lt;b&gt;&lt;span style="color: blue"&gt;GetStockPrice&lt;/span&gt;&lt;/b&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;states&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;state&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt; &lt;/span&gt;&lt;span style="font-family: consolas; color: red; font-size: 8pt"&gt;name&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;=&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 8pt"&gt;&amp;quot;&lt;b&gt;&lt;span style="color: blue"&gt;Closed&lt;/span&gt;&lt;/b&gt;&amp;quot;&lt;span style="color: blue"&gt;/&amp;gt; &lt;/span&gt;&lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;states&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;annotations&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;annotation&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt; &lt;/span&gt;&lt;span style="font-family: consolas; color: red; font-size: 8pt"&gt;name&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;=&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 8pt"&gt;&amp;quot;&lt;b&gt;&lt;span style="color: blue"&gt;Data Center&lt;/span&gt;&lt;/b&gt;&amp;quot;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;value&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;b&gt;&lt;span style="color: blue"&gt;Contoso Data Center&lt;/span&gt;&lt;/b&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;annotation&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; line-height: normal; padding-left: 0in; padding-right: 0in; margin-bottom: 0pt; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: consolas; color: #a31515; font-size: 8pt"&gt;annotations&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormalCxSpMiddle"&gt;&lt;span style="line-height: 115%; font-family: consolas; color: #1f497d; font-size: 8pt"&gt;&amp;#160; &lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; color: #a31515; font-size: 8pt"&gt;activityQuery&lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; font-size: 8pt"&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; background: #daeef3; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormalCxSpMiddle"&gt;&lt;span style="line-height: 115%; font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; color: #a31515; font-size: 8pt"&gt;activityQueries&lt;/span&gt;&lt;span style="line-height: 115%; font-family: consolas; color: blue; font-size: 8pt"&gt;&amp;gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;What’s Next &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;In the next post in the series, we will talk about the extensibility of Workflow tracking&amp;#160; in .NET 4.0.&amp;#160; This topic will dive into the following concepts:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p style="text-indent: -0.25in; mso-list: l0 level1 lfo2" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-family: symbol; mso-fareast-font-family: symbol; mso-bidi-font-family: symbol"&gt;&lt;span style="mso-list: ignore"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Programmatically emit your own tracking events by creating &lt;b&gt;UserTrackingRecords&lt;/b&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p style="text-indent: -0.25in; mso-list: l0 level1 lfo2" class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family: symbol; mso-fareast-font-family: symbol; mso-bidi-font-family: symbol"&gt;&lt;span style="mso-list: ignore"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Programmatically consume events within the runtime by creating custom &lt;b&gt;TrackingParticipants&lt;/b&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p style="text-indent: -0.25in; mso-list: l0 level1 lfo2" class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-family: symbol; mso-fareast-font-family: symbol; mso-bidi-font-family: symbol"&gt;&lt;span style="mso-list: ignore"&gt;·&lt;span style="font: 7pt &amp;#39;Times New Roman&amp;#39;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Programmatically create tracking profiles in .NET.&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9791331" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category></item><item><title>Sequential and Flowchart modeling styles</title><link>http://blogs.msdn.com/endpoint/archive/2009/06/12/sequential-and-flowchart-modeling-styles.aspx</link><pubDate>Fri, 12 Jun 2009 20:16:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9736250</guid><dc:creator>lwelicki</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9736250.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9736250</wfw:commentRss><description>&lt;p&gt;WF 4 ships with an &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/05/29/a-tour-on-the-wf4-activity-palette.aspx"&gt;activity palette&lt;/a&gt; that consists of many activities – some of these are control flow activities that represent the different modeling styles developers can use to model their business process. &lt;b&gt;Sequence&lt;/b&gt; and &lt;b&gt;Flowchart&lt;/b&gt; are a couple of modeling styles we ship in WF 4. In this post, we will present these modeling styles, learn what they are, when to use what, and highlight the main differences between them.&lt;/p&gt;  &lt;h4&gt;Sequential modeling style&lt;/h4&gt;  &lt;p&gt;A sequential workflow executes a set of contained activities in sequential order. The &lt;b&gt;Sequence&lt;/b&gt; activity in WF 4 allows you to model workflows in the &lt;i&gt;sequential modeling style&lt;/i&gt;. A &lt;b&gt;Sequence&lt;/b&gt; contains a collection of activities that are scheduled in the order in which they have been added to the collection. Hence, the order of execution of the activities is predictable. &lt;/p&gt;  &lt;p&gt;You can add any activity to a &lt;b&gt;Sequence&lt;/b&gt; – control flow procedural constructs like &lt;b&gt;ForEach&lt;/b&gt;, &lt;b&gt;If&lt;/b&gt;, &lt;b&gt;Switch&lt;/b&gt;, &lt;b&gt;While&lt;/b&gt;, &lt;b&gt;DoWhile&lt;/b&gt;; or parallel constructs like &lt;b&gt;Parallel&lt;/b&gt; and &lt;b&gt;ParallelForEach&lt;/b&gt; to model parallel execution of logic; or any other activity we provide in the &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/05/29/a-tour-on-the-wf4-activity-palette.aspx"&gt;WF 4 activity palette&lt;/a&gt; (or your own custom activity or a third party activity). &lt;/p&gt;  &lt;p&gt;The next figure shows a Vacation Approval workflow modeled as a sequential workflow using the &lt;b&gt;Sequence&lt;/b&gt; activity and other activities. In this workflow, we first check if the employee has enough available days, wait for his manager approval, and finally update his vacation information in the company’s HR database. The activity highlighted in the orange box (&lt;i&gt;Get Manager Approval&lt;/i&gt;) is actually a &lt;b&gt;While &lt;/b&gt;activity (collapsed in the main &lt;b&gt;Sequence&lt;/b&gt;) that executes another &lt;b&gt;Sequence&lt;/b&gt; of activities (&lt;i&gt;AskForApproval&lt;/i&gt;) while the &lt;i&gt;approvedByManager&lt;/i&gt; &lt;b&gt;variable&lt;/b&gt; value is &lt;b&gt;False&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/db969246434c_8E12/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/db969246434c_8E12/image_thumb.png" width="483" height="224" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Workflows modeled using the sequential modeling style are easy to understand and author. They can be used to model simple to moderately complex processes. Since procedural activities have strong parity with procedural statements in imperative programming languages, you can use this type of workflows to model almost any type of process. Sequential workflows are also a good fit to model simple processes with no human interactions (e.g. services).&lt;/p&gt;  &lt;p&gt;As the complexity of the process increases, the workflow will become more complex. In comparison to code, with workflows, you will get the benefit of visually looking at your process and visual debugging, however, you may want to factor out the logic into re-usable custom activities to improve the readability of large workflows. &lt;/p&gt;  &lt;h5&gt;Sequential Modeling Style and Sequence Activity&lt;/h5&gt;  &lt;p&gt;&lt;b&gt;Sequence&lt;/b&gt; is not a requirement to create workflows that use the sequential modeling style. As we will explain later in this post, any activity in WF 4 can be the root of a workflow. Therefore, we can create a workflow that does not contain a &lt;b&gt;Sequence&lt;/b&gt; but still uses the sequential modeling style and procedural activities. In the figure below, we have a workflow that has as a &lt;b&gt;ForEach&lt;/b&gt; as root activity that prints all the items in a list of strings with a length higher than 5.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/db969246434c_8E12/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/db969246434c_8E12/image_thumb_1.png" width="484" height="124" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h4&gt;Flowchart&lt;/h4&gt;  &lt;p&gt;Flowchart is a well known and intuitive paradigm to visually represent business processes. Business Analysts, Architects and Developers use often flowcharts as common language to express process definitions and flow of logic.&amp;#160; &lt;/p&gt;  &lt;p&gt;Since the release of WF 3, customers have given us feedback about what they like and don’t like.&amp;#160; One common point of feedback from customers using WF3 was that &lt;i&gt;“we want the simplicity of Sequence, Parallel, etc. but the flexibility of StateMachine.”&lt;/i&gt;&amp;#160; When we dug deeper to get at the scenario behind this sentiment, we found that customers have a process (or a portion of a process) that is &lt;i&gt;often quite sequential in nature&lt;/i&gt; but which &lt;i&gt;requires “loopbacks” under certain circumstances&lt;/i&gt; (for some customers the circumstances are “exceptional” in nature while for other customers they are “expected” but it really doesn’t matter to this discussion). The FlowChart activity is new in WF 4 and it squarely addresses this (rather large) class of scenarios.&amp;#160; Flowchart is a very powerful construct since it provides the simplicity of sequence plus the ability of looping back to a previous point of execution, which is quite common in real life business processes to simulate re-try of logic when handling external input.&lt;/p&gt;  &lt;p&gt;A Flowchart contains a set of nodes and arcs.&amp;#160; The nodes are FlowNodes – which contain activities or special common constructs such as a 2-way decision or a multi-way switch.&amp;#160; The arcs describe potential execution paths through the nodes.&amp;#160; The WF 4 Flowchart has a single path of execution; that is, it does not support split/join semantics that would enable multiple interleaved paths of execution. &lt;/p&gt;  &lt;p&gt;The next figure shows a simplified recruiting process modeled using a &lt;b&gt;Flowchart&lt;/b&gt;. In this case after a résumé is received, references are checked. If references are good, the process continues, otherwise the résumé is rejected. The next step verifies that the candidate skills are a good match for the position offered. If the candidate is a good match, then she will be offered a position. If she is not a good match for this position but interesting for future opportunities, the resume is saved in a database and a rejection letter is sent. Finally, if the candidate is not a good match, she is sent a rejection letter.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/db969246434c_8E12/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/db969246434c_8E12/image_thumb_2.png" width="463" height="440" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Flowchart modeling style is great to represent processes that are sequential in nature (with a single path of execution), but have loops to previous states. They use a very well known approach for modeling processes (based on “boxes and arrows”) and allow representing processes in a very visual manner. Control of flow is dominated by the transitions between the nodes and by two first-class branching activities (&lt;b&gt;FlowDecision&lt;/b&gt; and &lt;b&gt;FlowSwitch&lt;/b&gt;). Flowchart is a good fit to model processes with human interactions (e.g. human workflows).&lt;/p&gt;  &lt;h4&gt;Using Sequence and Flowchart together&lt;/h4&gt;  &lt;p&gt;WF 3 had a notion of a root activity. Only root activities could be used as the top level activity in a WF 3 workflow. WF 4 does not have a similar restriction. There is no notion of a root activity any more. Any activity can be the root of a workflow.&lt;/p&gt;  &lt;p&gt;Let me explain this in more detail… Activities &lt;b&gt;are a unit of work in WF&lt;/b&gt;. Activities &lt;b&gt;can be composed together &lt;/b&gt;into larger Activities. When an Activity is used as a top-level entry point, &lt;b&gt;we call it a &amp;quot;Workflow&amp;quot;&lt;/b&gt;, just like Main is simply another function that represents a top level entry point to CLR programs. Hence, there is nothing special about using &lt;b&gt;Sequence&lt;/b&gt; or &lt;b&gt;Flowchart&lt;/b&gt; as the top level activity; and they can be composed at will.&lt;/p&gt;  &lt;p&gt;The next figure shows a &lt;b&gt;Flowchart&lt;/b&gt; inside a &lt;b&gt;Sequence&lt;/b&gt;. The workflow below has three activities: a composite activity that does some work, a &lt;b&gt;Flowchart&lt;/b&gt; (highlighted in green) and finally another composite activity that does some more work.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/db969246434c_8E12/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/db969246434c_8E12/image_thumb_3.png" width="270" height="411" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The same can be also done in a &lt;b&gt;Flowchart&lt;/b&gt;. The next figure shows a &lt;b&gt;Flowchart&lt;/b&gt; that has a &lt;b&gt;Sequence&lt;/b&gt; (highlighted in green), a &lt;b&gt;FlowDecision&lt;/b&gt;, and then two &lt;b&gt;WriteLine&lt;/b&gt; activities for the &lt;b&gt;True&lt;/b&gt; and &lt;b&gt;False&lt;/b&gt; paths of the decision.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/db969246434c_8E12/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/db969246434c_8E12/image_thumb_4.png" width="377" height="281" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h4&gt;Beyond Sequence and Flowchart&lt;/h4&gt;  &lt;p&gt;WF 4 simplified activity authoring story makes easier writing your own custom composite activities to model any control of flow approach of your choice. In future posts, we will show how to write your own custom activities and designers.&lt;/p&gt;  &lt;h4&gt;Conclusion&lt;/h4&gt;  &lt;p&gt;In this post we have presented the Sequential and Flowchart modeling styles. We learned that &lt;b&gt;Sequence&lt;/b&gt; is used for modeling sequential behavior and that &lt;b&gt;Flowchart&lt;/b&gt; is used to model processes with a single path of execution and loops to previous states. We also learned that &lt;b&gt;Sequence&lt;/b&gt; and &lt;b&gt;Flowchart&lt;/b&gt; can be combined and used together as any other existing activity.&lt;/p&gt;  &lt;p&gt;The following table shows the main differences between &lt;b&gt;Sequence&lt;/b&gt; and &lt;b&gt;Flowchart&lt;/b&gt;. &lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="399"&gt;           &lt;p&gt;&lt;b&gt;Sequence&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="399"&gt;           &lt;p&gt;&lt;b&gt;Flowchart&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="399"&gt;           &lt;p&gt;Order of execution is explicit, close to imperative/code &lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="399"&gt;           &lt;p&gt;Order of execution expressed as a graph with nodes and arcs&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="399"&gt;           &lt;p&gt;Loopbacks are represented combining control of flow activities (e.g. &lt;b&gt;While&lt;/b&gt; + &lt;b&gt;If&lt;/b&gt;)&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="399"&gt;           &lt;p&gt;First class modeling of loopbacks &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="399"&gt;           &lt;p&gt;Parity with imperative / procedural&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="399"&gt;           &lt;p&gt;Parity with boxes and arrows diagrams&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="399"&gt;           &lt;p&gt;Activities are executed in sequential order&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="399"&gt;           &lt;p&gt;Activities are executed in the order dictated by the arrows between them&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="399"&gt;           &lt;p&gt;Simple process / no human interaction (e.g. services)&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="399"&gt;           &lt;p&gt;Complex processes / human interactions (e.g. human workflows / state machine scenarios)&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="399"&gt;           &lt;p&gt;The flow of the process is not visually obvious&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="399"&gt;           &lt;p&gt;Control of flow is visual, dominated by Boolean decisions (FlowDecision) or Switch (FlowSwitch)&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9736250" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Activities/default.aspx">Activities</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category></item><item><title>Introduction to Workflow Tracking in .NET Framework 4.0 Beta1</title><link>http://blogs.msdn.com/endpoint/archive/2009/06/11/introduction-to-workflow-tracking-in-net-framework-4-0-beta1.aspx</link><pubDate>Fri, 12 Jun 2009 04:01:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9728440</guid><dc:creator>.NET Connected Framework Team</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9728440.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9728440</wfw:commentRss><description>By now you must be aware of the significantly enhanced &lt;a href="http://msdn.microsoft.com/en-us/library/dd851337.aspx"&gt;Windows Workflow Foundation (WF)&lt;/a&gt; scheduled to be released with .Net Framework 4.0. The &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/01/20/the-road-to-wf-4-0-part-1.aspx"&gt;road to WF 4.0&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/dd489441(VS.100).aspx"&gt;.Net Framework 4.0 Beta1 documentation for WF&lt;/a&gt; can give you more details. Being a member of the team responsible for the development of the WF tracking feature, I am excited to discuss the components that constitute this feature. In a nutshell, tracking is a feature to gain visibility into the execution of a workflow. The WF tracking infrastructure instruments a workflow to emit records reflecting key events during the execution. For example, when a workflow instance starts or completes tracking records are emitted. Tracking can also extract business relevant data associated with the workflow variables. For example, if the workflow represents an order processing system the order id can be extracted along with the tracking record. In general, enabling WF tracking facilitates diagnostics or business analytics over a workflow execution. For people familiar with &lt;a href="http://msdn.microsoft.com/en-us/library/bb264459(vs.80).aspx"&gt;WF tracking in .Net 3.0&lt;/a&gt; the tracking components are equivalent to the tracking service in WF 3. In WF 4.0 we have improved the performance and simplified the programming model for WF tracking feature.   &lt;p&gt;A high level view of the tracking infrastructure is shown below&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/IntroductiontoWorkflowTrackingin.0Beta1_F818/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/IntroductiontoWorkflowTrackingin.0Beta1_F818/image_thumb_1.png" width="497" height="297" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The primary components of the tracking infrastructure are&lt;/p&gt;  &lt;p&gt;1) &lt;b&gt;Tracking records&lt;/b&gt; emitted from the Workflow runtime.&lt;/p&gt;  &lt;p&gt;2) &lt;b&gt;Tracking Profile&lt;/b&gt; to filter tracking records emitted from a workflow instance.&lt;/p&gt;  &lt;p&gt;3) &lt;b&gt;Tracking Participants&lt;/b&gt; that subscribe for tracking records. The tracking participants contain the logic to process the payload from the tracking records (e.g. they could choose to write to a file).&lt;/p&gt;  &lt;p&gt;The Workflow tracking infrastructure follows the observer pattern. The workflow instance is the publisher of tracking records and subscribers of the tracking records are registered as extensions to the workflow. These extensions that subscribe to tracking records are called tracking participants. Tracking participants are extensibility points that allow a workflow developer to consume tracking records and process them. The tracking infrastructure allows the application of a filter on the outgoing tracking records such that a participant can subscribe to a subset of the records. The mechanism to apply a filter is through a tracking profile. &lt;/p&gt;  &lt;p&gt;The workflow runtime is instrumented to emit tracking records to follow the execution of a workflow instance. The types of tracking records emitted are&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Workflow instance tracking records&lt;/b&gt;: Workflow instance records describe the life cycle of the workflow instance. For instance a record is emitted when the workflow starts or completes.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Activity tracking records&lt;/b&gt;: Activity tracking records are emitted when a workflow activity executes. These records indicate the state of a workflow activity (i.e. an activity is scheduled, activity completes or fault is thrown).&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Bookmark resumption tracking record: &lt;/b&gt;A bookmark resumption record tracks any bookmark that is successfully resumed&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;User tracking records&lt;/b&gt;. A workflow author can create custom tracking records within a custom workflow activity and emit them within the custom activity. Custom tracking records can be populated with data to be emitted along with the records.&lt;/p&gt;  &lt;p&gt;Out of the box in WF 4.0 we provide an &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163437.aspx"&gt;ETW (Event Tracing for Windows)&lt;/a&gt; based tracking participant. The ETW tracking participant writes the tracking records to an ETW session. The participant is configured on a workflow service by adding a tracking specific behavior in a config file. Enabling ETW tracking participant allows tracking records to be viewed in the event viewer. Details of using the ETW based tracking participant will be covered in a future post. The &lt;a href="http://msdn.microsoft.com/en-us/library/dd807395(VS.100).aspx"&gt;SDK sample for ETW based tracking&lt;/a&gt; is a good way to get familiar with WF tracking using the ETW based tracking participant.&lt;/p&gt;  &lt;p&gt;In future posts we will discuss the WF tracking feature in depth. Topics covered will include tracking profiles and tracking records, ETW tracking participant, writing custom tracking participants, variable extractions and unified tracking and tracing.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9728440" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category></item><item><title>Migration Guidance for the WF Developer</title><link>http://blogs.msdn.com/endpoint/archive/2009/06/05/migration-guidance-for-the-wf-developer.aspx</link><pubDate>Fri, 05 Jun 2009 19:32:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9701572</guid><dc:creator>Cliff Simpkins</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9701572.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9701572</wfw:commentRss><description>&lt;p&gt;This morning, I’m pleased to announce that the team has posted &lt;a href="http://go.microsoft.com/fwlink/?LinkID=153313" target="_blank"&gt;four initial Windows Workflow Foundation (WF) migration guidance documents&lt;/a&gt; to help current WF developers evaluate the new WF programming model that is being introduced in .NET Framework 4.&lt;/p&gt;  &lt;p&gt;The documents were written by the PM team to help describe the relationship between the existing WF technology that was introduced in .NET 3.0 (defined as the types in the System.Workflow.* namespaces; referred to in the documents as WF3 for simplicity and brevity) and the new WF technology that is being released in .NET 4 (the System.Activities.* namespaces; referred to in the documents as WF4). The team explains how to think of WF features within the two programming models, and the choices you have as a user or a potential user of workflow technology in .NET 4.&lt;/p&gt;  &lt;p&gt;Because this is a very broad topic, we’ve broken up what was initially going to be a single paper into about eight. There is an overview document and [currently] seven papers that take the form of either higher level guidance and cookbook papers. Today’s initial release introduces the higher-level guidance documents, with the cookbooks to be released in the coming weeks.&lt;/p&gt;  &lt;p&gt;As the documents are updated, we will be releasing them to the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=153313" target="_blank"&gt;WF Migration Guidance download&lt;/a&gt; on the MS Download Center, and the accompanying source code will be posted on a &lt;a href="http://code.msdn.microsoft.com/wf4migration" target="_blank"&gt;WF Migration Guidance project on the MSDN Code Gallery&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;The document list looks like the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;WF Migration Overview&lt;font color="#008080"&gt; (Now Live!)&lt;/font&gt;        &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;Overview of the document collection and an initial starting place for the WF3 developer&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Migration: Best Practices for WF3 Development &lt;font color="#008080"&gt;(Now Live!)&lt;/font&gt;&lt;/strong&gt;      &lt;br /&gt;&lt;i&gt;How to design WF3 artifacts so they are more easily migratable to WF4&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Guidance: Rules &lt;font color="#008080"&gt;(Now Live!)&lt;/font&gt;        &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Discussion of how to bring rules-related investments forward into .NET 4&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Guidance: State Machine&lt;font color="#008080"&gt; (Now Live!)&lt;/font&gt;        &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Discussion of WF4 control flow modeling in the absence of a StateMachine activity&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Migration Cookbook: Custom Activities &lt;font color="#008080"&gt;(Coming Soon)&lt;/font&gt;        &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Examples and instructions for redesigning WF3 custom activities on WF4&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Migration Cookbook: Workflows &lt;font color="#008080"&gt;(Coming Soon)&lt;/font&gt;        &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Examples and instructions for redesigning WF3 workflows on WF4&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Migration Cookbook: Workflow Services &lt;font color="#008080"&gt;(Coming Soon)&lt;/font&gt;        &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Examples and instructions for redesigning WF3 workflow services on WF4&lt;/i&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WF Migration Cookbook: Advanced Custom Activities &lt;font color="#008080"&gt;(Coming Soon)&lt;/font&gt;        &lt;br /&gt;&lt;/strong&gt;&lt;i&gt;Examples and instructions for redesigning advanced WF3 custom activities on WF4&lt;/i&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The papers will continue to be grown and updated as we move towards the RTM release – to address a larger number of usage scenarios, and to address any changes that happen between pre-releases. We’ve been working on the documents over the last month, and think that they provide some good initial thoughts on how to approach the technology; and we hope that you find them helpful&lt;/p&gt;  &lt;p&gt;The team will be supporting feedback and requests for the documents and accompanying sample code in the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/wfprerelease/threads" target="_blank"&gt;WF 4 forum on MSDN&lt;/a&gt;. I’m told the feature PMs will be creating a thread for each document to make it easier to provide feedback and for the PMs to respond – we should have more information on that in the next few days.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9701572" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Rules/default.aspx">Rules</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Samples/default.aspx">Samples</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Migration/default.aspx">Migration</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/State+Machine/default.aspx">State Machine</category></item><item><title>Workflow 4.0 Templates</title><link>http://blogs.msdn.com/endpoint/archive/2009/06/01/workflow-4-0-templates.aspx</link><pubDate>Tue, 02 Jun 2009 06:58:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9683410</guid><dc:creator>.NET Connected Framework Team</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9683410.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9683410</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/kushals/archive/2009/06/01/workflow-4-0-templates.aspx"&gt;&lt;font size="2"&gt;This&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; blog post introduces the Project and Item templates for Workflow 4.0. It also clarifies as to how the Workflow 3.0 templates are still available for users to create projects and then upgrade them to the 4.0 Framework.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;We are putting in a deep though into what kind of templates do users want? Do they help users get kick started with the kind of application they typically want to create? How much setting changes the user might have to do for his applications? Is it an accurate reflection of the OM? Do we have too many/too less templates? So what do you think? What would you prefer to see/not to see? Are the names intuitive enough? Please let us know so that we can update them in time for the VS 2010 release.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Thanks,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Kushal.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9683410" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category></item><item><title>A Tour on the WF4 Activity Palette</title><link>http://blogs.msdn.com/endpoint/archive/2009/05/29/a-tour-on-the-wf4-activity-palette.aspx</link><pubDate>Fri, 29 May 2009 09:03:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9651914</guid><dc:creator>lwelicki</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/endpoint/comments/9651914.aspx</comments><wfw:commentRss>http://blogs.msdn.com/endpoint/commentrss.aspx?PostID=9651914</wfw:commentRss><description>&lt;p&gt;WF4 beta 1 ships with a comprehensive set of activities (more than 35) that you can use to author your workflows or to create your own custom activities. This post will give you a quick tour through the activity palette and introduce you to the key characteristics of the out of the box activities.&lt;/p&gt;  &lt;p&gt;Activities are the unit of work in a workflow program. Activities in WF4 have a signature and body. The signature of an activity is defined in terms of its public arguments. These public arguments define the data flow into and out of an activity. The body of an activity is a chunk of execution logic that may execute over multiple pulses of work. This logic can be expressed declaratively in terms of other activities or with imperative code.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Quick note&lt;/u&gt;&lt;/b&gt;: As you may have noticed, the activities in the toolbox are not sorted alphabetically. This is something that we are aware of and that will be fixed in the next Beta. For Beta1, if this bothers you, you can simply right-click in the toolbox and choose &amp;quot;Sort Items Alphabetically&amp;quot; and it will sort the items for you for easy discoverability.&lt;/p&gt;  &lt;h4&gt;Procedural&lt;/h4&gt;  &lt;p&gt;Procedural activities provide a mechanism to model sequential control flow using concepts you know from standard procedural languages like C# or VB like if, assign, while, etc. Procedural activities include the basic building blocks to represent sequential behavior, including control of flow, method invocation on CLR objects, collection manipulation, and error handling. It also covers advanced scenarios like parallel activities, transaction management, compensation, cancellation, and persistence. The table below contains all the activities in the procedural category. The words in &lt;b&gt;bold&lt;/b&gt; in the description of each activity represent its most important arguments.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;    &lt;table border="1" cellspacing="0" cellpadding="0" width="502"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#dcdcdc"&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;&lt;b&gt;Activity&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;b&gt;Designer&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr bgcolor="#f0f0f0"&gt;         &lt;td valign="top" width="100%" colspan="3"&gt;           &lt;p&gt;&lt;b&gt;&lt;i&gt;Collection Management&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;AddToCollection&amp;lt;T&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Adds an &lt;b&gt;Item&lt;/b&gt; to a &lt;b&gt;Collection&lt;/b&gt;. &lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image001_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image001_thumb.jpg" width="159" height="39" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;RemoveFromCollection&amp;lt;T&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Removes an &lt;b&gt;Item&lt;/b&gt; from a &lt;b&gt;Collection&lt;/b&gt;.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image002_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image002_thumb.jpg" width="162" height="39" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;ClearCollection&amp;lt;T&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Clears a &lt;b&gt;Collection&lt;/b&gt;, removing all items stored in it.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image003_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image003" border="0" alt="clip_image003" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image003_thumb.jpg" width="162" height="38" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;ExistsInCollection&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Verifies if an &lt;b&gt;Item&lt;/b&gt; exists in a &lt;b&gt;Collection&lt;/b&gt;. If the item exists, its &lt;strong&gt;Result&lt;/strong&gt; argument will yield True.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image004_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image004_thumb.jpg" width="162" height="38" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr bgcolor="#f0f0f0"&gt;         &lt;td valign="top" width="100%" colspan="3"&gt;           &lt;p&gt;&lt;b&gt;&lt;i&gt;Control of Flow&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;If&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;The If activity selects a child activity for execution based on the value of a Boolean expression.&lt;/p&gt;            &lt;p&gt;If the Boolean expression &lt;b&gt;Condition&lt;/b&gt; yields True (and “Then” activity is configured), the “&lt;b&gt;Then&lt;/b&gt;” activity is scheduled. If the expressions yields False (and “Else” activity is set), the “&lt;b&gt;Else&lt;/b&gt;” expression is scheduled.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/image_thumb.png" width="190" height="69" /&gt;&lt;/a&gt; &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;DoWhile&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Executes its &lt;b&gt;Body&lt;/b&gt; until the &lt;b&gt;Condition&lt;/b&gt; evaluates to True. The Body will be executed at least once.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image008_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image008" border="0" alt="clip_image008" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image008_thumb.jpg" width="183" height="70" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;ForEach / ForEach&amp;lt;T&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;ForEach activity contains a list of &lt;b&gt;Values&lt;/b&gt; and a &lt;b&gt;Body&lt;/b&gt;. At runtime, the list is iterated and the body is executed for each value in the list.&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image010_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image010" border="0" alt="clip_image010" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image010_thumb.jpg" width="181" height="117" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;Pick&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;The Pick Activity provides event-based control flow modeling in WF. The only valid children for a Pick activity are PickBranches. &lt;/p&gt;            &lt;p&gt;At the beginning of a Pick execution, all the Trigger activities from all its &lt;strong&gt;Branches&lt;/strong&gt; are scheduled. When the first Trigger completes its corresponding Action activity is scheduled, and all other Trigger activities are canceled. &lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image011_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image011" border="0" alt="clip_image011" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image011_thumb.jpg" width="166" height="62" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;PickBranch&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;PickBranch represents a branch in a Pick. It consists of a &lt;b&gt;Trigger&lt;/b&gt; and &lt;b&gt;Action&lt;/b&gt;. PickBranch can only be added to a Pick activity. &lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image013_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="clip_image013" border="0" alt="clip_image013" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image013_thumb.jpg" width="137" height="187" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;Sequence&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;The Sequence activity allows for the execution of one or more &lt;b&gt;Activities&lt;/b&gt; in order. &lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image014_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image014" border="0" alt="clip_image014" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image014_thumb.jpg" width="181" height="100" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;Switch&amp;lt;T&amp;gt; &lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Switch activity is similar to &lt;a href="http://msdn.microsoft.com/en-us/library/06tc147t.aspx"&gt;switch&lt;/a&gt; statement in C#. It contains an &lt;b&gt;Expression&lt;/b&gt; and a set of &lt;b&gt;Cases&lt;/b&gt; (each case has a key and an activity). After the expression is evaluated, the Switch activity looks for a &lt;b&gt;Case&lt;/b&gt; with a key that matches the result of the expression and if found, it schedules the activity associated with that Case.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image016_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image016" border="0" alt="clip_image016" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image016_thumb.jpg" width="191" height="115" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;While&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;The While activity executes it's &lt;b&gt;Body&lt;/b&gt; while a Boolean &lt;b&gt;Condition&lt;/b&gt; is True. &lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image018_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image018" border="0" alt="clip_image018" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image018_thumb.jpg" width="192" height="73" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr bgcolor="#f0f0f0"&gt;         &lt;td valign="top" width="100%" colspan="3"&gt;           &lt;p&gt;&lt;b&gt;&lt;i&gt;Parallel Execution&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;Parallel&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Parallel activity allows parallel execution of its children. It operates by scheduling each WorkflowElement in its &lt;b&gt;Branches&lt;/b&gt; collection at the beginning of its execution.&amp;#160; It completes when all of its Branches complete or when its &lt;strong&gt;CompletionCondition&lt;/strong&gt; property evaluates to true.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image019_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image019" border="0" alt="clip_image019" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image019_thumb.jpg" width="188" height="66" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;ParallelForEach /&amp;#160; ParallelForEach&amp;lt;T&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;The ParallelForEach activity enumerates the elements of a collection(&lt;strong&gt;Values&lt;/strong&gt;) and executes an &lt;strong&gt;Activity &lt;/strong&gt;for each element of the collection, in a similar way than the ForEach activity does. The main difference is that the embedded statement is executed in a parallel fashion. &lt;/p&gt;            &lt;p&gt;Just like the Parallel Activity, ParallelForEach has a &lt;strong&gt;CompletionCondition&lt;/strong&gt;, so that the ParallelForEach activity could complete early if the evaluation of the CompletionCondition returns true. The CompletionCondition is evaluated after each iteration is completed.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image021_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image021" border="0" alt="clip_image021" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image021_thumb.jpg" width="192" height="122" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr bgcolor="#f0f0f0"&gt;         &lt;td valign="top" width="100%" colspan="3"&gt;           &lt;p&gt;&lt;b&gt;&lt;i&gt;Error Handling&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;TryCatch&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;TryCatch activity is similar to the &lt;a href="http://msdn.microsoft.com/en-us/library/dszsf989.aspx"&gt;try..catch&lt;/a&gt; construct in C#: all activities in the &lt;b&gt;Try&lt;/b&gt; block are executed and if an exception occurs, it will schedule the &lt;b&gt;Catch&lt;/b&gt; block that best matches that exception (if no matching catch is found, the workflow is aborted). All Catch blocks are contained in a collection called Catches.&lt;/p&gt;            &lt;p&gt;TryCatch activity also has a &lt;b&gt;Finally&lt;/b&gt; block that is executed after the Try (and any eventual Catch).&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;u&gt;A note on unhandled exceptions&lt;/u&gt;&lt;/b&gt;:&lt;/p&gt;            &lt;p&gt;TryCatch provides exception handling at the workflow level. When an unhandled exception is thrown, the workflow is aborted and therefore the Finally block won’t be executed. This behavior is consistent with C#.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image023_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image023" border="0" alt="clip_image023" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image023_thumb.jpg" width="162" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;Catch&amp;lt;T&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Represents one catch block to be used in a TryCatch activity. If an exception is thrown within a Try Element, the TryCatch will attempt to find a matching &lt;b&gt;Catch&lt;/b&gt; element based on the type of the thrown exception.&lt;/p&gt;            &lt;p&gt;Catch&amp;lt;T&amp;gt; can only be used inside a TryCatch activity&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image025_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image025" border="0" alt="clip_image025" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image025_thumb.jpg" width="185" height="66" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;Throw&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Throw activity throws an exception within a workflow. Throw activity has an &lt;b&gt;Exception&lt;/b&gt; property that contains the exception that will be thrown at execution time.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image026_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image026" border="0" alt="clip_image026" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image026_thumb.jpg" width="157" height="37" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr bgcolor="#f0f0f0"&gt;         &lt;td valign="top" width="100%" colspan="3"&gt;           &lt;p&gt;&lt;b&gt;&lt;i&gt;Utilities&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;Assign&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;The Assign activity assigns the value of its &lt;b&gt;Value&lt;/b&gt; argument to its &lt;b&gt;To &lt;/b&gt;argument.&lt;/p&gt;            &lt;p&gt;The types of both arguments must be compatible. This compatibility is verified at runtime.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image027_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image027" border="0" alt="clip_image027" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image027_thumb.jpg" width="165" height="55" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;Delay&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Delay Activity, as its name suggests, will block the current workflow execution path for a &lt;b&gt;Duration&lt;/b&gt; specified by user. After the duration expires, the workflow continues execution as expected. The duration of the delay is set using a &lt;a href="http://msdn.microsoft.com/en-us/library/system.timespan.aspx"&gt;TimeSpan&lt;/a&gt;.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image028_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image028" border="0" alt="clip_image028" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image028_thumb.jpg" width="150" height="37" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;InvokeMethod / InvokeMethod&amp;lt;T&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;InvokeMethod is the activity that allows you to call an existing CLR instance or static method. To invoke a method all you need to do is provide the owner of the method (&lt;b&gt;TargetType&lt;/b&gt; for static methods, &lt;b&gt;TargetObject&lt;/b&gt; for instance methods), the &lt;b&gt;MethodName&lt;/b&gt;, and its &lt;b&gt;Parameters&lt;/b&gt;.&lt;/p&gt;            &lt;p&gt;InvokeMethod supports the following method invocation scenarios:&lt;/p&gt;            &lt;p&gt;· Public instance and static methods&lt;/p&gt;            &lt;p&gt;· Parameter passing by value and by reference&lt;/p&gt;            &lt;p&gt;· Support for parameter arrays&lt;/p&gt;            &lt;p&gt;· Support for generic parameters&lt;/p&gt;            &lt;p&gt;· Asynchronous method invocation&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image029_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image029" border="0" alt="clip_image029" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image029_thumb.jpg" width="182" height="106" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;WriteLine&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Writes text to the configured output console. &lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;u&gt;Writing beyond the System.Console&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;WriteLine has a TextWriter argument can be configured to write to different outputs. For example, we can configure the TextWriter property to send the text to an ASP.NET page. If the TextWriter is not set, it will be set by default to the &lt;a href="http://msdn.microsoft.com/en-us/library/system.console.aspx"&gt;System Console&lt;/a&gt;.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image030_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image030" border="0" alt="clip_image030" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image030_thumb.jpg" width="155" height="38" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr bgcolor="#f0f0f0"&gt;         &lt;td valign="top" width="100%" colspan="3"&gt;           &lt;p&gt;&lt;b&gt;Advanced (Cancellation, Compensation, Transactions, and Persistence)&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;CancellationScope&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;The CancellationScope activity consists of two main parts, the &lt;b&gt;Body&lt;/b&gt; and the &lt;b&gt;CancelHandler&lt;/b&gt;. The body is the code path that normally executes. If the activity gets canceled, then the cancel handler is called. &lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image032_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image032" border="0" alt="clip_image032" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image032_thumb.jpg" width="161" height="187" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;CompensatableActivity&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;CompensableActivity is used to define a potentially long running activity with accompanying &lt;strong&gt;Compensation&lt;/strong&gt; and &lt;strong&gt;Confirmation &lt;/strong&gt;logic.&lt;/p&gt;            &lt;p&gt;Compensation allows the user to specify corrective action to be taken on an activity based upon activity which occurs after the successful completion of the &lt;strong&gt;Body &lt;/strong&gt;of the activity.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image033_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image033" border="0" alt="clip_image033" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image033_thumb.jpg" width="132" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;Compensate&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Compensate is used to explicitly invoke the compensation handler of a CompensableActivity.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image034_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image034" border="0" alt="clip_image034" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image034_thumb.jpg" width="148" height="36" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;Confirm&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Confirm is used to explicitly invoke the confirmation handler of a CompensableActivity.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image035_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image035" border="0" alt="clip_image035" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image035_thumb.jpg" width="146" height="36" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;Persist&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;Persists the workflow instance. Persistence will be done using the configuration of the WorkflowInstance that is being executed (this activity doesn’t have any arguments).&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image036_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image036" border="0" alt="clip_image036" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image036_thumb.jpg" width="148" height="36" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="20%"&gt;           &lt;p&gt;TransactionScopeActivity&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="36%"&gt;           &lt;p&gt;The TransactionScopeActivity provides the mechanism for initializing a new transaction, making the transaction handle ambient (a workflow execution property) and calling complete on the transaction once the &lt;b&gt;Body&lt;/b&gt; of the TransactionScope activity has completed.&lt;/p&gt;            &lt;p&gt;TransactionScopeActivity supports “Requires” semantics. If there is already an ambient transaction it is used, else a new one is created. &lt;/p&gt;            &lt;p&gt;&lt;b&gt;&lt;u&gt;Nested transaction scopes:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;TransactionScopeActivity can be nested in another TransactionScopeActivity. A TransactionScopeActivity nested in another TransactionScopeActivity will use the existing transaction.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="43%"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image037_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image037" border="0" alt="clip_image037" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image037_thumb.jpg" width="135" height="119" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;h4&gt;Flowchart&lt;/h4&gt;  &lt;p&gt;Flowchart is a new modeling style that we have introduced in WF4. Flowchart is a well known and intuitive paradigm to visually represent business processes. Business Analysts, Architects and Developers use often flowcharts as common language to express processes.&amp;#160; &lt;/p&gt;  &lt;p&gt;Flowchart is a very powerful construct since it provides the simplicity of sequence plus the ability of looping back to a previous point of execution. All this is conveyed using a very well known conceptual paradigm that is common across several disciplines beyond computer science! &lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0" width="502"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#dcdcdc"&gt;         &lt;td valign="top" width="97"&gt;           &lt;p&gt;&lt;b&gt;Activity&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="191"&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="212"&gt;           &lt;p&gt;&lt;b&gt;Designer&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="97"&gt;           &lt;p&gt;Flowchart&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="191"&gt;           &lt;p&gt;This is the root for a Flowchart. Since Flowchart is an activity like any other, it can be composed inside any container activity.&lt;/p&gt;            &lt;p&gt;For example, we can add a Flowchart inside of a Sequence or a Flowchart inside another Flowchart.&lt;/p&gt;            &lt;p&gt;The green ball in the image at the right represents the &lt;b&gt;start node&lt;/b&gt; of the Flowchart.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="212"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/image_thumb_4.png" width="185" height="244" /&gt;&lt;/a&gt;&amp;#160;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="97"&gt;           &lt;p&gt;FlowDecision&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="191"&gt;           &lt;p&gt;FlowDecision models conditional forks within a Flowchart. It can be seen as the equivalent of the procedural If activity in the Flowchart world.&lt;/p&gt;            &lt;p&gt;This activity contains a Boolean expression &lt;b&gt;Condition&lt;/b&gt;. If the expression evaluates to “True”, the true path is executed (otherwise, the false path is scheduled).&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="212" align="center"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/image_thumb_1.png" width="89" height="70" /&gt;&lt;/a&gt; &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="97"&gt;           &lt;p&gt;FlowSwitch&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="191"&gt;           &lt;p&gt;FlowSwitch activity selects a next node depending on the value of an &lt;b&gt;expression&lt;/b&gt;. FlowSwitch can be seen as the equivalent of the procedural Switch activity in the Flowchart world.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="212" align="center"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/image_thumb_2.png" width="66" height="64" /&gt;&lt;/a&gt; &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;h4&gt;Messaging&lt;/h4&gt;  &lt;p&gt;The WF4 Messaging Activities are designed to support message-oriented workflows and provide better integration of messaging into workflows. They enable workflows to send data out to other systems and receive data from other systems. These activities can be composed together and along with correlation can model many complex Message Exchange Patterns.&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#dcdcdc"&gt;         &lt;td valign="top" width="252"&gt;           &lt;p&gt;&lt;b&gt;Activity&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="636"&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="605"&gt;           &lt;p&gt;&lt;b&gt;Designer&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="252"&gt;           &lt;p&gt;Receive&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="636"&gt;           &lt;p&gt;Models one way receive of a message. It can receive data of the following types: Message, DataContract types, XmlSerializable types, and MessageContracts.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="605"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image041_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image041" border="0" alt="clip_image041" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image041_thumb.jpg" width="189" height="84" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="252"&gt;           &lt;p&gt;ReceiveAndSendReply&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="636"&gt;           &lt;p&gt;This activity template represents a correlated Receive activity and SendReply activity. &lt;/p&gt;            &lt;p&gt;By using this template you can wait for an incoming message and then send a reply to the sender.&lt;/p&gt;            &lt;p&gt;Since the Receive and the SendReply are inside a sequence, you can add any activity between them.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="605"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image042_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image042" border="0" alt="clip_image042" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image042_thumb.jpg" width="198" height="231" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="252"&gt;           &lt;p&gt;Send&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="636"&gt;           &lt;p&gt;Models one way send of a message. It can receive data of the following types: Message, DataContract types, XmlSerializable types, and MessageContracts.&lt;/p&gt;            &lt;p&gt;This activity can be used in two ways:&lt;/p&gt;            &lt;p&gt;1. Client: this activity can be used to send a request to a service. This is equivalent to a WCF client calling a service operation. No contract inference is performed on the client side.&lt;/p&gt;            &lt;p&gt;2. On the server side the Send activity can be used to send a reply to a previous Receive. In this case the Send and Receive activities must have the same OperationName, Action and CorrelationHandle.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="605"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image043_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image043" border="0" alt="clip_image043" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image043_thumb.jpg" width="204" height="90" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="252"&gt;           &lt;p&gt;SendAndReceiveReply&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="636"&gt;           &lt;p&gt;This activity template represents a correlated Send activity and ReceiveReply activity. &lt;/p&gt;            &lt;p&gt;By using this template you can send a message and then wait for a reply from the destination. &lt;/p&gt;            &lt;p&gt;Since the Send and the ReceiveReply activities are inside a sequence, you can add any activity between them.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="605"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image044_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image044" border="0" alt="clip_image044" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image044_thumb.jpg" width="199" height="233" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;h4&gt;PowerShell&lt;/h4&gt;  &lt;p&gt;PowerShell activities, as their name imply, allow invoking &lt;a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"&gt;PowerShell&lt;/a&gt; cmdlets (commandlets) and scripts from WF programs.&lt;/p&gt;  &lt;p&gt;Please note that while these activities are included by default in the Beta1 toolbox, they will not be available in the final RTM bits when we release. This is because .NET Framework does not allow taking a dependency on a technology that does not ship in the framework. We're working on a longer term strategy here since many customers have requested PowerShell activities. For RTM, you will find these activities in the SDK samples instead. &lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#dcdcdc"&gt;         &lt;td valign="top" width="261"&gt;           &lt;p&gt;&lt;b&gt;Activity&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="584"&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="648"&gt;           &lt;p&gt;&lt;b&gt;Designer&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="261"&gt;           &lt;p&gt;InvokePowerShell&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="584"&gt;           &lt;p&gt;Invokes a PowerShell cmdlet that does not have a return value. InvokePowerShell can be used to invoke simple cmdlets and scripts. We can also pass parameters and input objects to the cmdlet. After execution, the activity provides a set of errors (if any occurred).&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="648"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image045_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image045" border="0" alt="clip_image045" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image045_thumb.jpg" width="209" height="123" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="261"&gt;           &lt;p&gt;InvokePowerShell&amp;lt;T&amp;gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="584"&gt;           &lt;p&gt;An activity that invokes and retrieves the resultant output from a PowerShell cmdlet. This flavor of the activity has all the same arguments than the non-generic version plus an InitializationAction. &lt;/p&gt;            &lt;p&gt;The InitializationAction is used to map the results of the execution of the cmdlet to variables in our workflows.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="648"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image046_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image046" border="0" alt="clip_image046" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image046_thumb.jpg" width="218" height="119" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;h4&gt;Migration&lt;/h4&gt;  &lt;p&gt;WF 3.x and 4.0 can exist side by side, but you can also use WF 3.x activities in WF4 workflows using the Interop activity. &lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#dcdcdc"&gt;         &lt;td valign="top" width="261"&gt;           &lt;p&gt;&lt;b&gt;Activity&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="584"&gt;           &lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="648"&gt;           &lt;p&gt;&lt;b&gt;Designer&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="261"&gt;           &lt;p&gt;Interop&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="584"&gt;           &lt;p&gt;The Interop activity is a WF4 activity that wraps a WF3 activity (a non-abstract CLR type that derives from System.Workflow.ComponentModel.Activity) thus allowing the WF3 activity to be used in WF4 workflows.&amp;#160; Note that the WF3 activity can be a single leaf activity, or an entire compiled workflow (tree of activities). &lt;/p&gt;            &lt;p&gt;The Interop activity bridges the WF4 and WF3 activity execution models, facilitates data flow across the interop boundary, and enables persistence and tracking of WF3 activity instances within WF4 workflow instances.&lt;/p&gt;            &lt;p&gt;The Interop activity allows WF developers to move to the WF4 model in an incremental fashion:&lt;/p&gt;            &lt;p&gt;· Quickly experiment with WF4 using existing WF3 activity artifacts&lt;/p&gt;            &lt;p&gt;· Wrap WF3 activities the developer isn’t ready to redesign on the WF4 model&lt;/p&gt;            &lt;p&gt;· Wrap WF3 activities for which the developer doesn’t own or possess the source code (e.g. they purchased the activity from a third party)&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="648"&gt;           &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image047_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="clip_image047" border="0" alt="clip_image047" src="http://blogs.msdn.com/blogfiles/endpoint/WindowsLiveWriter/04171462c6f8_12786/clip_image047_thumb.jpg" width="186" height="62" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;h4&gt;Wrapping up&lt;/h4&gt;  &lt;p&gt;It’s been a long tour, hasn't it? And this is just the beginning! There are a lot of new exciting features in WF4 and we are eager to share them with you in future posts.&lt;/p&gt;  &lt;p&gt;This post is an introduction to the activities that we are shipping in the activities toolbox. If you want to see these activities in action, please check our &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5aca0622-d87d-4cc9-a22c-0d58205a56b4&amp;amp;displaylang=en"&gt;WF samples&lt;/a&gt;. A good starting point are the samples under the folder %SamplesRoot%\WF\Built-InActivities.&lt;/p&gt;  &lt;p&gt;&lt;s&gt;&lt;/s&gt;&lt;/p&gt;  &lt;p&gt;We are keenly interested in understanding your scenarios and ideas, and helping you accomplish your goals on WF4.&amp;#160; We’d appreciate your feedback (both positive and critical), and we look forward to continued dialogue about the activities that you would like to see in WF toolbox. We look forward to hearing from you!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9651914" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/endpoint/archive/tags/Workflow/default.aspx">Workflow</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/Activities/default.aspx">Activities</category><category domain="http://blogs.msdn.com/endpoint/archive/tags/4.0/default.aspx">4.0</category></item></channel></rss>