machine library c# .net workflow state-machines stateless

c# - library - Sugerencias para el motor de flujo de trabajo.NET



stateless github (5)

Me encontré stateless , un marco jerárquico de máquina de estado basado en Simple State Machine para Boo , pero configurado con C # 3.0

Es fácil de configurar y usar, probablemente lo use pronto.

Pero me preguntaba si

  • Cualquiera utilizado stateless para proyectos reales (en caso afirmativo, ¿cuál es su opinión?)
  • ¿Hay otros buenos motores de flujo de trabajo para .NET? (aparte de WF)

He estado usando Stateless y WF para una aplicación que está destinada a entrar en producción algún día. :) He detallado mis experiencias hasta ahora en mi post aquí .

En general, prefiero Stateless porque es más simple para más cosas que WF. Claro, es bueno poder diseñar gráficamente su flujo de trabajo, pero cuando necesite implementar algo más difícil que un flujo de trabajo secuencial (como el flujo de trabajo de la máquina de estado), deberá trabajar con ExternalDataExchange solo para hacer las transiciones de estado correctas. Probablemente no sea difícil, pero considerando eso y el hecho de que necesita implementar un servicio de persistencia para pausar un flujo de trabajo simplemente no me pareció atractivo. No tengo la necesidad de persistir un flujo de trabajo en el disco para una ejecución posterior de todos modos ... así que usaré eventos regulares para lidiar con esto en Stateless. El manejo de errores es fácil de hacer en Stateless (he tenido éxito con él), pero la implementación que he tomado es cuestionable, y es el tema de otra discusión (que estoy buscando ahora en SO!). Podría estar publicando una pregunta sobre esto muy pronto.

Buena suerte con Stateless. Espero escuchar como has estado progresando con eso.


Para Workflow Foundation, solo úselo para proyectos verdes para que pueda usar WF4. Mira esto en http://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011.htm

WF 1.0 y 1.5 no son compatibles con WF4. Así que no es una solución avanzada.

Personalmente uso http://simplestatemachine.codeplex.com como alternativa a WF. Lo he usado en un sistema de producción completo (basado en asp.net) para manejar un sistema de emisión de licencias comerciales bastante complejo (manejando más de 350 licencias comerciales diferentes del gobierno).

No he intentado sin estado todavía, pero parece prometedor.



Si sus requisitos son básicos, un StateMachine muy simple que escribí puede ser de interés.

Tenga en cuenta que no (en el momento de la escritura) admite estados jerárquicos.

Lo puedes encontrar en NuGet:

nuget install nstate

o échale un vistazo a GitHub:

https://github.com/benaston/NState

Espero que alguien lo encuentre útil.


Tarde a la fiesta. Hemos utilizado Stateless en la producción desde hace más de un año y medio, sin problemas. Es una solución muy elegante para procesar flujos de trabajo y usted integra rápidamente los estados con su modelo de datos. Representamos nuestros estados con e int en SQL, por lo que puede ejecutar la máquina de estados en ASP.Net en proceso. Esto es cierto también para los flujos de trabajo de larga ejecución.