Pregunta

He estado usando WWF por un tiempo como parte de una aplicación de centro de llamadas interna (ASP.NET) y, mientras aprendía, fue una buena práctica para comprender cómo funciona un sistema de flujo de trabajo basado en una máquina de estados. debería trabajo, definitivamente no estoy enamorado del WWF en sí.En mi opinión lo es:

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

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

  1. Basado en máquina de estados (asignación 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 en segundo plano cronometradas (por ejemplo, para enviar recordatorios de elementos que han estado en un estado determinado durante x días)

Eso es realmente 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 activa una acción en particular.

¿Fue útil?

Solución

Tu podrías intentar Máquina de estados simples.Tendría que implementar control de acceso y temporizadores en segundo plano usted mismo, pero eso no debería ser gran cosa.SSM también se creó a partir de la frustración con WF. Hay algunas otras implementaciones de máquinas de estado en Codeplex también.Si uno de ellos no se ajusta a lo que cuesta, son de código abierto y deberían acercarlo lo suficiente.

Estoy totalmente de acuerdo con usted acerca de las máquinas de estados en WF: no se pueden probar, son demasiado complicadas, el modelo de subprocesamiento es peculiar y difícil de seguir, y no estoy seguro de que un diseñador visual pudiera haber sido peor concebido para diseñar máquinas de estados. gráficamente.Creo que esto puede deberse a que el concepto de máquina de estados se siente incorporado al tiempo de ejecución de WF, que fue diseñado para máquinas de estados secuenciales, algo con lo que WF hace un trabajo mucho mejor, en mi opinión.El problema es que las máquinas de estados en realidad no son el mismo animal que un flujo de trabajo secuencial, y se les debería haber dado una implementación propia de primera clase, porque la deformación de WF para que pareciera que las respalda resultó ser más o menos insoportable, si no realmente inutilizable.

Otros consejos

Me mantendría alejado de Drools.Net ya que su última confirmación SVN fue en septiembre de 2007.Se ve bien, pero parece demasiado arriesgado hacer que una biblioteca tan grande forme parte de su proyecto cuando sabe que ya no recibe atención.

Pruebe Drools.NET

Mira esto Motor de flujo de trabajo.Es un marco 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.

¿Tiene la opción de considerar BizTalk Server?

Disfruté bastante trabajando con Oracle BPEL Process Manager.Es parte de JDeveloper.

http://www.oracle.com/technology/bpel/index.html http://gemsres.com/story/dec06/313602/jellema-fig1.jpg

Quizás quieras echarle un vistazo a Jazz: http://jazz.codeplex.com/

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

En primer lugar deberías buscar un motor que soporte BPMN.BPMN es un estándar en la gestión de procesos y flujos de trabajo y está bien respaldado por muchos proyectos.En segundo lugar, deberías pensar en los requisitos que debe cumplir un motor.Cuando busca un motor BPMN, existen dos enfoques diferentes:

Orientado a tareas

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

Evento conducido

Los motores de flujo de trabajo centrados en las personas están controlados por eventos (p. ej. Flujo de trabajo Imixs).Se trata de una especie de máquina de estados, pero normalmente ofrece mucha más funcionalidad.Puede iniciar una nueva instancia de proceso asignando a su objeto comercial 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 (Intermediate CatchEvent) activa el motor de flujo de trabajo para transferir la instancia del proceso en ejecución a la siguiente tarea (estado).Hasta que no se active ningún nuevo evento, la instancia de proceso 'espera' en la tarea (estado) actual.Un proceso de aprobación es un ejemplo típico de este tipo de flujo de trabajo centrado en las personas.

Puedes encontrar una lista de motores. aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top