I'm working on the licensing component of a commercial product, and I'm trying to make sure all of our complicated licensing modes work seamlessly. I'm considering using a WWF state machine to keep track of the licensing state so we can be sure the software accurately follows the product licensing terms we state to our users. I've already run into several bugs in the licensing flow and it's absolutely unacceptable for this to continue.
First the obvious question: will WWF meet this need?
If so, should I:
- Create a state machine that starts from the initial state each time the app loads or
- Create a long-running state machine that persists the licensing state from the point of installation forward (even across application restarts)