【问题标题】:Can someone give a good tutorial on WWF? [closed]有人可以提供有关 WWF 的好教程吗? [关闭]
【发布时间】:2008-10-07 03:22:16
【问题描述】:

我特别感兴趣的是: 1) 建立一个 免费 环境设置来执行工作流。 2) 如何使用现有的工作流项/状态以及其中涉及的内容。

谢谢!

【问题讨论】:

标签: .net workflow-foundation


【解决方案1】:

其他答案很好,但我认为让人们了解为什么要使用工作流很重要。许多人在不需要 WF 时使用它,还有一些人在他们的用例最适合 WF 使用时拒绝使用。

我读过的关于何时以及是否使用 WF 的最佳解释是 Dave Green 的 blog post。他是第一个版本的 Windows Workflow Foundation 的架构师。

我会把它贴在这里以供后代使用:


什么是工作流,为什么要麻烦?

当然,工作流是那些严重超载的术语之一,它经常阻碍沟通,所以我最好说出我的意思。

工作流归结为两个想法:有工作要做,工作流将其视为不透明的行为单位;和流程,它描述了什么时候完成的工作。

那么这是一个工作流程吗?

public void HandleLoanRequest (string customerID, Application app)
{
    if (CheckCredit(customerId, app.Amount))
    {
        MakeOffer (customerId, app);
    }
}

是的,我相信是的。这项工作是检查客户的信用并提出报价 - HandleLoanRequest 定义是否以及何时执行这项工作。

但是,工作流程供应商传统上认为在他们宣布胜利之前需要的不仅仅是这类代码,这表明我们仍然缺少一个关键概念。

我相信,我们不仅需要描述流程,还需要以一种我们可以检查、推理和操作的方式来描述它。简而言之,工作流需要一个模型。

C# 是执行此操作的一种方法 - 例如,我们可以定义允许我们扫描工作流代码并绘制流程图的编码标准。或者我们可以为开发人员定义属性,以调用他的代码中形成模型的部分。这不是我们为 Windows Workflow Foundation 做出的选择——我将在后面的文章中讨论我们为什么选择我们所做的事情——但它会起作用。

但回到我们可能需要模型的原因。我们将不得不努力创造它,那何必呢?回报在哪里? (或者牛肉,这个在国外的英国人正在学习如何称呼它)。

嗯,我认为回报来自模型所支持的 -

可视化对开发人员有用,无论是在开发和维护期间,还是对想知道为什么他们应该做他们被要求做的事情的工作流程用户,或者想知道某些行为不端的应用是什么,或者应该是什么的 IT 运维人员。

表现力 工作流模型是一种领域特定语言,专门用于支持特征问题。一个例子是一个审查过程,其中五个审查中的三个正面投票意味着该文件是好的 - 并且任何未完成的审查都可以被取消。编写代码有点乏味,但 Windows Workflow Foundation 包含解决此类问题的开箱即用构造。

执行 运行时可以利用模型来消除一遍又一遍地解决相同问题的需要。在 Windows Workflow Foundation 中,我们内置了对长期运行工作流的棘手问题的支持,例如状态管理和补偿——由简单、富有表现力的模型元素控制。

监控 模型的存在使得无需任何额外的开发人员工作就可以生成具有有意义语义的事件流。然后可以使用它来监视工作流或聚合的实例。 Windows Workflow Foundation 还允许使用从工作流状态中提取的应用程序数据对事件进行声明性修饰 - 这样您就可以知道订单 14532 的信用检查已开始。

转型 模型产生模型。一个例子是将工作流模型转换为与之通信所需的消息交换模式——正如 Dharma 和 Don 在 PDC 上所展示的那样。另一个是定制。 ISV 提供了一个工作流程,该工作流程由 VAR 定制,然后由客户再次定制。然后 ISV 发布了一个新的基础版本。为工作流使用共享的、易于理解的模型使得后续的 3 路合并更容易处理。

组合 如果将应用程序分解为流程和工作,那么工作的原子元素及其易于理解的界面可以被其他工作流程重用。工作流本身是工作的有效定义,也可以被其他工作流使用。

定制和转型共同促成了生态系统,其中工作和流程的定义成为共享或交易的工件。

操作 通常需要即时发明或修改工作流程。如果这意味着更改代码,那么安全人员就会出现问题——即使用户知道如何破解它。使用模型使得可以控制和理解的动态操作成为可能。 Windows Workflow Foundation 支持对工作流类型和工作流实例的动态修改。

就是这样(或者至少,这个星期六下午我想到的所有东西)。这就是为什么我们认为模型是一个好主意,以及为什么我们认为它具有很高的投资回报率。但是,如果这些好处都不适用于您的场景,那么实际上,编码仍然非常酷。

【讨论】:

    【解决方案2】:

    您是否正在寻找像 MSDN 这样的虚拟实验室?

    对于一些 How Tos,尝试下载Hands-on Labs for Windows Workflow Foundation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-04
      • 2010-11-14
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多