.Net堆栈中的
Windows Workflow有哪些替代方案?如果您已经使用了这些解决方案,那么您可以通过Windows Workflow选择它们,这是一个不错的选择.
更新:
我选择了Nicholas Blumhardt创造的stateless.这是一种非常简单的方法来对域中的状态进行建模.以下是google提供的示例代码:
var phoneCall = new StateMachine<State,Trigger>(State.OffHook); phoneCall.Configure(State.OffHook) .Allow(Trigger.CallDialed,State.Ringing); phoneCall.Configure(State.Ringing) .Allow(Trigger.HungUp,State.OffHook) .Allow(Trigger.CallConnected,State.Connected); phoneCall.Configure(State.Connected) .OnEntry(t => StartCallTimer()) .OnExit(t => StopCallTimer()) .Allow(Trigger.LeftMessage,State.OffHook) .Allow(Trigger.HungUp,State.OffHook) .Allow(Trigger.PlacedOnHold,State.OnHold); phoneCall.Configure(State.OnHold) .SubstateOf(State.Connected) .Allow(Trigger.TakenOffHold,State.Connected) .Allow(Trigger.HungUp,State.OffHook) .Allow(Trigger.PhoneHurledAgainstWall,State.PhoneDestroyed);
如您所见,状态机使用泛型来对状态及其各自的触发器进行建模.换句话说,您可以使用枚举,整数,字符串等来满足您的需求.状态机的每个状态都可以配置条件触发器,这些条件触发器将根据特定条件触发.
Windows Workflow Foundation在某些情况下,对我来说感觉像是一个过分的杀手.然后,实现自己的工作流引擎变得更加容易和简单.
样品参考:
> Simple State Machine project on CodePlex
> Stateless on Google Code