miércoles, 30 de septiembre de 2009

Reglas en Workflow Foundation

Workflow Foundation es una tecnología que nos permite definir e implementar flujos de trabajo para nuestras aplicaciones de una manera sencilla y sin necesidad de escribir cuantiosas líneas de código, ya que esta tecnología encapsula en sí misma diversas funcionalidades necesarias para la ejecución y control de dichos flujos.
Para la implementación de estos flujos necesitamos implementar reglas que nos permitan tomar desiciones, es decir, actuar según sea el camino tomado.
Primero vamos a crear un nuevo proyecto, por lo que seleccionaremos:
File -
    New Project - 
           Sequential Workflow Console Application





Una vez que creamos el proyecto, arrastramos del toolbox la condición "IfElse". Por lo que nos quedará de la siguiente manera.





 Una vez añadida la condición, iremos al codigo (click derecho - View Code). En él crearemos una variable pública de tipo entero llamada edad. Luego debajo de InitializeComponent(); le asignaremos un valor (en este caso edad = 25).
Luego volveremos al diseño y configuraremos las reglas. La actividad IfElse requiere que le asignemos la condición que evaluará para determinar si es verdadera o falsa. Para hacer esto seleccionemos la actividad IfElseBranchActivity1 en el diseñador y asignemos la propiedad Condition en la ventana de propiedades (si la ventana de propiedades no es visible en este momento selecciónela del menú View->Properties Window). Si expandimos la lista desplegable de la propiedad Condition se nos presentan dos opciones: Code Condition y Declarative Rule Condition tal y como lo muestra la siguiente imágen.


 


La primera opción nos permite especificar el nombre de un método que deseemos que sirva como expresión condicional. Asimismo, la segunda opción nos permite definir una regla de manera declarativa que sirva como expresión condicional. 
Seleccionamos la segunda opción y tendremos dos nuevas opciones (Condition Name - Expression), en la siguiente imágen podemos verlo claramente.






Luego hacemos click en el botón "...", y aparecerá la siguiente ventana para crear las reglas:





Haremos click en New... , e iremos a una caja de dialogo que escribiremos lo siguiente:


 


Ahora bien, tenemos configurada la regla, pero tenemos que añadir alguna actividad a realizar según el camino que siga, por lo tanto vamos a añadir dos "Code" del toolbox arrastrandolos, como podemos ver en la siguiente imágen.





 Para finalizar vamos simplemente a codificar "codeActivity1" y "codeActivity2". Como en IfElseBranchActivity1 la regla es que sea mayor a 17 años, entonces si pasa por esta rama, es decir por "codeActivity1", pondremos que la persona es mayor de edad, mientras que si pasa por la otra será menor de edad.


Para ello haremos doble click sobre la actividad y escribiremos el siguiente código, en cada una de ellas:


     private void codeActivity1_ExecuteCode(object sender, EventArgs e)
     {
         Console.WriteLine("La persona es mayor de edad.");
         Console.ReadLine();
     }

     private void codeActivity2_ExecuteCode_1(object sender, EventArgs e)
     {
         Console.WriteLine("La persona es menor de edad.");
         Console.ReadLine();
     }  



Para finalizar corremos el programa, y teniendo en cuenta que la edad ingresada había sido 25, entonces vemos como se aplica la regla.
 

Para verificar que se cumple la regla, se puede cambiar la edad en el código ( edad = 15;), y veremos lo siguiente.





No hay comentarios:

Publicar un comentario