I came across stateless, a hierarchical state machine framework based on Simple State Machine for Boo, but configured using C# 3.0
It is easy to configure and use, I will probably use it soon.
But I was just wondering if
I've been using Stateless and WF for an app that is intended to go into production someday. :) I have detailed my experiences so far on my post here.
Overall, I prefer Stateless because it's simpler for more things that WF. Sure, it's nice to be able to design your workflow graphically, but when you need to implement something more difficult than a sequential workflow (like the state machine workflow), you'll need to work with ExternalDataExchange just to make the right state transitions. It's probably not hard, but considering that and the fact that you need to implement a persistence service to pause a workflow just seemed unappealing to me. I don't have a need to persist a workflow to disk for later execution anyway... so I will be using regular events to deal with this in Stateless. Error handling is easily doable in Stateless (I've been successful with it), but the implementation I've taken is questionable, and is the topic of another discussion (which I'm searching for now on SO!). I might be posting a question regarding this very soon.
Good luck with Stateless. I hope to hear how you've been progressing with it.
For Workflow Foundation, only use it for green project so you can use WF4. Check this out http://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011.htm
WF 1.0 and 1.5 are not compatible with WF4. So it's not a forward solution.
I personally use http://simplestatemachine.codeplex.com as an alternative to WF. I have used it in one full production system (asp.net based) to handle a pretty complex business license issuance system (handling 350+ different government business licenses).
I haven't tried stateless yet but it looks promising.
Late to the party. We've used Stateless in production now for over a year and a half, no issues. It is a very elegant solution for processing workflows and you quickly integrate the states with your data model. We represent our states with and int in SQL, so you can run the state machine in ASP.Net in process. This is true for long running workflows as well.
If your requirements are basic, a very simple StateMachine I wrote may be of interest.
Please be warned that it does not (at the time of writing) support hierarchical states.
You can find it on NuGet:
nuget install nstate
or check it out on GitHub:
https://github.com/benaston/NState
I hope someone finds it useful.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With