Domanda

Mi sono imbattuto in stateless , un framework di macchine a stati gerarchico basato su Simple State Machine per Boo , ma configurato utilizzando C # 3.0

È facile da configurare e utilizzare, probabilmente lo userò presto.

Ma mi stavo solo chiedendo se

  • Chiunque ha utilizzato stateless per progetti reali (in caso affermativo qual è la tua opinione?)
  • Esistono altri buoni motori di flusso di lavoro per .NET? (diverso da WF)
È stato utile?

Soluzione

Sto usando Stateless e WF per un'app che dovrebbe andare in produzione un giorno. :) Finora ho dettagliato le mie esperienze sul mio post qui .

Nel complesso, preferisco Stateless perché è più semplice rispetto a WF. Certo, è bello poter progettare graficamente il flusso di lavoro, ma quando è necessario implementare qualcosa di più difficile di un flusso di lavoro sequenziale (come il flusso di lavoro della macchina a stati), è necessario lavorare con ExternalDataExchange solo per effettuare le giuste transizioni di stato. Probabilmente non è difficile, ma considerando questo e il fatto che è necessario implementare un servizio di persistenza per mettere in pausa un flusso di lavoro, mi è sembrato poco interessante. Non ho bisogno di persistere un flusso di lavoro su disco per successive esecuzioni in ogni caso ... quindi userò eventi regolari per gestire questo in Stateless. La gestione degli errori è facilmente realizzabile in Stateless (ci sono riuscito), ma l'implementazione che ho preso è discutibile, ed è l'argomento di un'altra discussione (che sto cercando ora su SO!). Potrei pubblicare una domanda al riguardo molto presto.

Buona fortuna con Stateless. Spero di sapere come stai andando avanti con esso.

Altri suggerimenti

Per Workflow Foundation, utilizzalo solo per progetti ecologici in modo da poter utilizzare WF4. Controllalo http://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011>.htm

WF 1.0 e 1.5 non sono compatibili con WF4. Quindi non è una soluzione avanzata.

Uso personalmente http://simplestatemachine.codeplex.com in alternativa a WF. L'ho usato in un sistema di produzione completo (basato su asp.net) per gestire un sistema di rilascio di licenze commerciali piuttosto complesso (che gestisce oltre 350 diverse licenze commerciali governative).

Non ho ancora provato gli apolidi ma sembra promettente.

In ritardo alla festa. Usiamo Stateless in produzione da oltre un anno e mezzo, nessun problema. È una soluzione molto elegante per l'elaborazione dei flussi di lavoro e si integrano rapidamente gli stati con il proprio modello di dati. Rappresentiamo i nostri stati con e int in SQL, quindi è possibile eseguire la macchina a stati in ASP.Net in corso. Questo vale anche per flussi di lavoro di lunga durata.

Se i tuoi requisiti sono di base, potrebbe interessarti un semplice StateMachine che ho scritto.

Si informa che al momento della stesura non supporta gli stati gerarchici.

Puoi trovarlo su NuGet:

nuget install nstate

o dai un'occhiata su GitHub:

https://github.com/benaston/NState

Spero che qualcuno lo trovi utile.

Se non hai guardato la Windows Workflow Foundation probabilmente vale la pena leggere qualcosa al riguardo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top