<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/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>Blog del CIIN : Visual Studio 2010, WF</title><link>http://geeks.ms/blogs/ciin/archive/tags/Visual+Studio+2010/WF/default.aspx</link><description>Etiquetas: Visual Studio 2010, WF</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>VS 2010 &amp; .NET Framework 4.0: Novedades en WF 4.0 (IV)!</title><link>http://geeks.ms/blogs/ciin/archive/2009/09/05/vs-2010-amp-net-framework-4-0-novedades-en-wf-4-0-iv.aspx</link><pubDate>Sat, 05 Sep 2009 21:43:34 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:155327</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ciin/rsscomments.aspx?PostID=155327</wfw:commentRss><comments>http://geeks.ms/blogs/ciin/archive/2009/09/05/vs-2010-amp-net-framework-4-0-novedades-en-wf-4-0-iv.aspx#comments</comments><description>&lt;p align="justify"&gt;Continuando con la serie de posts (puedes acceder al último post de la serie &lt;a href="http://geeks.ms/blogs/ciin/archive/2009/08/24/vs-2010-amp-net-fx-4-0-novedades-en-wf-4-0-iii.aspx"&gt;desde este enlace&lt;/a&gt;) sobre novedades de Windows Workflow Foundation 4.0 (WF 4.0), en esta ocasión os dejo un par de recursos más que interesantes para continuar con la inmersión en la tecnología de creación de flujos de trabajo de Microsoft:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Un artículo imprescindible sobre creación de workflows en .NET Framework 4.0 Beta 1: A &lt;a href="http://msdn.microsoft.com/en-us/library/ee342461.aspx"&gt;Developer&amp;#39;s Introduction to Windows Workflow Foundation (WF4) in .NET 4 Beta 1&lt;/a&gt;.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;&lt;a href="http://blogs.msdn.com/endpoint/archive/2009/05/29/a-tour-on-the-wf4-activity-palette.aspx"&gt;Un pequeño recorrido por la paleta de actividades que ahora mismo tenemos en WF 4.0&lt;/a&gt;.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="center"&gt;&lt;img alt="image004.png" src="http://i.msdn.microsoft.com/ee342461.image006(en-us).jpg" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Y hasta aquí llega este nuevo post sobre novedades de WF 4.0. Espero que os haya resultado interesante.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=155327" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/WF/default.aspx">WF</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/.NET+Framework+4.0/default.aspx">.NET Framework 4.0</category></item><item><title>VS 2010 &amp; .NET Fx 4.0: Novedades en WF 4.0 (III)!</title><link>http://geeks.ms/blogs/ciin/archive/2009/08/24/vs-2010-amp-net-fx-4-0-novedades-en-wf-4-0-iii.aspx</link><pubDate>Mon, 24 Aug 2009 21:53:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:154700</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ciin/rsscomments.aspx?PostID=154700</wfw:commentRss><comments>http://geeks.ms/blogs/ciin/archive/2009/08/24/vs-2010-amp-net-fx-4-0-novedades-en-wf-4-0-iii.aspx#comments</comments><description>&lt;p align="justify"&gt;Siguiendo con la serie de post en torno a las novedades de Windows Workflow Foundation 4.0 (WF 4.0, puedes leer tambi&amp;eacute;n las partes &lt;a href="http://geeks.ms/blogs/ciin/archive/2009/05/19/vs-2010-amp-net-fx-4-0-novedades-en-wf-4-0-i.aspx"&gt;I&lt;/a&gt; y &lt;a href="http://geeks.ms/blogs/ciin/archive/2009/06/02/vs-2010-amp-net-fx-4-0-novedades-en-wf-4-0-ii.aspx"&gt;II&lt;/a&gt;), en esta ocasi&amp;oacute;n voy a tratar sobre lo f&amp;aacute;cil que resulta definir argumentos y variables en Visual Studio 2010 para poder comunicarnos con un workflow de WF 4.0. Empecemos.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;em&gt;Dise&amp;ntilde;ando el workflow&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Como siempre, lo primero que vamos a hacer es dise&amp;ntilde;ar el workflow de WF 4.0 con Visual Studio 2010:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Iniciamos Visual Studio 2010 y creamos un proyecto de workflow (de tipo secuencial).&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;En el dise&amp;ntilde;ador de workflows, arrastramos una actividad de tipo Assign a la superficie de dise&amp;ntilde;o.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Para crear argumentos y variables en un workflow de WF 4.0, disponemos en el dise&amp;ntilde;ador de dos botones que nos permiten a&amp;ntilde;adirlos de forma muy sencilla.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Por ejemplo, para a&amp;ntilde;adir argumentos basta con pulsar el bot&amp;oacute;n Arguments y a&amp;ntilde;adir los argumentos que necesitemos. Estos pueden ser de entrada o de salida. En nuestro caso, crearemos un argumento de entrada y otro de salida.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;A continuaci&amp;oacute;n, configuramos la propiedad To de la actividad Assign a&amp;ntilde;adi&amp;eacute;ndole uno de estos argumentos que acabamos de crear utilizando para ello el editor de expresiones (os recuerdo que dicho editor usa sintaxis VB.NET).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div align="center"&gt;
&lt;table align="center" width="750" cellpadding="2" cellspacing="0" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="250" valign="top"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image_5F00_60CECC84.png"&gt;&lt;img height="141" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image_5F00_thumb_5F00_3110625E.png" alt="image" border="0" title="image" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/td&gt;
&lt;td width="250" valign="top"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image3_5F00_06084E8C.png"&gt;&lt;img height="141" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image3_5F00_thumb_5F00_4E15BECE.png" alt="image" border="0" title="image" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/td&gt;
&lt;td width="250" valign="top"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image6_5F00_50FAFDB4.png"&gt;&lt;img height="147" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image6_5F00_thumb_5F00_1FF7FAAF.png" alt="image" border="0" title="image" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Seguimos el mismo procedimiento para configurar la propiedad Value de la actividad Assign. &lt;/li&gt;
&lt;/ul&gt;
&lt;p align="center"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image9_5F00_73AB4DFD.png"&gt;&lt;img height="147" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image9_5F00_thumb_5F00_423C1803.png" alt="image" border="0" title="image" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Codificando la gesti&amp;oacute;n de los argumentos&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Una vez que hemos definido los argumentos de entrada y salida del workflow, ya solo nos falta definir las clases de gesti&amp;oacute;n correspondientes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Clase para el argumento de entrada, en la que simplemente definiremos un constructor en el que a&amp;ntilde;adimos la propiedad de entrada del workflow:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" style="border-bottom:medium none;border-left:medium none;border-collapse:collapse;border-top:medium none;border-right:medium none;mso-border-alt:solid black .5pt;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes;"&gt;
&lt;td width="659" valign="top" style="padding-bottom:0cm;padding-left:5.4pt;width:494.6pt;padding-right:5.4pt;background:#d9d9d9;padding-top:0cm;mso-border-alt:solid black .5pt;mso-background-themecolor:background1;mso-background-themeshade:217;border:black 1pt solid;"&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;using System;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;using System.Collections.Generic;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;using System.Linq;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;using System.Text;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:xx-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;namespace WFActivitiesDemo&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;{&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public class SayHelloInArgs: Dictionary&amp;lt;string,object&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public SayHelloInArgs(string name)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;this.Add(&amp;quot;Name&amp;quot;, name);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;} &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;} &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Clase para el argumento de salida, un poco m&amp;aacute;s compleja que la anterior ya que tenemos que realizar la asignaci&amp;oacute;n del valor de la propiedad. Fijaros tambi&amp;eacute;n que en este caso el constructor de la clase es un tipo complejo frente al caso del argumento de entrada. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" style="border-bottom:medium none;border-left:medium none;border-collapse:collapse;border-top:medium none;border-right:medium none;mso-border-alt:solid black .5pt;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes;"&gt;
&lt;td width="659" valign="top" style="padding-bottom:0cm;padding-left:5.4pt;width:494.6pt;padding-right:5.4pt;background:#d9d9d9;padding-top:0cm;mso-border-alt:solid black .5pt;mso-background-themecolor:background1;mso-background-themeshade:217;border:black 1pt solid;"&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;using System; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;using System.Linq; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;using System.Text;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:xx-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;namespace WFActivitiesDemo&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;{&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;class SayHelloOutArgs&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;IDictionary&amp;lt;string, object&amp;gt; _outArgs = null;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public SayHelloOutArgs(IDictionary&amp;lt;string, object&amp;gt; outArgs)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (outArgs == null)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;throw new ArgumentNullException(&amp;quot;outArgs&amp;quot;);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_outArgs = outArgs;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public string Greeting&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;get&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;return _outArgs[&amp;quot;Greeting&amp;quot;].ToString();&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="margin-left:0cm;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:en-us;"&gt;&lt;span style="font-size:xx-small;"&gt;} &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Probando el workflow&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Una vez que hemos definido las clases de gesti&amp;oacute;n de los argumentos de entrada y salida, solo nos queda probar el workflow. Para ello:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Modificamos Program.cs para que por una parte recoja la entrada de usuario en el argumento de entrada definido y por otra genere la salida definida y en la que se utiliza el argumento de salida.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" style="border-bottom:medium none;border-left:medium none;border-collapse:collapse;border-top:medium none;border-right:medium none;mso-border-alt:solid black .5pt;mso-yfti-tbllook:1184;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-themecolor:text1;"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes;"&gt;
&lt;td width="576" valign="top" style="padding-bottom:0cm;padding-left:5.4pt;width:432.2pt;padding-right:5.4pt;background:#bfbfbf;padding-top:0cm;mso-border-alt:solid black .5pt;mso-background-themecolor:background1;mso-background-themeshade:191;mso-border-themecolor:text1;border:black 1pt solid;"&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;namespace WFActivitiesDemo&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;{&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;using System;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;using System.Linq;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;using System.Threading;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;using System.Activities;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;using System.Activities.Statements;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;class Program&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;static void Main(string[] args)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;AutoResetEvent syncEvent = new AutoResetEvent(false);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;Console.Write(&amp;quot;Introduce tu nombre: &amp;quot;);&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span style="font-size:8pt;"&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;string name = Console.ReadLine();&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;string greeting=null;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;WorkflowInstance myInstance = new WorkflowInstance(new Sequence1(),&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;new SayHelloInArgs(name));&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;myInstance.OnCompleted = delegate(WorkflowCompletedEventArgs e)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SayHelloOutArgs outArgs =&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;new SayHelloOutArgs(e.Outputs);&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;greeting = outArgs.Greeting;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;syncEvent.Set();&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&amp;nbsp;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;};&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;myInstance.OnUnhandledException = delegate(WorkflowUnhandledExceptionEventArgs e)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine(e.UnhandledException.ToString());&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return UnhandledExceptionAction.Terminate;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;};&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;myInstance.OnAborted = delegate(WorkflowAbortedEventArgs e)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine(e.Reason);&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;syncEvent.Set();&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;};&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&amp;nbsp;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;myInstance.Run();&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;syncEvent.WaitOne();&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine(greeting);&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:8pt;mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;Console.ReadLine();&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span style="font-size:8pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span style="font-size:8pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="line-height:normal;margin:0cm 0cm 0pt;mso-add-space:auto;"&gt;&lt;span style="font-size:8pt;"&gt;}&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div align="justify"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div align="justify"&gt;Finalmente, el resultado de ejecuci&amp;oacute;n del workflow es el siguiente: &lt;/div&gt;
&lt;div align="center"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image_5F00_7CF39B0C.png"&gt;&lt;img height="123" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image_5F00_thumb_5F00_1EAF4DD1.png" alt="image" border="0" title="image" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;p align="justify"&gt;Y hasta aqu&amp;iacute; llega la tercera entrega sobre novedades en WF 4.0. Espero que el post os haya resultado interesante.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=154700" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/WF/default.aspx">WF</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/.NET+Framework+4.0/default.aspx">.NET Framework 4.0</category></item><item><title>Una primera mirada a WF 4.0 tras el PDC 2008!</title><link>http://geeks.ms/blogs/ciin/archive/2009/04/23/una-primera-mirada-a-wf-4-0-tras-el-pdc-2008.aspx</link><pubDate>Thu, 23 Apr 2009 21:54:51 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:147367</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ciin/rsscomments.aspx?PostID=147367</wfw:commentRss><comments>http://geeks.ms/blogs/ciin/archive/2009/04/23/una-primera-mirada-a-wf-4-0-tras-el-pdc-2008.aspx#comments</comments><description>&lt;p align="justify"&gt;Como muchos sabéis, con .NET Framework 4.0 vamos a tener una nueva versión de Windows Workflow Foundation (WF 4.0) que rompe radicalmente en lo que a arquitectura se refiere (el stack se ha re-hecho) y también en cuanto a como se diseñan los workflows…y como muestra os dejo una captura de pantalla del posible aspecto de este diseñador (digo posible, porque de momento solo lo he podido ver en videos):&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image_5F00_3867E7C9.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ciin/image_5F00_thumb_5F00_36774668.png" width="244" height="214" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Desde el PDC 2008 no había vuelto a ver ningún video sobre WF 4.0, pero por suerte tenemos un vídeo de WF 4.0 sobre una versión de Visual Studio 2010 más actualizada que la que yo tengo en la que &lt;a href="http://channel9.msdn.com/shows/10-4/10-4-Episode-16-Windows-Workflow-4/"&gt;Ron Jacobs nos hace una primera demo sobre WF 4.0&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=147367" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/WF/default.aspx">WF</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/.NET+Framework+4.0/default.aspx">.NET Framework 4.0</category></item><item><title>XAMLX &amp; XAML: Adiós a XOML!</title><link>http://geeks.ms/blogs/ciin/archive/2008/11/30/xamlx-amp-xaml-adi-243-s-a-xoml.aspx</link><pubDate>Sun, 30 Nov 2008 21:51:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:122731</guid><dc:creator>Juan Carlos González Martín</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ciin/rsscomments.aspx?PostID=122731</wfw:commentRss><comments>http://geeks.ms/blogs/ciin/archive/2008/11/30/xamlx-amp-xaml-adi-243-s-a-xoml.aspx#comments</comments><description>&lt;p&gt;Como sabéis, en el pasado &lt;a href="http://geeks.ms/blogs/ciin/archive/2008/10/27/pdc_2D00_2008comenzamos.aspx"&gt;&lt;font color="#009933"&gt;PDC 2008 en Los Ángeles&lt;/font&gt;&lt;/a&gt; se presentó la primera CTP de Visual Studio 2010 y de .NET Framework 4.0. Como parte de .NET Fx 4.0, tendremos una &lt;a href="http://geeks.ms/blogs/ciin/archive/2008/10/28/windows_2D00_workflow_2D00_foundation_2D00_40_2D00_caractersticas_2D00_y_2D00_aplicaciones_2D00_en_2D00_el_2D00_campo_2D00_de_2D00_la_2D00_ciencia.aspx"&gt;&lt;font color="#009933"&gt;nueva versión de Windows Workflow Foundation&lt;/font&gt;&lt;/a&gt; (4.0) que entre otras novedades, supondrá la despedida de la extensión XOML. en WF 4.0, cuando creemos workflows o actividades customizadas se generará un archivo &lt;a href="http://en.wikipedia.org/wiki/Extensible_Application_Markup_Language"&gt;&lt;font color="#009933"&gt;XAML&lt;/font&gt;&lt;/a&gt; (Extensible Application Markup Language) en lugar del tradicional archivo XOML. Además, con WF 4.0 y de acuerdo a la idea de que sea perfectamente complementario a Windows Communication Foundation (WCF), aparecerá también un nuevo tipo de archivo con extensión XAMLX que contendrá la declaración del servicio WCF y la implementación del servicio WF.&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://geeks.ms/photos/ciin/picture122730.aspx" target="_blank"&gt;&lt;img src="http://geeks.ms/photos/ciin/images/122730/original.aspx" border="0" alt="" /&gt;&lt;/a&gt;&amp;nbsp;
&lt;p&gt;Más información en el &lt;a href="http://wf.netfx3.com/blogs/wf_community_bloggers/archive/2008/11/11/goodbye-xoml-hello-xamlx.aspx"&gt;&lt;font color="#009933"&gt;blog de WF&lt;/font&gt;&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=122731" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ciin/archive/tags/WF/default.aspx">WF</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://geeks.ms/blogs/ciin/archive/tags/.NET+Framework+4.0/default.aspx">.NET Framework 4.0</category></item></channel></rss>