This Blog

Syndication

Search

Tags

Community

Email Notifications

Archives

Enlaces Recomendados

VS 2010 & .NET Fx 4.0: Novedades en WF 4.0 (II)!

Después del primer post introductorio sobre algunas de las novedades de WF 4.0, en el que nos quedábamos con la copla de que por defecto los workflows de WF 4.0 son de tipo declarativo, es decir, están completamente definidos e implementados en XAML, en este segundo post vamos a seguir viendo alguna de las novedades de WF 4.0. En concreto, vamos a ver como el soporte de para workflows code only es una alternativa que tenemos disponible frente a la de los workflows declarativos. Empecemos.

Sobre actividades en WF 4.0

Antes de empezar a hablar de crear workflows mediante código, vamos a ver cuales son las novedades en lo que a actividades de workflow se refiere:

  • Básicamente, y como ya os comenté en el post previo, .NET Fx 4.0 trae de serie un conjunto de nuevas actividades que constituyen la nueva Base Activity Library. Pero además, tendremos actividades especificas para SharePoint, Dynamics CRM, etc. La idea de Microsoft es ir liberando nuevas actividades en Codeplex para ir ampliando el espectro de posibilidades de creación de workflows en plataforma .NET.
  • Una de las nuevas actividades, que realmente es un nuevo tipo de workflow (aunque ya sabéis que realmente un workflow es en sí mismo una actividad), más destacables y novedosas es la actividad FlowChart que en esencia es un workflow de tipo secuencial pero que permite la vuelta a etapas previas en la ejecución del workflow.
  • NET Fx 4.0 re-factoriza el modelo de programación para crear actividades personalizadas:P
    • Para crear actividades desde cero, heredaremos de WorkflowElement.
    • Para crear actividades a partir de otras actividades, heredaremos de Activity.
image image image

 

 

Os podría contar más novedades sobre actividades en WF 4.0, pero esto lo dejaremos para otra ocasión. Ahora pasemos a ver como implementamos un workflow en código en WF 4.0

Implementando un workflow mediante código en WF 4.0

Para crear un workflow de WF 4.0 con código:

  • Añadimos a nuestro proyecto de workflow un archivo de tipo class file. Como veis, la ventana de añadir un nuevo elemento al proyecto actual también sigue la filosofía de la pantalla de creación de proyecto de VS 2010.
image

 

  • Añadimos el siguiente código a nuestra clase:

//Namspaces needed

 

using System.Activities;  

using System.Activities.Statements;  

namespace HelloWorld  

 

    class SayHelloInCode: Activity  

   

        protected override WorkflowElement  CreateBody()  

         

            return new Sequence() 

           

                Activities =  

               

                    new WriteLine()  

                     

                        Text="Hello World from WF 4.0 Code"  

                     

               

            };  

         

   

 

Básicamente, lo que estamos haciendo es lo siguiente:

  • Como vamos a crear un workflow en el que utilizaremos una actividad existente, nuestra clase tiene que heredar de Activity.
  • A continuación sobreescribimos el método CreateBody() de WorkflowElement (que es la clase base de cualquier actividad de WF 4.0).
  • CreateBody nos devuelve una actividad de tipo Sequence que es la contenedora de nuestra actividad WriteLine a través de su propiedad Activities.
  • A continuación simplemente configuramos la propiedad Text de la actividad Writeline y listo.

Para poder probar el nuevo workfow, no tenemos más que modificar el archivo Program.cs de nuestro proyecto para crear una instancia de este workflow  y lanzar su ejecución:

 …  

            WorkflowInstance myInstance = new WorkflowInstance(new SayHelloInCode());  

Finalmente, comprobamos que nuestro workflow funciona:

image  

Cool! Sin duda, WF 4.0 nos da unos niveles de flexibilidad excelentes ya que podemos crear workflows declarativos o codificados según que alternativa nos resulte más cómoda, productiva, etc. Y hasta aquí llega este segundo post sobre WF 4.0. Espero que os haya resultado interesante.

Published 2/6/2009 22:37 por Juan Carlos González Martín

Comparte este post: