我已经使用 WWF 一段时间作为内部呼叫中心应用程序 (ASP.NET) 的一部分,在学习过程中,这是了解基于状态机的工作流系统如何工作的良好实践 应该 工作,我绝对不爱WWF本身。我认为是:

  1. 过于复杂,尤其是在网络应用程序中使用(所有线程运行时的东西)
  2. 不成熟(曾与那个糟糕的设计师合作过吗?)
  3. 目前的功能设置贫乏

有人对更好的基于 .NET 的工作流框架有建议吗?具体来说,我正在寻找以下功能:

  1. 基于状态机(将状态映射到可用操作)
  2. 关注用户权限(控制谁有权访问哪些操作)
  3. 能够将工作流程作为定时后台任务运行(例如,针对已处于某种状态 x 天的项目发送提醒)

这确实是我所需要的。我不需要能够“拖放”任何活动或直观地设计流程。一旦触发特定操作,我就可以非常轻松地编写实际代码。

有帮助吗?

解决方案

你可以尝试 简单状态机. 。您必须自己实现访问控制和后台计时器,但这应该不是什么大问题。SSM 的建立也是出于对 WF 的不满。 Codeplex 上还有一些其他状态机实现 以及。如果其中一个不适合他开箱即用,它们是开源的,应该让您足够接近。

我完全同意你关于 WF 中状态机的看法 - 它们不可测试,太复杂,线程模型很奇特且难以遵循,而且我不确定视觉设计师在设计状态机时是否会考虑得更糟糕以图形方式。我认为这可能是因为状态机概念感觉是附加到 WF 运行时上的,它是为顺序状态机设计的,在我看来,WF 在这方面做得更好。问题是状态机与顺序工作流实际上不是同一种动物,并且应该被赋予它们自己的一流实现,因为 WF 的变形使其看起来支持它们,结果或多或少是这样的不支持,如果不是实际上不可用。

其他提示

我会远离 Drools.Net,因为它的最后一次 SVN 提交是在 2007 年 9 月。看起来不错,但是当您知道它不再受到任何关注时,将这么大的库作为项目的一部分似乎有点太冒险了。

尝试 Drools.NET

看一下 工作流引擎. 。它是适用于 .NET 和 Java 解决方案的轻量级工作流框架。它有一个 HTML5 视觉设计器、版本控制、一个不错的 UI 并支持广泛的数据库。

您可以选择考虑 BizTalk Server 吗?

我非常喜欢使用 Oracle BPEL Process Manager。它是 JDeveloper 的一部分。

http://www.oracle.com/technology/bpel/index.html http://gemsres.com/story/dec06/313602/jellema-fig1.jpg

您可能想看看爵士乐 - http://jazz.codeplex.com/

尝试WF4.5。自.NET4.0以来它被完全重新设计。

首先,您应该寻找支持 BPMN 的引擎。BPMN 是工作流和流程管理的标准,并得到许多项目的良好支持。其次,您应该考虑对引擎的要求。当您寻找 BPMN 引擎时,有两种不同的方法:

任务导向

这些引擎(例如 JBoss BPM - jbpm)旨在通过明确定义的过程模型来处理输入数据。模型中的每个任务都将控制权交给一段代码——标准的或单独的实现。当流程令牌到达流程模型的末尾(结束事件)时,流程结束。这种处理需要几毫秒。该引擎可用于批处理作业或通过复杂的面向流程的流程处理数据。

事件驱动

以人为中心的工作流程引擎是事件驱动的(例如 Imixs-工作流程)。这是一种状态机,但通常提供更多的功能。您可以通过为业务对象分配初始任务(由启动事件定义)来启动新的流程实例。工作流引擎允许您触发分配给模型中定义的每个任务的事件。每个事件(Intermediate CatchEvent)都会触发工作流引擎将正在运行的流程实例转移到下一个任务(状态)。在没有新事件被触发之前,流程实例在当前任务(状态)中“等待”。审批流程是这种以人为中心的工作流程的典型示例。

您可以找到引擎列表 这里.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top