.NET工作流引擎

35

这是一个多部分的问题:

首先,您个人对Workflow有什么看法?

其次,是否还有其他好的基于.NET的工作流引擎?以下是我的使用情况:

  • 同时使用静态和动态工作流
  • 与Castle(Monorail 和 Windsor)集成
  • 利用MSMQ进行队列处理
  • 我们希望拥有一个简单、清晰、不庞然大物的框架。
  • 不需要GUI工作流程编辑,但如果有也无所谓。

我不在意工作流是在数据库中定义、在XML中定义还是在代码中定义,因为无论我们选择哪种方式进行定义,如果它没有被支持,我们都可以编写适配器。专有的(免费或收费)都可以,但开源更受欢迎。

4个回答

15

我曾经在一个处理350多种政府业务许可证的ASP.NET系统中成功地使用了http://codeplex.com/simplestatemachine

简单状态机是用Boo实现的,所以我们只需将定义暴露在文本文件中,系统管理员可以对其进行修改。在编辑器中,我们进行验证以确保编辑正确并且工作流程实际上是可用的。

今天我发现了这个https://github.com/nblumhardt/stateless,看起来很有意思。

我们转而使用了一个开源的替代方案,仅仅是因为我们使用Workflow的经验不好。


1
很有趣,谢谢。我们目前正在使用带有硬编码工作流的NSB Sagas,但是想法是从通用的“工作流saga”转移到更动态的东西。我需要看看这些如何适应。 - Luke Schafer

10

我不喜欢工作流以二进制格式存储在数据库中,这意味着你无法仅通过查看数据库来理解它。

版本支持非常弱。这意味着如果您更新工作流,确保任何在先前版本上运行的现有工作流程可以完成是一个真正的麻烦。您需要操作web.config并指定不同版本的.dll文件。

我尝试了几个工作流引擎。 WorkflowGen 很容易使用且功能强大。但最终我决定自己开发,因为我们只需要用于简单任务的工作流程,比如在提出采购订单和需要付款的发票时向供应商发送电子邮件。我还完全控制源代码,可以以此方式进行修改。


谢谢,这些是重要的要点。你有没有使用过其他工作流引擎的经验? - Luke Schafer
5
"WWF"是世界野生动物基金会的商标,受到积极保护。 Windows工作流基础(Windows Workflow Foundation)的缩写应为“WF”。请注意,这两个缩写含义不同,不可混淆。 - Richard
这件事一直让我很不爽,因为我还没有接受一个答案。虽然没有回答真正给了我一个可以使用的产品/项目,但我们决定根据这个建议和其他来源的建议自行开发。它运作得非常好,所以我认为Alex应该获得采纳。 - Luke Schafer
@Alex 给出的链接已经失效,请编辑您的答案并提供有效的链接。 - 4b0

5

那看起来确实不错。我已经不在那家公司工作了,但如果我还在的话,我可能会选择这个。 - Luke Schafer

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接