Blog de Jorge Pedraza

noviembre 14, 2011

Usando WorkFlows desde ASP.NET 4.0

Filed under: Aplicaciones Web — JorgePedraza @ 6:03 am
Tags:

 

Hola la presente de este articulo es para resalta de forma general el tema de WorkFlow con un enfoque sobre aplicaciones Web de ASP.NET.

Índices:

  1. WorkFlow
  2. Estilos de Creación de WorkFlow.
  3. Elementos de un WorkFlow.
  4. Motor de tiempo de ejecución del WorkFlow
  5. Pasos básico para iniciar solución ASP.NET con WorkFlow
  6. Descripción Solución de Ejemplo Test WorkFlow ASP.NET
  7. Descripción Solución de Ejemplo Hosting WorkFlow in ASP.NET
  8. Códigos Fuentes.
  9. Puntos de Interés de WorkFlow para su estudio.
  10. En Resumen.
  11. Enlaces de Referencia

1. WorkFlow: Flujo de Trabajo

Un WorkFlow es un conjunto de unidades de trabajos elementales llamadas actividades que están almacenadas como un modelo que describe un proceso real. Los WorkFlow proporcionan una manera de describir el orden de ejecución y las relaciones de dependencia entre las partes de trabajo de ejecución corta o prolongada. Este trabajo pasa a través del modelo desde el principio hasta el final y las actividades pueden ser ejecutadas por personas o por funciones de sistema.

2. Estilos de Creación de WorkFlow

  • WorkFlow Secuencial: Este WorkFlow consta de un conjunto de actividades que se ejecuta de forma secuencial, uno por uno hasta que finalice la última actividad. También a dicho WorkFlow se puede agregar actividades compuesta por defecto o personalizada. Ejemplo de WorkFlow Secuencial:

  • WorkFlow Maquina de Estado: Este WorkFlow consta de un conjunto de Estados. Cada estado puede recibir un determinado conjunto de eventos. Basado en un evento, es posible una transición a otro Estado. El WorkFlow de máquina de Estado tiene un estado Inicial y puede tener un estado final. Cuando se realiza una transición al estado final, se completa el WorkFlow. Ejemplo de WorkFlow Maquina de Estado:

3. Elementos de un WorkFlow:

Elementos de WF 4 Descripción
Control Flow (Flujo de Control)
DoWhile Ejecuta una actividad contenida, mientras una condición es true.
ForEachT Recorre una lista y ejecuta un actividad contenida para cada elemento en la lista.
IF Ejecuta Actividades contenidas basado en una condición especificada.
Parallel Ejecuta Actividades contenidas en paralelo.
ParallelForEach Recorre una lista y ejecuta una actividad contenida en paralelo para cada elemento en la lista.
Pick Suministra un modelado de flujo de control basado en evento en un WorkFlow
PickBranch Rama en una actividad Pick
Sequence Un flujo de control que ejecuta actividades secuencialmente.
SwitchT

Ejecuta uno de sus hijos en función del resultado de una expresión

While Ejecuta una actividad contenida, mientras una condición es true.
Flowchart (Diagrama de Flujo)
FlowChart2 Permite modelado de procesos con una sola ruta de ejecución y bucles hacia los puntos previos de ejecuciones.
FlowDecision Rama condicional en un diagrama de flujo (Flowchart)
FlowSwitch Selecciona el próximo nodo in Diagrama de flujo (Flowchart) dependiendo sobre el valor de una expresión.
State Machine (Maquina de estado)
State Representa un estado en una maquina de estado.
StateMachine2 Permite modelado de procesos con un enfoque orientado a eventos
FinalState Representa un estado final una maquina de estado.
Messaging (Mensajería)
CorrelationScope Ejecuta un conjunto de actividades de mensajerías debajo de la misma correlación.
InitializeCorrelation Inicializa una nueva correlación.
Receive Recibe un mensaje Windows Communications Foundation (WCF).
ReceiveAndSendReply Recibe un mensaje Windows Communications Foundation (WCF) y envía una respuesta al remitente.
Send Envía un mensaje Windows Communications Foundation (WCF).
SendAndReceiveReply Envía un mensaje Windows Communications Foundation (WCF) y espera por un respuesta.
TransactedReceiveScope Envía un mensaje Windows Communications Foundation (WCF) con transacción y ejecuta actividades debajo de esa transacción.
Runtime (Tiempo de Ejecución)
Persist Guarda un WorkFlow.
TerminateWorkFlow Termina la ejecución de un WorkFlow
Primitives (Primitivos)
Assign Asigna un valor a una variable o argumento.
Delay Ejecuta un retardo para una cantidad especificada de tiempo.
InvokeMethod Invoca un método sobre un tipo o objeto CLR.
WriteLine Escribe texto a un TextWriter.
Transaction (Transacción)
CancellationScope Ejecuta una actividad contenida y permite proveer una lógica de cancelación.
CompensableActivity Defina una unidad de trabajo el cual puede ser compensada o confirmada en cualquier punto después de la finalización correcta.
Compensate Invoca el manejador de compensación de una actividad de compensación.
Confirm Invoca el manejador de confirmación de una actividad de compensación.
TransactionScope Ejecuta una actividad contenida debajo de una transacción.
Collection (Colección)
AddToCollectionT Agrega un elemento a una colección.
ClearCollectionT Limpia una colección.
ExistsInCollection Retorno true Sí un elemento existe en la colección.
RemoveFromCollectionT Remueve un elemento de una colección.
Error Handling (Control de Errores)
Rethrow Vuelve a producir una excepción en un Catch.
Throw Lanza una excepción en un WorkFlow.
TryCatch Proporciona manejos de errores en un WorkFlow.

4. Motor de tiempo de ejecución del WorkFlow:

  • Una clase WorkflowInvoker, que invoca el flujo de trabajo como si se tratara de un método.
  • Una clase WorkflowApplication para el control explícito de la ejecución de una única instancia de flujo de trabajo.Una
  • Una clase WorkflowServiceHost para las interacciones basadas en mensajes en escenarios de varias instancias.

Cada una de estas clases ajusta el tiempo de ejecución de la actividad principal, representado como una clase ActivityInstance responsable de la ejecución de la actividad. Puede haber varios objetos ActivityInstance ejecutándose simultáneamente dentro de un dominio de aplicación.

Los tres objetos de interacción de host anteriores se crean a partir de un árbol de actividades al que se hace referencia como programa de flujo de trabajo. Con estos tipos o con un host personalizado que ajuste la clase ActivityInstance, los flujos de trabajo se pueden ejecutar dentro de cualquier proceso de Windows, incluidos las aplicaciones de consola, las aplicaciones basadas en formularios, los Servicios de Windows, los Sitios web de ASP.NET y los servicios de Windows Communication Foundation (WCF).

5. Pasos básico para iniciar solución ASP.NET con WorkFlow :

1. Crear Proyecto ASP.NET Web Application 2. Agregar Nuevo elemento Activity de WorkFlow llamado ActivityAritmetica al proyecto ASP.NET 3. Diseñar y Desarrollar WorkFlow para dar operación aritmética a dos numero.
Paso1 Paso2 Paso3
     
4. Diseñar interfaz de usuario web en Default.aspx con entradas y salida de datos de ActivityAritmetica 5. Introducir Código en el botón igual, para invocar ActivityAritmetica con su parámetros de entrada y salida. 6. Compilar y probar la solución de ASP.NET.
Paso4 Paso5 Paso6
     

6. Descripción Solución de Ejemplo Test WorkFlow ASP.NET :

Se trata de la función Cifrado .NET llevada a la versión WorkFlow la cual es consumida desde Aplicación Web de ASP.NET

1. Diseño y Desarrollo WF 2. Generación 3. Consumo
WFCifradoNET WFCifradoNETDLL WFCifradoNETASPNET

7. Descripción Solución de Ejemplo Hosting WorkFlow in ASP.NET :

Se trata de una solución que involucra 3 proyectos (Actividad de Envió de Email, Servicio WCF para Envío de Email, Aplicación Web de ASP.NET). Esta solución tiene finalidad de Enviar Email desde Aplicación cliente (ASP.NET) a través de un series elementos Workflow enlazado como un servicio WCF y biblioteca de proceso. Aquí es importe paremetrizar correctamente (From, host, password, subject, to, UserName) de la actividad SendEmailActivity contenida en el WorkFlow del Servicio WCF de Envío de Email, para obtener resultado satisfactorio.

1. Actividad de Envío de Email 2. Servicio WCF de Envío de Email 3. Consumo de Servicio WCF Email
WFSendEmailActivityDesigner WFSendEmailService WFEnviarEmailASPNET

WFSendEmailActivityDesignerDLL

WFSendEmailServiceRun WFEnviarEmailASPNETrun

8. Códigos Fuentes:

9. Puntos de Interés de WorkFlow para su estudio:

  1. Diseñar e implementar actividades personalizadas.
  2. Modelo de datos de Windows Workflow Foundation.
  3. Esperar entrada en un flujo de trabajo.
  4. Excepciones, transacciones y compensación.
  5. Hospedar de WorkFlow.
  6. Servicios de WorkFlow.
  7. Persistencia del WorkFlow.
  8. Migrar WorkFlow.
  9. Seguimiento y traza del WorkFlow
  10. Seguridad del WorkFlow

10. En Resumen:

Windows Workflow Foundation (WF) genera el nivel de abstracción para desarrollar aplicaciones interactivas de ejecución prolongada. Las unidades de trabajo se encapsulan como actividades. Las actividades se ejecutan en un entorno que proporcione los medios para el control de flujo, el control de excepciones, la propagación de errores, la persistencia de los datos de estado, la carga y descarga de flujos de trabajo en progreso de la memoria, el seguimiento y el flujo de la transacción.

11. Enlaces de Referencia:

2 comentarios »

  1. Hi there I am so thrilled I found your weblog, I really found you by
    mistake, while I was researching on Askjeeve for something else, Nonetheless I am
    here now and would just like to say kudos for a tremendous post and a all round
    thrilling blog (I also love the theme/design), I don’t have time to read through it all at the moment but I have book-marked it and also added your RSS feeds, so when I have time I will be back to read more, Please do keep up the awesome job.

    Comentario por Website Hosting — agosto 7, 2013 @ 6:56 am | Responder


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: