.NET Workflow Engine建议

Ley*_*eyu 20 .net c# workflow state-machine stateless-state-machine

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

它易于配置和使用,我很快就会使用它.

但我只是想知道是否

  • 任何人都使用无状态的实际项目(如果是的话你有什么看法?)
  • .NET还有其他好的工作流引擎吗?(WF除外)

Dav*_*ave 11

我一直在使用Stateless和WF作为一个打算在某天投入生产的应用程序.:)到目前为止,我已经详细介绍了我的帖子.

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

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


小智 5

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

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

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

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


Dav*_*ins 5

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


Ben*_*Ben 5

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

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

你可以在NuGet上找到它:

nuget install nstate
Run Code Online (Sandbox Code Playgroud)

或者在GitHub上查看:

https://github.com/benaston/NState

我希望有人发现它有用.