关于asp.net:Windows Workflow Foundation的替代产品?

关于asp.net:Windows Workflow Foundation的替代产品?

Alternatives to Windows Workflow Foundation?

我已经将WWF用作内部呼叫中心应用程序(ASP.NET)的一部分,并且在学习这是了解基于状态机的工作流系统应如何工作的好习惯时,我肯定不爱世界自然基金会本身。我认为是:

  • 过于复杂,尤其是在Web应用程序内使用(所有线程化的运行时内容)
  • 不成熟(曾经和那个可怕的设计师一起工作吗?)
  • 当前功能集中的贫血症
  • 有人建议建立一个更好的基于.NET的工作流框架吗?具体来说,我正在寻找以下功能:

  • 基于状态机(将状态映射到可用操作)
  • 关注用户权限(控制谁有权访问哪些操作)
  • 能够将工作流作为定时的后台任务运行(例如,发出已经处于某状态x天的项目的提醒)
  • 那真的是我所需要的。我不需要能够"拖放"任何活动或直观地设计流程。一旦触发特定动作,我就很愿意编写实际代码。


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

    我完全同意WF中的状态机-它们无法测试,过于复杂,线程模型独特且难以遵循,而且我不确定视觉设计师的能力是否会更好旨在用于图形化设计状态机。我认为这可能是因为状态机概念适用于WF运行时,该运行时是为顺序状态机设计的,我认为WF可以做得更好。问题在于状态机实际上与顺序工作流不是同一动物,应该赋予它们自己的一流的实现,因为事实证明WF的扭曲使它似乎支持它们是或多或少的。不支持的,如果不是真正不可用的。


    由于Drools.Net的上一次SVN提交是在2007年9月,所以我会远离它。看上去不错,但是当您知道将大型库作为项目的一部分时,似乎有点冒险。不再引起任何注意。


    看看Workflow Engine。它是用于.NET和Java解决方案的轻量级工作流框架。它具有HTML5视觉设计器,版本控制,不错的UI,并支持各种数据库。


    尝试Drools.NET


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

    面向任务的

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

    事件驱动

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

    您可以在此处找到引擎列表。


    尝试WF4.5。从.NET4.0开始完全重新设计。


    您可能想看看Jazz-http://jazz.codeplex.com/


    我非常喜欢与Oracle BPEL Process Manager一起工作。它是JDeveloper的一部分。

    http://www.oracle.com/technology/bpel/index.html
    /d/jc/2023041217/ibtw4h1fhiq10.webp


    您是否可以考虑使用BizTalk Server?


    推荐阅读