【问题标题】:Advice on using .Net WorkFlow State Machine. What would you do?关于使用 .Net WorkFlow 状态机的建议。你会怎么办?
【发布时间】:2010-05-07 12:57:05
【问题描述】:

所以我在工作中的任务是编写 Windows 服务来替换当前作为服务运行的一些旧的 VB6 WinForms 应用程序,每天不断重复任务。提供一些一般背景知识,他们有自己的内置状态机来处理基于决策的决策,而不是使用线程。

这里的许多高级开发人员认为值得尝试研究 WorkFlow 以替换状态机,而不是编写我自己的业务逻辑并尝试以编程方式对其进行线程化。所以这是 WF 与我想的“旧学院尝试”。

我担心的是关于这个主题的书籍并不多,而且由于它是在 .Net 中实现的,所以我很少听到关于它被使用的消息。我在工作中提出了这个问题,另一位开发人员提到这是因为 Biz Talk 从未真正流行起来,它就是为此而设计的。

所以它坏了吗?你认为它会得到足够长的支持而不用太担心吗?我不希望在我的服务、我的新婴儿工作中注入一个运行不良的过程,然后让 WF 倒下。让我不得不在紧急情况下用我自己的代码替换它们;这对我来说似乎不是什么宏伟的场景。

任何建议,建议都会很棒。

【问题讨论】:

    标签: windows-services workflow-foundation


    【解决方案1】:

    Microsoft SharePoint 中使用了 Workflow Foundation,所以我认为他们会继续支持它。

    【讨论】:

      【解决方案2】:

      Nicholas Blumhardt 有一个名为 Stateless 的开源项目。它非常灵活且重量很轻。 See my SO answer了解详情。

      我之所以选择它而不是 Windows Workflow,只是因为我可以将状态定义为 State,从而使用 SubSonic 将我的工作流状态持久化回数据库。配置由一个 XML 文件组成。如果我需要添加任务,我只需将节点添加到 XML。

      每个状态都可以有一系列触发器,一旦满足就会进入适当的状态。这个框架是一个单一的组合,非常适合您的域逻辑。

      【讨论】:

      • 我会研究无状态的,但对于我目前的服务项目,我正在使用 WF 4,因为我已经投入了大量时间,并且 .Net 4.0 WF 功能得到了极大的改进,并结合了WF和WCF之间很好。感谢您让我了解另一个有用的框架。
      • 没问题 - 这是一个很棒的框架,也可以在 4.0 中运行。构建工具包时需要牢记的一些事项。
      猜你喜欢
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多