.NET 工作流引擎建议 [关闭]
-
06-07-2019 - |
解决方案
我一直在使用无状态和 WF 来开发一个打算在某天投入生产的应用程序。:) 我已经详细介绍了迄今为止的经历 在我的帖子上.
总的来说,我更喜欢无状态,因为它比 WF 更简单。当然,能够以图形方式设计工作流程是件好事,但是当您需要实现比顺序工作流程(例如状态机工作流程)更困难的事情时,您需要使用ExternalDataExchange来进行正确的状态转换。这可能并不难,但考虑到这一点以及您需要实现持久性服务来暂停工作流程的事实对我来说似乎没有吸引力。无论如何,我不需要将工作流程保存到磁盘以供以后执行......所以我将在无状态中使用常规事件来处理这个问题。错误处理在无状态中很容易实现(我已经成功地做到了),但是我所采取的实现是有问题的,并且是另一个讨论的主题(我现在正在寻找SO!)。我可能很快就会发布有关此问题的问题。
祝无状态好运。我希望听到您的进展情况。
其他提示
对于Workflow Foundation,仅将其用于绿色项目,因此您可以使用WF4。看一下这个http://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011.htm
WF 1.0 和 1.5 与 WF4 不兼容。所以这不是一个前瞻性的解决方案。
我个人使用 http://simplestatemachine.codeplex.com 作为 WF 的替代品。我已在一个完整的生产系统(基于 asp.net)中使用它来处理相当复杂的营业执照颁发系统(处理 350 多个不同的政府营业执照)。
我还没有尝试过无状态,但它看起来很有希望。
聚会迟到了。我们在生产中使用无状态已经一年半多了,没有出现任何问题。这是一个非常优雅的处理工作流程的解决方案,您可以快速将状态与数据模型集成。我们在 SQL 中用 和 int 表示我们的状态,因此您可以在 ASP.Net 进程中运行状态机。对于长时间运行的工作流程也是如此。
如果您的要求很基本,我编写的一个非常简单的 StateMachine 可能会感兴趣。
请注意,它(在撰写本文时)不支持分层状态。
您可以在 NuGet 上找到它:
nuget install nstate
或者在 GitHub 上查看:
https://github.com/benaston/NState
我希望有人觉得它有用。
如果您还没有看过 Windows 工作流基础 也许至少值得花点时间阅读一下。