with tutorial para framework español djangoproject con applications asp.net workflow

asp.net - para - tutorial django



¿Alternativas a Windows Workflow Foundation? (9)

¿Tiene la opción de considerar BizTalk Server?

He estado usando WWF durante un tiempo como parte de una aplicación interna de call center (ASP.NET), y aunque aprendí que era una buena práctica para entender cómo debería funcionar un sistema de flujo de trabajo basado en máquinas de estado, definitivamente no estoy enamorado de WWF en sí. En mi opinión lo es:

  1. Es demasiado complejo, especialmente para su uso dentro de aplicaciones web (todo ese material de tiempo de ejecución con subprocesos)
  2. Inmaduro (¿alguna vez trabajó con ese diseñador horrible?)
  3. Anemic en su conjunto de características actual

¿Alguien tiene una sugerencia para un mejor marco de flujo de trabajo basado en .NET? Específicamente, estoy buscando las siguientes características:

  1. Estado basado en máquina (mapeo de estados a acciones disponibles)
  2. Un enfoque en los permisos de usuario (controlar quién tiene acceso a qué acciones)
  3. La capacidad de ejecutar flujos de trabajo como tareas de segundo tiempo (por ejemplo, para enviar recordatorios de artículos que han estado en un estado determinado durante x días)

Eso es todo lo que necesito. No necesito poder "arrastrar y soltar" ninguna actividad ni diseñar visualmente el flujo. Me siento perfectamente cómodo escribiendo código real una vez que se desencadena una acción en particular.


Puedes probar Simple State Machine . Tendría que implementar control de acceso y temporizadores de fondo usted mismo, pero eso no debería ser un gran problema. SSM también se construyó por frustración con WF. También hay algunas otras implementaciones de máquina de estado en Codeplex . Si uno de ellos no se ajusta a la factura de la caja, son de código abierto y deben acercarse lo suficiente.

De todo corazón estoy de acuerdo con usted acerca de las máquinas de estado en WF: no son verificables, son demasiado complicadas, el modelo de subprocesamiento es peculiar y difícil de seguir, y no estoy seguro de que un diseñador visual podría haber sido más mal concebido para diseñar máquinas de estado gráficamente. Creo que esto puede deberse a que el concepto de máquina de estado se siente adherido al tiempo de ejecución de WF, que fue diseñado para máquinas de estado secuenciales, algo con lo que WF hace un mejor trabajo, en mi opinión. El problema es que las máquinas de estado no son realmente el mismo animal que un flujo de trabajo secuencial, y deberían haber tenido una implementación propia de primera clase, porque la deformación de WF para hacer que pareciera apoyarlas resultó ser más o menos insoportable, si no realmente inutilizable.


Prueba Drools.NET



Me mantendría alejado de Drools.Net ya que el último compromiso de SVN fue en septiembre de 2007. Se ve bien, pero parece demasiado arriesgado hacer que una biblioteca tan grande forme parte de tu proyecto cuando ya sabes que ya no recibe ninguna atención.



Pruebe WF4.5. Fue completamente rediseñado desde .NET4.0.


Echa un vistazo a Workflow Engine . Es un marco de flujo de trabajo liviano para soluciones .NET y Java. Tiene un diseñador visual HTML5, control de versiones, una interfaz de usuario decente y admite una amplia gama de bases de datos.


En primer lugar, debe buscar un motor que soporte BPMN. BPMN es un estándar en Workflow y gestión de procesos y está bien soportado por muchos proyectos. En segundo lugar, debe pensar en los requisitos para un motor así. Cuando busca un motor BPMN, hay dos enfoques diferentes:

Tarea orientada

Estos motores (por ejemplo, JBoss BPM - jbpm ) están diseñados para procesar datos de entrada mediante un modelo de proceso bien definido. Cada tarea en el modelo le otorga el control a una pieza de código, ya sea una implementación estándar o individual. El proceso finaliza cuando el token de proceso alcanza el final del modelo de proceso (Evento final). Este tipo de procesamiento lleva milisegundos. El motor se puede utilizar para trabajos por lotes o procesar datos con un flujo orientado al proceso complejo.

Evento conducido

Los motores de flujo de trabajo centrados en el ser humano son impulsados ​​por eventos (por ejemplo, Imixs-Workflow ). Este es un tipo de máquina de estado pero ofrece típicamente mucha más funcionalidad. Puede iniciar una nueva instancia de proceso asignando su objeto comercial con la tarea inicial (definida por el evento de inicio). El motor de flujo de trabajo le permite activar eventos asignados a cada tarea, definidos en su modelo. Cada evento (Intermedio CatchEvent) activa el motor de flujo de trabajo para transferir la instancia de proceso en ejecución a la siguiente tarea (estado). Hasta que no se desencadene ningún evento nuevo, la instancia de proceso ''espera'' en la tarea actual (estado). Un proceso de aprobación es un ejemplo típico para este tipo de flujo de trabajo centrado en el ser humano.

Puede encontrar una lista de motores aquí .