基于ASP.NET的工作流引擎

基于ASP.NET的工作流引擎

问题描述:

我正在研究一个将大量工作流驱动的新应用程序的设计规范。基于ASP.NET的工作流引擎

我在重新发明*,有没有插入到ASP.NET已经围绕一个像样的轻量级工作流引擎?

基本上,我寻找的东西,处理通过一组定义的工作流页面的移动而自动处理状态管理。

如果不在身边了,我肯定会尝试从抽象我的应用程序引擎,并把它在CodePlex上,因为这将是非常方便。

有什么建议吗?

注:.NET 2.0,所以没有WWF,但我认为WWF是矫枉过正我的需求。

编辑:似乎有这样的合法需要,并没有一个产品在那里......所以我可能会建立这个。

这里就是我想象:

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

嗯......如果我们从现在开始,我们会抛出我们的引擎,并会去世界自然基金会......如果你会设置复制本地复选框,你可以只得到需要3.5个dll并运行在2.0上。抱歉托马斯 – badbadboy 2008-11-24 22:50:39

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

是工作流动态或静态?

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

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

不知道你想在这里做什么,但Ra-Ajax可以很容易地保持状态,至少,如果你想你的解决方案支持Ajax ...

为了参考的目的,你可能要检查出Ajax Calendar sample甚至(平行执行)Ajax Wizard sample。它肯定会打败你的JavaScript ...

而你每次“做某事”你都在“服务器地”,这意味着你可以随时存储临时对象......

该项目是LGPL

(PS! 是的,我用它做的工作)

+0

谢谢,但那不是我想到的。虽然你的产品出现法律诉讼问题,但祝你好运。它看起来棒极了,它对盖亚很遗憾。 – FlySwat 2008-11-25 00:27:58

建立一个自定义的工作流引擎是不平凡的,尽管它可能在最初看起来简单。我们已经尝试过了。这很大程度上取决于您需要覆盖的逻辑的复杂程度。

鉴于Windows工作流基础的当前状态和缺乏另一个框架抽象的工作流概念的,如果你需要复杂的逻辑,异步处理或分支机构工作流程,我会选择WF。

通过工作流跟踪你的状态可通过实施某种形式的XML负载的或存储在数据库中的状态来完成,

如果您的工作流程实际上是一个连续的集合,需要通过填写表格用户,跟踪步骤和引导用户进入下一步可以用一些简单的定制解决方案来完成。

虽然浏览网页的一些工作流程& BPM资源,我发现了以下项目:NetBPM。不幸的是,这个项目似乎停止了。

你可以看看在InRule引擎了。 另外,还有nxBRE

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

您可能需要使自己的实施的网页,并使用规则引擎的“结构”。

在这一刻,我知道,SharePoint 2007中支持页面的工作流(WF使用),但是这将意味着使用.NET Framework 3和deployng的SharePoint。

我的建议是使用任何你会发现更多的光线和更容易使用。

我认为术语“工作流程”是非常开放的解释。最近我一直在努力研究一种与你所描述的工作流程截然不同的工作流程。 Mine是一个基于状态机的工作流程,其中特定记录的状态决定了用户可以采取什么行动将记录移至业务流程的下一个步骤。因此,在这种情况下,“工作流程”意味着记录如何从一个状态流向另一个状态直至最终完成。

您的工作流的使用似乎有更多的事情要做线性多步骤的过程,这是一个完全不同的使用情况下(纠正我,如果我错了)从一个页面的用户移动到另一个。因此,在提出任何人都可以使用的通用“工作流程”引擎之前,我会建议定义一个更好的确切的系统将处理的情况。

有几个工作流程选项。 “Aspose”和“Skelta”是我评估的优惠。

法比奥

我一直在使用这几个月http://objectflow.codeplex.com。不是asp的具体,但它可能满足您的需求