任何人都可以推荐Windows Workflow的.Net开源替代品吗?

时间:2009-05-31 21:42:01

标签: .net open-source workflow-foundation

.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);

如您所见,状态机使用泛型来建模状态及其各自的触发器。换句话说,您可以使用枚举,整数,字符串等来满足您的需求。可以使用条件触发器配置状态机的每个状态,该触发器将根据特定条件触发。

1 个答案:

答案 0 :(得分:9)

在某些情况下,Windows Workflow Foundation对我来说感觉像矫枉过正 。然后,实现自己的工作流引擎更容易,更简单。

示例参考: