Pregunta

Me encontré con stateless , un marco jerárquico de máquinas de estado basado en Máquina de estado simple para Boo , pero configurado usando C # 3.0

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

Pero me preguntaba si

  • Cualquiera usó sin estado para proyectos reales (si es así, ¿cuál es su opinión?)
  • ¿Hay algún otro buen motor de flujo de trabajo para .NET? (que no sea WF)
¿Fue útil?

Solución

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 publicación aquí .

En general, prefiero Stateless porque es más simple para más cosas que WF. Claro, es bueno poder diseñar su flujo de trabajo gráficamente, pero cuando necesita 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 realizar las transiciones de estado correctas. Probablemente no sea difícil, pero considerar eso y el hecho de que necesita implementar un servicio de persistencia para pausar un flujo de trabajo me pareció poco atractivo. No necesito persistir un flujo de trabajo en el disco para una ejecución posterior de todos modos ... así que usaré eventos regulares para tratar esto en Stateless. El manejo de errores es fácilmente factible 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 los apátridas. Espero saber cómo has estado progresando con eso.

Otros consejos

Para Workflow Foundation, úselo solo para proyectos ecológicos para poder usar WF4. Mira esto http://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011.htm

WF 1.0 y 1.5 no son compatibles con WF4. Por lo tanto, no es una solución avanzada.

Yo personalmente uso http://simplestatemachine.codeplex.com como una 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 gubernamentales diferentes).

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

Tarde a la fiesta. Hemos usado Stateless en producción ahora durante más de un año y medio, sin problemas. Es una solución muy elegante para procesar flujos de trabajo e 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 estado en ASP.Net en proceso. Esto también es cierto para los flujos de trabajo de larga duración.

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

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

Puede encontrarlo en NuGet:

nuget install nstate

o échale un vistazo en GitHub:

https://github.com/benaston/NState

Espero que alguien lo encuentre útil.

Si no ha mirado la Windows Workflow Foundation probablemente al menos valga la pena leer un poco al respecto.

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