基于ASP.NET的工作流引擎

时间:2008-11-24 22:38:51

标签: asp.net workflow

我正在研究一个新应用程序的设计规范,该应用程序将大量工作流程驱动。

在重新发明轮子之前,是否有一个体面的轻量级工作流引擎可以插入到ASP.NET中?

基本上,我正在寻找能够在处理状态管理时自动处理定义的工作流页面集的内容。

如果还没有,我肯定会尝试从我的应用程序中抽象引擎并将其放在codeplex上,因为它非常方便。

有什么建议吗?

注意:.NET 2.0,所以没有WWF,尽管我认为WWF对我的需求来说太过分了。

编辑:似乎有合理的需要,而且那里没有产品......所以我可能会建立这个。

以下是我的想法:

  • 名为WebFlowPage的自定义页面类
  • 所有WebFlowPage都在工作流程映射器中注册。
  • 每个WebFlowPage都有某种形式的状态对象。
  • HttpHandler处理根据工作流选择适当的WebFlowPage,并从状态对象填充它。

9 个答案:

答案 0 :(得分:2)

工作流是动态的还是静态的?

如果工作流程很简单,您可以滚动自己的工作流程引擎。 在某些情况下,它可以相当简单,只需要几个数据表来处理规则,处理和状态。

许多工作流引擎都是为大规模处理(例如信用卡应用程序)而构建的。对于小规模,你至少应该考虑自己的,这将消除引擎的开销和依赖性。

答案 1 :(得分:2)

不确定您希望在此处做什么,但Ra-Ajax至少可以轻松保持状态,如果您希望解决方案被解决...

出于参考目的,您可能想要查看Ajax Calendar sample甚至是(平庸地实施的)Ajax Wizard sample。它确实胜过用JavaScript做的事情......

每当你“做某事”时,你就会进入“服务器之地”,这意味着你可以随时存储临时数据......

该项目是LGPL

(PS! 是的,我确实使用它了)

答案 2 :(得分:2)

构建自定义工作流引擎并非易事,尽管最初可能看起来很简单。我们试过了。这很大程度上取决于您需要覆盖的逻辑的复杂性。

鉴于Windows Workflow Foundation的当前状态以及缺少另一个抽象工作流概念的框架,如果您需要复杂的逻辑,异步处理或工作流中的分支,我会选择WF。

通过工作流跟踪您的状态可以通过携带某种xml有效负载或将状态存储在数据库中来实现,

如果您的工作流实际上是一组需要由用户填写的连续表单,则可以使用一些简单的自定义解决方案来跟踪步骤并引导用户进行下一步。

答案 3 :(得分:2)

您也可以查看InRule引擎。 此外,还有nxBRE

这些也主要用于业务规则。 InRule是专有的,而nxBRE支持RuleML(事实上的标准)。

您可能需要为页面制作自己的实现,并将规则引擎用作“结构”。

目前,我知道Sharepoint 2007支持页面工作流程(使用WF),但这意味着使用.NET Framework 3和deployng sharepoint。

我的建议是使用你发现更轻,更容易使用的任何东西。

答案 4 :(得分:2)

我认为“工作流程”一词对解释非常开放。我最近一直在使用一种与您似乎描述的工作流程非常不同的工作流程。 Mine是基于状态机的工作流,其中特定记录的状态确定用户可以采取什么操作来将记录移动到业务流程的下一步骤。因此,此实例中的“工作流程”表示记录如何从一个状态流向另一个状态,直到最终完成为止。

您对工作流程的使用似乎更多地涉及在线性多步骤过程中将用户从一个页面移动到另一个页面,这是一个完全不同的用例(如果我错了,请纠正我)。因此,在提出任何人都可以使用的通用“工作流程”引擎之前,我建议更准确地定义一下这个系统将处理的具体类型的情况。

答案 5 :(得分:1)

浏览网页以获取某些工作流程& BPM资源,我找到了以下项目:NetBPM。不幸的是,该项目似乎已停止。

答案 6 :(得分:1)

我已经使用了几个月http://objectflow.codeplex.com。不是特定的,但它可能符合您的需求

答案 7 :(得分:0)

我认为没有一个工作流引擎会自动为您处理状态,但如果您正在浏览一组网页,例如电子商务网站上的结帐等过程,那么ASP.NET向导控件可能会帮帮你?

答案 8 :(得分:0)

工作流程选项很少。 “Aspose”和“Skelta”是我正在评估的优惠。

法比奥