.NET Workflow Engine建议

时间:2009-10-27 14:53:54

标签: c# .net workflow state-machine stateless

我遇到stateless,这是一个基于Simple State Machine Boo的分层状态机框架,但使用C#3.0进行配置

配置和使用都很简单,我很快就会使用它。

但我只是想知道是否

  • 任何人都使用stateless进行实际项目(如果有,您的意见是什么?)
  • .NET还有其他好的工作流引擎吗? (WF除外)

5 个答案:

答案 0 :(得分:11)

我一直在使用Stateless和WF作为有朝一日投入生产的应用程序。 :)到目前为止,我详细介绍了我的经历on my post here

总的来说,我更喜欢无国籍,因为WF更多的东西更简单。当然,能够以图形方式设计工作流程是很好的,但是当您需要实现比顺序工作流程更困难的事情(比如状态机工作流程)时,您需要使用ExternalDataExchange才能进行正确的状态转换。这可能并不难,但考虑到这一点以及您需要实现持久性服务来暂停工作流这一事实对我来说似乎没什么吸引力。我不需要将工作流持久化到磁盘以供以后执行...所以我将使用常规事件来处理无状态。错误处理在Stateless中很容易实现(我已成功使用它),但我所采用的实现是有问题的,并且是另一个讨论的主题(我现在正在搜索SO!)。我可能会很快就这个问题发表一个问题。

祝福无国籍。我希望听听你是如何取得进展的。

答案 1 :(得分:5)

对于Workflow Foundation,仅将其用于绿色项目,以便您可以使用WF4。看一下这个 http://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011.htm

WF 1.0和1.5与WF4不兼容。所以这不是一个前瞻性的解决方案。

我个人使用http://simplestatemachine.codeplex.com作为WF的替代方案。我在一个完整的生产系统(基于asp.net)中使用它来处理相当复杂的营业执照发放系统(处理350多种不同的政府营业执照)。

我还没有尝试过无国籍,但看起来很有希望。

答案 2 :(得分:5)

晚会。我们现在已经使用Stateless进行了超过一年半的生产,没有任何问题。它是处理工作流程的非常优雅的解决方案,您可以快速将状态与数据模型集成。我们用SQL表示我们的状态和int,所以你可以在ASP.Net中运行状态机。对于长时间运行的工作流程也是如此。

答案 3 :(得分:5)

如果您的要求是基本的,我写的一个非常简单的StateMachine可能会引起关注。

请注意,它(在撰写本文时)不支持分层状态。

你可以在NuGet上找到它:

nuget install nstate

或在GitHub上查看:

https://github.com/benaston/NState

我希望有人觉得它很有用。

答案 4 :(得分:2)

如果你还没有看过Windows Workflow Foundation它可能至少值得一些关于它的阅读。