<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ariel Schapiro &#187; Windows Workflow Foundation</title>
	<atom:link href="http://blogs.southworks.net/aschapiro/category/windows-workflow-foundation/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.southworks.net/aschapiro</link>
	<description>This is work in progress!</description>
	<lastBuildDate>Fri, 03 Feb 2012 23:40:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>WF 3.5 Certification exams design session</title>
		<link>http://blogs.southworks.net/aschapiro/2007/05/28/wf-35-certification-exams-design-session/</link>
		<comments>http://blogs.southworks.net/aschapiro/2007/05/28/wf-35-certification-exams-design-session/#comments</comments>
		<pubDate>Mon, 28 May 2007 05:06:23 +0000</pubDate>
		<dc:creator>aschapiro</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Microsoft Learning]]></category>
		<category><![CDATA[Windows Workflow Foundation]]></category>

		<guid isPermaLink="false">/blogs/ariel/archive/2007/05/28/WF-3.5-Certification-exams-design-session.aspx</guid>
		<description><![CDATA[... <a href="http://blogs.southworks.net/aschapiro/2007/05/28/wf-35-certification-exams-design-session/" class="more-link">read more<img src="http://blogs.southworks.net/aschapiro/wp-content/themes/southworks/assets/img/arrow-blue.png" width="12" height="12" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p>Last week I&#8217;ve been participating on the design of the upcoming TS (Technology Specialist) certification exams for WF 3.5. (formerly known as &quot;<em>70-504: TS: .NET Framework 3.5 &#8211; Windows Workflow Foundation&quot;</em>)</p>
<p>The sessions have been organized by the <a href="http://www.microsoft.com/learning/default.mspx">Microsoft Learning</a> team and hosted by <a href="http://blogs.msdn.com/howard_dierking/">Howard Dierking</a>, who did a great job on helping us to discuss about the most important aspects of WF to test.</p>
<p>He explained the <a href="http://blogs.msdn.com/howard_dierking/archive/2007/01/18/why-new-gen.aspx">refactoring of the exam stack</a> and how having TS exams which are specific to a single technology and then PRO exams which are more scenario oriented can help software companies on measuring their applicants skills.</p>
<p>From left to right, the Subject Matter Experts that worked on that design sessions are: <a href="http://staff.southworks.net/blogs/ariel">Ariel Schapiro</a>, <a href="http://sergeluca.spaces.live.com/mmm2007-05-22_13.05/#">Serge Luca</a>, <a href="http://thespoke.net/blogs/alfred_myers/archive/2007/05/25/Exam504.aspx">Alfred Myers</a>, <a href="http://www.apress.com/author/authorDisplay.html?aID=742">Brian Myers</a> (author of &quot;<a href="http://www.apress.com/book/bookDisplay.html?bID=10172">Introduction to Windows Workflow Foundation</a>&quot; book) and <a href="http://www.dunntraining.com/">Mark Dunn</a>.</p>
<p><a href="http://blogs.southworks.net/aschapiro/files/2008/06/dsc03470.jpg"><img height="331" alt="DSC03470" src="http://blogs.southworks.net/aschapiro/files/2008/06/dsc03470-thumb.jpg" width="446" border="0" /></a> </p>
<p>It was really interesting to see how many points of view around the same subject help enormously in the design of an exam; good work guys!</p>
<p>Two more southies (<a href="http://staff.southworks.net/blogs/matiaswoloski/archive/2007/05/19/WCF-3.5-certification-design-session.aspx">Matias Woloski</a> and <a href="http://staff.southworks.net/blogs/johnny/archive/2007/05/23/WCF-Objective-Domain-Sessions.aspx">Johnny Halife</a>) participated in the WCF design sessions that took place one week before WF&#8217;s.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SaaS Workshop</title>
		<link>http://blogs.southworks.net/aschapiro/2007/03/30/saas-workshop/</link>
		<comments>http://blogs.southworks.net/aschapiro/2007/03/30/saas-workshop/#comments</comments>
		<pubDate>Fri, 30 Mar 2007 07:07:24 +0000</pubDate>
		<dc:creator>aschapiro</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Litware HR]]></category>
		<category><![CDATA[SaaS]]></category>
		<category><![CDATA[Tenant Provisioning]]></category>
		<category><![CDATA[Windows Workflow Foundation]]></category>

		<guid isPermaLink="false">/blogs/ariel/archive/2007/03/30/SaaS-Workshop.aspx</guid>
		<description><![CDATA[... <a href="http://blogs.southworks.net/aschapiro/2007/03/30/saas-workshop/" class="more-link">read more<img src="http://blogs.southworks.net/aschapiro/wp-content/themes/southworks/assets/img/arrow-blue.png" width="12" height="12" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/fred_chong">Fred Chong</a>, <a href="http://blogs.msdn.com/gianpaolo">Gianpaolo Carraro</a>, Erik Weis and <a href="http://staff.southworks.net/blogs/matiaswoloski">Matias Woloski</a> gave a 3-day workshop on SaaS, at Microsoft HQ in Redmond.</p>
<p>Attending Microsoft employees and ISVs used a SaaS reference application based on <a href="http://www.codeplex.com/LitwareHR">LitwareHR</a> to get inside of the architectural challenges solutions for data model configuration, <a href="http://staff.southworks.net/blogs/ariel/archive/2007/03/26/_2200_Tenant-Provisioning_2200_-Screencast-released.aspx">tenant provisioning</a>, workflow configuration and <a href="http://staff.southworks.net/blogs/matiaswoloski/archive/2007/03/10/The-holly-grail-of-Enterprise-SOA-security.aspx">security</a>.</p>
<p>Check <a href="http://staff.southworks.net/blogs/matiaswoloski/archive/2007/03/29/SaaS-Workshop-at-Microsoft_2C00_-Redmond.aspx">Matias&#8217;s post</a> for more details.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beta 1 to Beta 2 bumpy road&#8230;</title>
		<link>http://blogs.southworks.net/aschapiro/2006/03/27/beta-1-to-beta-2-bumpy-road/</link>
		<comments>http://blogs.southworks.net/aschapiro/2006/03/27/beta-1-to-beta-2-bumpy-road/#comments</comments>
		<pubDate>Mon, 27 Mar 2006 10:42:00 +0000</pubDate>
		<dc:creator>aschapiro</dc:creator>
				<category><![CDATA[Windows Workflow Foundation]]></category>

		<guid isPermaLink="false">/blogs/ariel/archive/2006/03/27/292.aspx</guid>
		<description><![CDATA[... <a href="http://blogs.southworks.net/aschapiro/2006/03/27/beta-1-to-beta-2-bumpy-road/" class="more-link">read more<img src="http://blogs.southworks.net/aschapiro/wp-content/themes/southworks/assets/img/arrow-blue.png" width="12" height="12" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span style="font-size: 10pt;font-family: Verdana">As every WF follower, I also made<br />
the upgrade from beta 1 to beta 2.<br />
I needed a state machine workflow using a persistence store, but <b>I realized<br />
that beta 2 doesnâ€™t exactly &#8220;extends&#8221; beta 1 </b>when I started<br />
seeing some building errors like this one here regarding the persistence store:</p>
<p></span><b><span style="font-size: 7.5pt;font-family: Verdana">System.Data.SqlClient.SqlException<br />
was unhandled<br />
  Message=&#8221;Procedure or function InsertWorkflow has too many<br />
arguments specified.&#8221;<br />
</span></b><span style="font-size: 10pt;font-family: Verdana"><br />
So I turned to some forum help and got <b>the SQL scripts I had to run in order<br />
to create beta 2 SQL persistence store</b>, which by the way, once you have<br />
installed the beta 2, you can find here: C:\WINDOWS\WinFX\v3.0\Windows Workflow<br />
Foundation\SQL\EN (remember to run first schema, then logic script for each<br />
database).</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: Verdana">If you think that your beta 1 code<br />
will build ok on your beta 2 you may be probable wrong if you donâ€™t take in<br />
count the changes. Because many of them are more than just an upgrade and make<br />
beta 1 code simply doesnâ€™t work! (Take a look at the advice section).</span></p>
<p class="MsoNormal"><b><span style="font-size: 10pt;font-family: Verdana">Another big addition to beta 1 may<br />
be the StateMachineWorkflowInstance class, which you can use to query state<br />
machine workflow instances about their current state, which states they can<br />
transition to, get all the workflow states, etc. Itâ€™s very useful if you want<br />
to get control of many state machines currently running just like in an<br />
ordering system case.</p>
<p>
The most useful conclusion I find for readers may be a short but powerful<br />
advice list:</span></b></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-size: 10pt;font-family: Verdana">Take a look at <a href="http://blogs.msdn.com/pandrew/archive/2006/01/19/UpgradeWFBeta2.aspx">Paul<br />
     Andrewâ€™s guide of changes from beta 1 to beta 2</a> and read carefully the<br />
     aspects of your project that may change. </span></li>
<li class="MsoNormal"><span style="font-size: 10pt;font-family: Verdana">Get <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=5DF74E3B-FB51-4A94-A11D-DFF70288A8BB&amp;displaylang=en">the<br />
     labs</a>.</span></li>
<li class="MsoNormal"><span style="font-size: 10pt;font-family: Verdana">Visit the Win <a href="http://msdn.microsoft.com/winfx/reference/workflow/default.aspx">FX<br />
     WF home</a>.</span></li>
<li class="MsoNormal"><span style="font-size: 10pt;font-family: Verdana">And last but absolutely not the least: keep an<br />
     eye on the <a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=122&amp;SiteID=1">WF<br />
     Forums</a>; theyâ€™ll save you a lot of time!!!</span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Workflow Monitor: tutorial, example and analysis.</title>
		<link>http://blogs.southworks.net/aschapiro/2005/11/08/using-workflow-monitor-tutorial-example-and-analysis/</link>
		<comments>http://blogs.southworks.net/aschapiro/2005/11/08/using-workflow-monitor-tutorial-example-and-analysis/#comments</comments>
		<pubDate>Tue, 08 Nov 2005 22:34:00 +0000</pubDate>
		<dc:creator>aschapiro</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[Windows Workflow Foundation]]></category>
		<category><![CDATA[Workflow Monitor]]></category>

		<guid isPermaLink="false">/blogs/ariel/archive/2005/11/08/Using-Workflow-Monitor_3A00_-tutorial_2C00_-example-and-analysis_2E00_.aspx</guid>
		<description><![CDATA[... <a href="http://blogs.southworks.net/aschapiro/2005/11/08/using-workflow-monitor-tutorial-example-and-analysis/" class="more-link">read more<img src="http://blogs.southworks.net/aschapiro/wp-content/themes/southworks/assets/img/arrow-blue.png" width="12" height="12" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Monitoring workflows is going to become an essential functionality in almost every BPM implemented with</strong> <a href="http://staff.southworks.net/blogs/ariel/archive/2005/10/20/86.aspx"><strong>Windows Workflow Foundation</strong></a><strong>.</strong> <strong>It allows administration users to get a fast and smart track of what&#8217;s going on with their multiple running workflows. This way, they can get a better control, summarized information and customized reports about running or closed workflows.</strong></p>
<p><strong>Here is a little example on how to configure and use the Workflow Monitor, using a simple workflow launcher solution to make a brief analysis of what can Workflow Monitor do for us.</strong></p>
<p><strong></strong>    <br />This WM is an application that let you see the running or completed workflows, all along with some information like their activities and even a design view of the selected workflows.</p>
<p><strong>Getting and configuring the WM:</strong>    <br />This WM sample comes with Windows Workflow Foundation and you get it this way:    <br />1) Open Windows Workflow Foundation Help: <em>\Documents and Settings\&lt;user&gt;\Start Menu\Programs\Windows Workflow Foundation\Windows Workflow Foundation Help</em>    <br />2) Navigate to: <em>Windows Workflow Foundation Samples -&gt; Application Samples -&gt; Workflow Monitor</em>.</p>
<p>This WM can show workflows details because it reads tracking information from the tracking database, so you must have installed the out-of-box SqlTrackingService. So once you have installed WM, just follow the &#8220;Configuring the SqlTrackingService Database&#8221; steps of the <em>Windows Workflow Foundation Help</em> up to step 4.</p>
<p>Step 5 is important because adds some stored procedures to the database which WM needs. In step 5, maybe you won&#8217;t find the <em>monitor_queries.sql</em> file, but don&#8217;t desperate!!! Its on the WorkflowMonitor folder that you just got from the <em>Windows Workflow Foundation Help</em>!!!</p>
<p><strong>WorkflowLauncher installing and configuration:</strong>    <br />Download WorkflowLauncher solution from <b><a href="http://staff.southworks.net/blogs/ariel/content/examples/WorkflowLauncher.zip">here</a>.</b>    <br />In the App.config file of the <em>WindowsApplication1</em> from the <em>WorkflowLauncher</em> solution, change the Initial catalog and Data Source properties of the ConnectionString for the <em>SqlTrackingService</em> type of service writing your own catalog and data source strings (Initial Catalog should be &quot;Tracking&quot; if you used the names suggested by the <em>Windows Workflow Foundation Help</em>).</p>
<p>Note the <strong><em>TrackWorkflowDefinition</em></strong> propery is set True!!!    <br />Build the solution.</p>
<p><strong>Making that the Workflow Monitor can see the <em>sampleWorkflow</em>:      <br /></strong>You must add the <em>WorkflowProject1</em> assembly to the WM folder so that it can show you the design of the workflow we are going to run:</p>
<p>Copy    <br /><em>WorkflowLauncher\WindowsApplication1\bin\Debug\WorkflowProject1.dll</em> </p>
<p>file to <em>WorkflowMonitor\CS\bin\Debug folder</em>.</p>
<p><strong>Using the Workflow Monitor:</strong>    <br />If you did the 3 last steps, we are good to go. Open the <em>WorkflowMonitor</em> solution, set the active solution configuration to &#8220;Debug&#8221;, build the solution and start it.    <br />Start the <em>WorkflowLauncher</em> solution. The <em>WorkflowLauncher</em> just launch a simple sequential workflow with a delay of the amount of seconds that you enter on the textbox. You can launch workflows that last as long as you want while you analyze the WM window. </p>
<p>Both windows should look like this:</p>
<p><a href="http://blogs.southworks.net/aschapiro/files/2008/06/1.png"><img height="250" alt="1" src="http://blogs.southworks.net/aschapiro/files/2008/06/1-thumb.png" width="449" border="0" /></a> </p>
<p>Turn ON the monitor by pressing the green play button on the WM window. Open the Settings window and set the Polling Interval to 500 ms. Use the WorkflowLauncher to launch a 15 seconds lasting workflow:</p>
<p><a href="http://blogs.southworks.net/aschapiro/files/2008/06/2.png"><img height="348" alt="2" src="http://blogs.southworks.net/aschapiro/files/2008/06/2-thumb.png" width="450" border="0" /></a> </p>
<p>As you can see, as the WM reads the Tracking information stored on the SQL database, shows the workflow details including the design of it. It even shows which activities are closed and which ones are running!!!:   <br />When the 15 seconds period finishes, the WM reads the updated information from the tracking service, which says that the workflow is done:</p>
<p><a href="http://blogs.southworks.net/aschapiro/files/2008/06/3.png"><img height="348" alt="3" src="http://blogs.southworks.net/aschapiro/files/2008/06/3-thumb.png" width="450" border="0" /></a> </p>
<p>And that&#8217;s how you can start playing with the WM&#8230;</p>
<p><strong>Some benefits:</strong>    <br />This WM works with the SqlTrackingService, so it shows the main information that services provides. But a great advantage is that <strong>you can make your own persistence service and make your own monitor to read it.</strong></p>
<p><strong>Imagine that you could organize your workflows by type so you monitor them and see in which step is every one of them or how many of them reached some point, etc&#8230;. Possibilities are countless!!!!!</strong></p>
<p>If you start a 60 seconds workflow, you close the WorkflowLauncher window (closing the Runtime) and open it again before the 60 seconds, that workflow will complete right on the 60 seconds time. That&#8217;s because when the runtime is started, the persistence services are also started so the runtime can take in count persisted but not closed workflows and continue running them.</p>
<p><strong>Some issues:</strong>    <br /><strong>Multiple Definitions of the Same Workflow Type</strong>:    <br />The SqlTrackingService will persist the workflow markup definition the first time a new workflow type is used. However, if the definition changes and the type version remains the same a new record is not persisted in the tracking database. This will result in the monitor always showing the first definition. You should check the &#8220;Workflow&#8221; Table on the Tracking database.</p>
<p><strong>Dynamic Update</strong>:    <br />The Workflow Monitor does not recognize dynamic changes to a workflow instance. If a workflow instance is changed while executing the Activity Pane will show the correct status information but the Workflow View Pane will not show the updated workflow definition and may not show the correct highlighted activity.</p>
<p><strong>So use it, make your own conclusions and tell me how it was!!!</strong></p>
<p>If you are new to WWF, this <a href="http://staff.southworks.net/blogs/ariel/archive/2005/10/20/86.aspx">simple explanation</a> can help.</p>
<p><font face="Verdana" color="#808080" size="2"></font></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chaining Workflows Synchronously:  InvokeWorkflowSync Activity v1.0</title>
		<link>http://blogs.southworks.net/aschapiro/2005/11/01/invokeworkflowsyncactivity-v-1/</link>
		<comments>http://blogs.southworks.net/aschapiro/2005/11/01/invokeworkflowsyncactivity-v-1/#comments</comments>
		<pubDate>Tue, 01 Nov 2005 23:07:00 +0000</pubDate>
		<dc:creator>aschapiro</dc:creator>
				<category><![CDATA[Windows Workflow Foundation]]></category>

		<guid isPermaLink="false">/blogs/ariel/archive/2005/11/02/InvokeWorkflowSyncActivity-v-1.aspx</guid>
		<description><![CDATA[... <a href="http://blogs.southworks.net/aschapiro/2005/11/01/invokeworkflowsyncactivity-v-1/" class="more-link">read more<img src="http://blogs.southworks.net/aschapiro/wp-content/themes/southworks/assets/img/arrow-blue.png" width="12" height="12" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p><font face="Verdana" color="#808080" size="2">
<p>The InvokeWorkflow Activity does a great job calling workflows asynchronously. This way you can call a workflow to start from your current workflow and keep going.     <br /><b>But what if you want to start it synchronously? What if you want to chain workflows in a hierarchical architecture and you don&#8217;t want to use the &quot;fire and forget&quot; pattern to call your workflows?</b>      <br /><b>That&#8217;s why I created the InvokeWorkflowSync Activity. It&#8217;s an easy way of calling workflows the way InvokeWorkflow does but with the difference that the main workflow won&#8217;t continue until the invoked workflow has completed.</b>      <br /><b>So give it a try and tell me how was it!!!</b>      <br /><b>Using it:</b>      <br />Once you build the ActivityLibrary that contains the InvokeWorkflowSync Activity, drag it from the Toolbox to the workflow you want to use it on:      </p>
<p><a href="http://blogs.southworks.net/aschapiro/files/2008/06/usingit.png"><img height="163" alt="usingIt" src="http://blogs.southworks.net/aschapiro/files/2008/06/usingit-thumb.png" width="450" border="0" /></a>       </p>
<p>In this version, you have the same main parameters as the regular InvokeWorkflow Activity has:</p>
<ul>
<li>TargetWorkflow: Type of workflow to invoke.</li>
<li>Invoking: Event that fired before the workflow is invoked.</li>
<li>Invoked: Event that fired after the workflow is invoked.</li>
</ul>
<p>Once you run your application, invoking workflows will continue running just after their invoked workflows complete its execution.     <br />You can see it in the demo, where I used 2 InvokeWorkflow activities: the first one invokes a workflow where another InvokeWorkflow activity calls the third and last workflow in the chain. <b>The idea is to make easier a hierarchical chaining system made of workflows.</b></p>
<p>   <strong></strong>
<p><a href="http://blogs.southworks.net/aschapiro/files/2008/06/console.png"><img height="106" alt="console" src="http://blogs.southworks.net/aschapiro/files/2008/06/console-thumb.png" width="454" border="0" /></a>&#160; <br /><b></b></p>
<p><b>How it works:</b>      <br />As I first took a glance at InvokeWorkflow activity I realized that its a sealed class so lamentably I had to made my own InvokeWorkflowSync inheriting it from System.Workflow.ComponentModel.Activity.      <br /><b>Execution:</b>      <br />&#160;&#160;&#160; The overriding InvokeWorkflowSync.Execute method is the one that has the activity execution logic, and mainly performs the following tasks:</p>
<ul>
<li>Get Runtime from the context:</li>
<pre><a href="http://blogs.southworks.net/aschapiro/files/2008/06/code1.png"><img height="13" alt="code1" src="http://blogs.southworks.net/aschapiro/files/2008/06/code1-thumb.png" width="444" border="0" /></a> </pre>
<ul>
<li>Start listening for passed Workflow to complete:</li>
</ul>
<p>  <a href="http://blogs.southworks.net/aschapiro/files/2008/06/code2.png"><img height="11" alt="code2" src="http://blogs.southworks.net/aschapiro/files/2008/06/code2-thumb.png" width="438" border="0" /></a> </p>
<ul>
<li>Start passed workflow:</li>
</ul>
<p>  <a href="http://blogs.southworks.net/aschapiro/files/2008/06/code3.png"><img height="9" alt="code3" src="http://blogs.southworks.net/aschapiro/files/2008/06/code3-thumb.png" width="432" border="0" /></a> </p>
<ul>
<li>And once the workflow is completed, goes on:</li>
</ul>
<p><a href="http://blogs.southworks.net/aschapiro/files/2008/06/code4.png"><img height="81" alt="code4" src="http://blogs.southworks.net/aschapiro/files/2008/06/code4-thumb.png" width="442" border="0" /></a> </p>
<p><b>Validation:</b></p>
<p>&#160;&#160;&#160; The InvokeWorkflowSync is validated by the InvokeWorkflowSyncValidator class with its Validate method. This one checks that the TargetWorkflow Parameter isn&#8217;t null retrieving an indicating smart tag in case it is:</p>
<p><a href="http://blogs.southworks.net/aschapiro/files/2008/06/validation.jpg"><img height="109" alt="validation" src="http://blogs.southworks.net/aschapiro/files/2008/06/validation-thumb.jpg" width="240" border="0" /></a> </p>
<p>
    <br /><b>Some issues:</b></p>
<p><b>Workflow Parameters</b>: passing parameters to workflows is not allowed in this version. Will be ready for next version.</p>
<p><b>Time out Parameter</b>: Since workflow is called synchronically, it would be nice to have a time out parameter for which the main workflow would keep its execution terminating the invoked workflow. Will be ready for next version.</p>
<p>  <font face="Verdana" color="#808080" size="2"><font color="#000000"><b></b></p>
<p>    </font></font></p>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Which Workflow Style should I use?: More approaches&#8230;</title>
		<link>http://blogs.southworks.net/aschapiro/2005/10/27/what-style-of-workflow-should-i-use/</link>
		<comments>http://blogs.southworks.net/aschapiro/2005/10/27/what-style-of-workflow-should-i-use/#comments</comments>
		<pubDate>Thu, 27 Oct 2005 00:00:00 +0000</pubDate>
		<dc:creator>aschapiro</dc:creator>
				<category><![CDATA[Windows Workflow Foundation]]></category>

		<guid isPermaLink="false">/blogs/ariel/archive/2005/10/27/What-style-of-Workflow-should-I-use.aspx</guid>
		<description><![CDATA[... <a href="http://blogs.southworks.net/aschapiro/2005/10/27/what-style-of-workflow-should-i-use/" class="more-link">read more<img src="http://blogs.southworks.net/aschapiro/wp-content/themes/southworks/assets/img/arrow-blue.png" width="12" height="12" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p><font face="Verdana" color="#808080" size="2"></font>
<p>People are asking around which style of workflow should they use for their scenarios and its important to know which workflow type fits best with which scenario, <b>but that&#8217;s just the first step!!! Once you get there, there is a whole and exciting world in which open-minded developers started playing a few months ago, a &#8220;building blocks game&quot;: Windows Workflow Foundation.</b>      <br />This game comes with certain ways of playing it (workflow styles), some rules (you are attached to a certain technology), a booklet (documentation) and of course the building block themselves (toolbox Activities), etc&#8230;.      <br />Since this game is a building one, it comes with the tools you need to build, and the booklet shows you the best ways of building some sample constructions. This is useful because you get to know which approach you must take in order to build your own construction.      <br />Going back to our real game, there are some questions you can ask yourself in order to know which workflow style is more suitable for your application:</p>
<p><a href="http://blogs.southworks.net/aschapiro/files/2008/06/whichstyleofwfwhen.png"><img height="116" alt="WhichStyleOfWFWhen" src="http://blogs.southworks.net/aschapiro/files/2008/06/whichstyleofwfwhen-thumb.png" width="449" border="0" /></a> </p>
<p>That is how some order approval workflow (where users are in control of the sequence) fits better with a State Machine type and a vendor machine workflow (the machine makes the decisions based on inputted data) fits best with a sequential style&#8230; You can find similar ideas in a <b><u><a href="http://blogs.msdn.com/davegreen/default.aspx">Dave Green</a></u></b>&#180;s great <b><u><a href="http://blogs.msdn.com/davegreen/archive/2005/10/20/483309.aspx">post</a></u></b>.      <br /><b>One important thing are some approaches that go hand by hand with each workflow type. And that&#180;s another way of noticing which type of workflow you must use. Because if you have a sequential workflow full of event driven activities, you will solve your problem in a much better way using a state machine style, for example.       <br /></b>Another important approach mentioned in Dave&#180;s post is the Data Driven, which is typically solved by a list of activities executed on a variety of conditions. This approach is implemented by the &quot;Constrained Activity Group&quot; and the &quot;Policy&quot; models, typically found in sequential workflows.      <br />However, as I said before, this is just the beginning&#8230;because maybe (you will probably agree with me on this&#8230;) you need to combine both of these approaches to solve your scenario. <b>This leads us to custom workflows, which are not another thing than custom activities!!!</b>      <br /><b>Then, one after another, you will find yourself thinking about other aspects of Windows Workflow Foundations that you must implement and in many cases extend.        <br />Some of those could be <a href="http://www.dennispi.com/#112803113054978800">communication by local connection</a>, communication by web services, workflow persistence services, etc&#8230;</b>      <br />As a conclusion we can say that its fundamental to know which workflow style you should use for which scenario. <b>But its even more important to understand that you will probably have to make use of the tools that the game of windows Workflow Foundation gives you to make your own Workflows (in a practical way you can see a workflow as an activity) and arrange the context (host, communications, persistence, etc) to serve the solution&#8230;&#8230; But the best way of getting to understand this is, like a game, by playing with it!!!</b>      <br /><b>PS: some extending explanations on related stuff comes tomorrow&#8230;stay tuned!</b></p>
</p>
<p> <font face="Verdana" color="#808080" size="2">
<p><b><font color="#000000"></font></b></p>
</p>
<p> </font></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASP.net + WWF Example: Navigation Map with Local Connection approach.</title>
		<link>http://blogs.southworks.net/aschapiro/2005/10/20/aspnet-wwf-example-navigation-map-with-local-connection-approach/</link>
		<comments>http://blogs.southworks.net/aschapiro/2005/10/20/aspnet-wwf-example-navigation-map-with-local-connection-approach/#comments</comments>
		<pubDate>Thu, 20 Oct 2005 17:53:00 +0000</pubDate>
		<dc:creator>aschapiro</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[WF + Asp.Net]]></category>
		<category><![CDATA[Windows Workflow Foundation]]></category>

		<guid isPermaLink="false">/blogs/ariel/archive/2005/10/20/ASP.net-_2B00_-WWF-Example_3A00_-Navigation-Map-with-Local-Connection-approach_2E00_.aspx</guid>
		<description><![CDATA[... <a href="http://blogs.southworks.net/aschapiro/2005/10/20/aspnet-wwf-example-navigation-map-with-local-connection-approach/" class="more-link">read more<img src="http://blogs.southworks.net/aschapiro/wp-content/themes/southworks/assets/img/arrow-blue.png" width="12" height="12" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p><font face="Verdana" color="#808080" size="2"><strong><font color="#000000">This example intends to show a way of implementing some kind of a navigation map for websites based on workflow.         <br /></font></strong>Because      <br />of the navigation nature of web sites (the user navigates through nodes      <br />without a specific order), the chosen workflow is a <a href="/blogs/jony/archive/2005/09/28/59.aspx">state machine </a>type.</font></p>
<p><font face="Verdana" color="#808080" size="2">For this simple example, we use just two nodes represented by web pages. In the first one (<em>Create</em> step represented by <em>Default.aspx</em> page), the user enters some data that is stored inside the workflow and then retrieved in the second step of it (<em>Show</em> step represented by <em>Show.aspx</em> page):</font>
</p>
<p><font face="Verdana" color="#808080" size="2"><a href="http://blogs.southworks.net/aschapiro/files/2008/06/drawing1.jpg"><img height="255" alt="Drawing1" src="http://blogs.southworks.net/aschapiro/files/2008/06/drawing1-thumb.jpg" width="450" border="0" /></a> </font>
</p>
<p align="center"><font face="Verdana" color="#808080" size="2"><a href="/photos/blog_gallery/images/85/original.aspx"></a></font></p>
<p><font face="Verdana" color="#808080" size="2"><strong><font color="#000000">We are investigating many ways ASP.net and WWF interact so stay tuned for more approaches!!!         <br /></font><font color="#000000">Download:</font></strong> <a href="/blogs/ariel/content/examples/ASPNET_NavigationWorkflow_1.zip">ASPNET_NavigationWorkflow.zip</a>      <br /><strong><font color="#000000">Related URL:</font></strong> <a href="http://blogs.msdn.com/jamescon">James conard&#194;&#180;s</a> <a href="http://www.windowsworkflow.net/downloads/#TechnologySamples">ASP.NET WebForm Example</a></font><font face="Verdana" size="2">     <br /></font></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Build Workflows outside of the VS2005</title>
		<link>http://blogs.southworks.net/aschapiro/2005/10/19/build-workflows-outside-of-the-vs2005/</link>
		<comments>http://blogs.southworks.net/aschapiro/2005/10/19/build-workflows-outside-of-the-vs2005/#comments</comments>
		<pubDate>Wed, 19 Oct 2005 23:30:00 +0000</pubDate>
		<dc:creator>aschapiro</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[Windows Workflow Foundation]]></category>

		<guid isPermaLink="false">/blogs/ariel/archive/2005/10/20/Build-Workflows-outside-of-the-VS2005.aspx</guid>
		<description><![CDATA[... <a href="http://blogs.southworks.net/aschapiro/2005/10/19/build-workflows-outside-of-the-vs2005/" class="more-link">read more<img src="http://blogs.southworks.net/aschapiro/wp-content/themes/southworks/assets/img/arrow-blue.png" width="12" height="12" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p>        <P><FONT face="Verdana" color="#808080" size="2">An interesting idea that has been getting attention in the past days is the possibility of building workflows outside of the VS Workflow Designer.<BR>The most relevant developed examples of this new possibility are:</FONT></P><br />
<UL><br />
<LI><FONT face="Verdana" color="#808080" size="2"><A href="http://blogs.msdn.com/markhsch/default.aspx"><STRONG>Mark SchmidtÂ´s</STRONG></A>  <A href="http://blogs.msdn.com/markhsch/archive/2005/10/06/478042.aspx"><STRONG>WFPad &#8211; Viewing/Editing Workflow&#8217;s in XML</STRONG></A>: application in which you can design workflows in a graphic and an xoml way at the same time. Like XAMLPad but for WWF.</FONT><br />
<LI><FONT face="Verdana" color="#808080" size="2">Mick BadranÂ´s <A href="http://www.breezetraining.com.au/site/Default.aspx?tabid=30&amp;ctl=ViewEntry&amp;EntryID=138&amp;mid=358"><STRONG>Extending Workflows to MS Office</STRONG></A>: allows a user to design a workflow from within Word. Interesting for collaboration matters.</FONT></LI></UL></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Workflow Foundation (WWF): Brief Concepts.</title>
		<link>http://blogs.southworks.net/aschapiro/2005/09/23/windows-workflow-foundation-wwf-brief-concepts/</link>
		<comments>http://blogs.southworks.net/aschapiro/2005/09/23/windows-workflow-foundation-wwf-brief-concepts/#comments</comments>
		<pubDate>Fri, 23 Sep 2005 00:35:00 +0000</pubDate>
		<dc:creator>aschapiro</dc:creator>
				<category><![CDATA[Windows Workflow Foundation]]></category>

		<guid isPermaLink="false">/blogs/ariel/archive/2005/09/23/Windows-Workflow-Foundation-_2800_WWF_29003A00_-Brief-Concepts_2E00_.aspx</guid>
		<description><![CDATA[... <a href="http://blogs.southworks.net/aschapiro/2005/09/23/windows-workflow-foundation-wwf-brief-concepts/" class="more-link">read more<img src="http://blogs.southworks.net/aschapiro/wp-content/themes/southworks/assets/img/arrow-blue.png" width="12" height="12" alt="" /></a>]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><font face="Verdana" color="#808080" size="2"><font color="#000000"><b>This Post intends to be a little first look at Windows Workflow Foundation, with general descriptions and comments. We&#194;&#180;ll be adding some WWF Stuff later on.</b>
</p>
<p>     </font></font></p>
<p class="MsoNormal"><font face="Verdana" color="#808080" size="2"><font color="#000000"><b>There is a version in spanish available <a href="/blogs/ariel/content/docs/WWF%20Brief.doc">here</a>.</b>
</p>
<p>     </font></font></p>
<p class="MsoNormal"><font face="Verdana" color="#808080" size="2"><font color="#000000"><b></b>
</p>
<p>     </font></font></p>
<p class="MsoNormal"><font face="Verdana" color="#808080" size="2"><font color="#000000"><b>Definition:</b></font> WWF is a model which objective is to develop and      <br />to integrate workflows: a network of activities and conditions that describe a complete business process with software and people actions. The term of &quot;workflow&quot; is      <br />important because unlike the one of &quot;orquestation&quot;, it doesn&#194;&#180;t only talks about      <br />software work coordination, else, it also includes human work coordination.</font>
</p>
<p class="MsoNormal"><font face="Verdana" color="#808080" size="2"><font color="#000000"><b>Architecture</b>:</font> An application that works like Host (Windows      <br />console, Windows forms, etc.) that it uses the &quot;Worflow Runtime      <br />Engine&quot; (WRE) to instanciate one or more workflows. The Host process      <br />provides services to persist the state of workflows, to handle the transactions      <br />and other functions. Each workflow is made up of activities:</font>
</p>
<p><font face="Verdana" color="#808080" size="2"><b><font color="#000000"></font>
<p align="center"><a href="http://blogs.southworks.net/aschapiro/files/2008/06/wwfr-diagram.jpg"><img height="387" alt="WWFR_diagram" src="http://blogs.southworks.net/aschapiro/files/2008/06/wwfr-diagram-thumb.jpg" width="450" border="0" /></a> </p>
<p>Activities:</p>
<p>  </b>They are units of execution and reusability which      <br />solves a defined problem. WWF provides a set of basic activities (Base Activity      <br />Library) like ifElse/Code, etc but it gives the developer the chance to create      <br />others like sendMail, createCustomer, etc&#8230;</font>
</p>
<p>   <font face="Verdana" color="#808080" size="2">Activities are implemented in classes: they manage     <br />inheritance, and can contain many others activities and of course they are reusable.</font></p>
<p class="MsoNormal"><font face="Verdana" color="#808080" size="2">Within Base Activity Library, we can found the most relevant     <br />activities:</font>
</p>
<ul>
<li><font face="Verdana" color="#808080" size="2">Code: it executes C # code of customized actions.</font> </li>
<li><font face="Verdana" color="#808080" size="2">EventDriven: it represents a succession of activities whose       <br />execution is initiated by an event.</font> </li>
<li><font face="Verdana" color="#808080" size="2">EventSink: it allows the workflow to receive information of       <br />Data Exchange Service (DES) registered in workflow Runtime.</font> </li>
<li><font face="Verdana" color="#808080" size="2">Invoke Method: it allows workflow to invoke a method in the       <br />interface to send messages to the DES.</font> </li>
<li><font face="Verdana" color="#808080" size="2">Invoke WebService: it allows workflow to invoke a Web-service.</font> </li>
<li><font face="Verdana" color="#808080" size="2">Invoke workflow: it allows workflow to calls or start another workflow within the &quot;Fire &amp; Forget&quot; model.</font> </li>
<li><font face="Verdana" color="#808080" size="2">Select Data: it       <br />allows workflow to make queries through host indirectly.</font> </li>
</ul>
<p><font face="Verdana" color="#808080" size="2"></font>
<p><font color="#000000"><b>Workflow Models</b></font>: we have 2 existing workflow models: &quot;sequential&quot; and &quot;state machine&quot;.</p>
<p>The sequential model executes activities with a predefined pattern     <br />while state machine model only knows about the possible states the system may have, what they do, and what external events they respond to (here, the usual is having sequential-workflow logic).</p>
<div align="center">
<table cellspacing="10" cellpadding="0" align="center">
<tbody>
<tr>
<td align="center"><i>Sequential Workflow example</i></td>
<td align="center"><i>State Machine Workflow example</i></td>
<td valign="top">&#160;</td>
</tr>
<tr>
<td valign="top" align="center"><a href="http://blogs.southworks.net/aschapiro/files/2008/06/secuentialworkflowexample.jpg"><img height="297" alt="secuentialWorkflowExample" src="http://blogs.southworks.net/aschapiro/files/2008/06/secuentialworkflowexample-thumb.jpg" width="179" border="0" /></a> </td>
<td valign="top" align="center"><a href="http://blogs.southworks.net/aschapiro/files/2008/06/secuentialworkflowexample1.jpg"><img height="327" alt="secuentialWorkflowExample" src="http://blogs.southworks.net/aschapiro/files/2008/06/secuentialworkflowexample-thumb1.jpg" width="197" border="0" /></a> </td>
<td valign="top">&#160;</td>
</tr>
</tbody>
</table></div>
<p><b><font color="#000000">Consuming Data and Communications:</font></b>      <br />There are two ways of consuming data in a workflow: through parameters and events. The parameters are defined manually in the workflow settings and the events that rise from host are attended by the workflow with EventDriven activity. On the other hand workflows can communicate calling Web services and can also be exposed like such being used by other applications, etc.</p></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
