2008-11-24 17 views
6

Estoy trabajando en una especificación de diseño para una nueva aplicación que se basará en gran medida en el flujo de trabajo.Motor de flujo de trabajo basado en ASP.NET

Antes de reinventar la rueda, ¿hay un motor de flujo de trabajo liviano y decente que se enchufa en ASP.NET?

Básicamente, estoy buscando algo que maneje moverse a través de un conjunto definido de páginas de flujo de trabajo mientras maneja la gestión de estado automáticamente.

Si esto no se soluciona, definitivamente intentaré abstraer el motor de mi aplicación y ponerlo en codeplex, ya que sería muy útil.

¿Alguna sugerencia?

Nota: .NET 2.0, por lo que no WWF, aunque creo que WWF es excesivo para mis necesidades.

EDITAR: Parece que hay una necesidad legítima para esto, y no hay un producto por ahí ... Así que podría construir esto.

Aquí es lo que estoy imaginando:

  • clase de página personalizado llamado WebFlowPage
  • Todos WebFlowPage de están registrados en un asignador de flujo de trabajo.
  • Cada WebFlowPage tiene alguna forma de objeto de estado.
  • A HttpHandler maneja la selección del WebFlowPage apropiado en función del flujo de trabajo, y rellenándolo desde el objeto de estado.
+1

hmm ... si estuviéramos empezando ahora, habríamos lanzado nuestro motor y habríamos ido por wwf ... si hubieras configurado la casilla de verificación de copia local, podrías obtener el necesitaba 3,5 dlls y se ejecuta en 2.0. lo siento por offtopic – badbadboy

Respuesta

0

No creo que haya un motor de flujo de trabajo que maneje automáticamente el estado, pero si se mueve a través de un conjunto de páginas como un proceso de pago en un sitio de comercio electrónico, quizás el ASP.NET ¿El control del asistente puede ayudarte?

2

¿El flujo de trabajo es dinámico o estático?

Si los flujos de trabajo son simples, puede hacer funcionar su propio motor de flujo de trabajo. En ciertas situaciones, puede ser bastante simple, y solo un par de tablas de datos para manejar las reglas, el procesamiento y el estado.

Muchos de los motores de flujo de trabajo están diseñados para el procesamiento a gran escala (aplicaciones de tarjetas de crédito, por ejemplo). Para pequeña escala, al menos debería considerar la suya, lo que eliminaría la sobrecarga y la dependencia de/en un motor.

2
No

seguro exactamente lo que desea hacer aquí, pero Ra-Ajax puede mantener fácilmente el estado al menos si quiere que su solución Ajaxified ...

Para fines de referencia es posible que desee revisar la Ajax Calendar sample o incluso el (implementado banalísticamente) Ajax Wizard sample. Seguro que es mejor que hacerlo con JavaScript ...

Y cada vez que "haces algo" estás en "server-land", lo que significa que puedes almacenar temporarios todo el tiempo que desees ...

El proyecto es LGPL

(PS! Sí, sí trabajo con él)

+0

Gracias Thomas, pero eso no es exactamente lo que tenía en mente. Buena suerte con los litigios legales con su producto. Se ve genial, es una pena por Gaia. – FlySwat

2

Crear un motor de flujo de trabajo personalizado no es trivial, aunque puede parecer simple al principio. Hemos intentado eso. Depende mucho de la complejidad de la lógica que necesita que cubra.

Dado el estado actual de Windows Workflow Foundation y la falta de otro marco que abstraiga los conceptos de flujo de trabajo, elegiría WF si necesita lógica compleja, manejo asincrónico o ramas en sus flujos de trabajo.

El seguimiento de su estado a través del flujo de trabajo se puede lograr mediante la realización de algún tipo de carga XML o almacenar el estado de una base de datos,

Si el flujo de trabajo es en realidad de un juego de formularios que deben ser llenados por el usuario, siguiendo los pasos y guiando al usuario al próximo paso se puede lograr con alguna solución personalizada simple.

1

Al navegar en la web por algún flujo de trabajo & recursos de BPM, encontré el siguiente proyecto: NetBPM. Lamentablemente, el proyecto parece detenido.

2

Puede echar un vistazo al motor InRule también. Además, existe nxBRE.

Estos también se utilizan principalmente para reglas comerciales. InRule es propiedad, mientras que nxBRE admite RuleML (el estándar de facto).

Es posible que deba realizar su propia implementación para las páginas y usar el motor de reglas como la "estructura".

En este momento, sé que Sharepoint 2007 admite flujos de trabajo de página (usando WF), pero esto implicaría utilizar .NET Framework 3 y deployng sharepoint.

Mi sugerencia sería utilizar lo que sea que encuentre más ligero y fácil de usar.

2

Creo que el término "flujo de trabajo" está muy abierto a la interpretación. He estado trabajando últimamente con un tipo de flujo de trabajo que es muy diferente de lo que parece estar describiendo. El mío es un flujo de trabajo basado en máquinas de estado donde el estado de un registro particular determina qué acciones puede realizar un usuario para mover el registro al siguiente paso en el proceso comercial. Entonces, "flujo de trabajo" en esta instancia significa cómo el registro fluye de un estado a otro hasta que finalmente se completa.

Su uso del flujo de trabajo parece tener más que ver con mover un usuario de una página a otra en un proceso lineal de varios pasos, que es un caso de uso completamente diferente (corríjanme si me equivoco). Entonces, antes de proponer un motor de "flujo de trabajo" de uso general que cualquiera pueda usar, recomendaría definir un poco mejor exactamente qué tipos de situaciones manejaría este sistema.

0

Hay pocas opciones de flujo de trabajo. "Aspose" y "Skelta" son las ofertas que estoy evaluando.

Fábio

Cuestiones relacionadas