Supongo que mucho ya lo habréis notado pero en este blog no solamente escribo de Windows Mobile y Compact Framework, últimamente vengo también escribiendo de Windows Workflow Foundation, la verdad es que desde que probé las primeras betas de WF me he ‘enamorado’, no solamente por todo lo que nos ofrece de nuevo sino por lo bien que está construido el model, esto claro está es una opinión personal. Ya son varios los cursos que he impartido sobre WF y alguna que otra charla en Eventos de Microsoft como en el Code Camp hablando del modelo de extensibilidad de los diseñadores de Workflow o en Open Day 2006 sobre ‘internals’ del servicio de persistencia en Workflow Foundation.
Otro de los servicios ofrecidos por la capa de Runtime es el servicio o motor de ‘reglas’, en un principio parece algo sencillo de ver… pero como en casi todo lo que trae Workflow Foundation es una verdadera gozada meterse dentro. Son varios los modelos de cambio y validación que tenemos, delegándolos en el motor, basando la validación y revaluación en atributos… de forma explícita con Update y Halt…. Bueno esto daría para muchos y muchos Post pero no se cuanto de interesados estáis en estos temas o sea que me voy a hacer de rogar y dejar que me pidáis más info… J.
Como ejemplo de lo que nos ofrecen las reglas de WF os adjunto una pequeñita aplicación que usa las regas de WF para validar objetos, que no tienen que ser precisamente Workflows, sí, habéis oído bien, las reglas no solamente sirven para workflows. En este ejemplo se usa el editor de reglas de Windows Worflow, este editor al igual que muchas otras partes de WF es un PlugIn que podemos usar en nuestras aplicaciones. Como veréis es un ejemplo sencillo lo único que se pretende es ver como poder validar y ejecutar una regla para un objeto Persona, el cual dispone de una propiedad booleana MayorDeEdad y una propiedad Edad, podremos crear por lo tanto una regla tipo SI Edad > 18 Entonces MayorEdad=verdadero SINO MayorEdad=falso y proceder a validarla y ejecutarla y ver como dependiendo de la edad la propiedad MayorEdad ser establece de forma correcta.
La aplicación guarda automáticamente las reglas en un archivo .rules para poder cargarlas posteriormente y ejecutarlas sobre el objeto Persona….
Un par de imágenes para verlo mejor
Espero que os guste y si queréis saber más, preguntar J ¡!!!!
Unai Zorrilla Castro