• 和我一起学Windows Workflow Foundation(1)创建和调试一个WF实例


    今天开始,我打算开始学习WWF,从网上搜索到了部分相关资料,也找到了一些文档和实验。但是,资料以英文的占多数,所以,在学习起来似乎比较吃力,不过相信我能坚持下来,顺便提高点英语阅读能力,不过本人英文水平实在是差,解释的不到位或错误的地方请大家谅解(千万别笑话我,哈哈)。毕竟我也是从空白开始学习WWF,让我们一起进步。

    首先,我们需要安装WinFX下载)和Visual Studio 2005 extensions for .NET Framework 3.0 (Windows Workflow Foundation)。这是我们必备的开发组件。

    这些例子和教程是从微软的labs上下载到的,分为10个部分。先来学最基础的第一部分先 :)

    第一部分的目的

    这个试验的目的是介绍Windows Workflow Foundation的工作流概念的关键点

    完成了这个试验以后,我们可以学习到:

    · 使用Visual Studio 2005 为WWF设计顺序工作流

    · 配置和使用Visual Studio 2005调试器调试你的工作流

    · 让工作流接受参数

    · 通过接收事件触发一个新的工作流实例

    · 定义条件

    · 为If/Else, Delay, Listen, and Code配置基本的活动(activities不知道怎么翻译好)

    · 给工作流为接收到的事件定制活动

    工作流是在一个活动图中进行定义的,它可能是一个人为操作或一个系统进程。一个活动在工作流中是一个步骤,其体现为一个可执行单元,并且是可重用的,可整合的。工作流在设计好后被编译成.net程序集,它被工作流运行时和通用语言运行时(CLR)所执行。

    一.创建一个Hello World工作流

    在这次练习里,我们将通过VS2005工作流设计器设计一个非常简单的“Hello World”工作流。这个Hello World工作流将通过很简单的代码实现一个顺序工作流,它将在我们的命令行中输出“Hello, World!”。我们将了解工作流的定义和其代码。最后,我们将学习怎样通过VS2005在我们的机器上执行、调试我们的工作流。

    打开VS 2005,新建项目,选择“顺序工作流控制台应用程序”,修改项目名称为:HelloWorldWorkflow.

    1. 点击确定我们将生成一个新的工作流项目。

    2. 这个项目会为我们自动生成一个工作流模版Workflow1。在这里我们是不需要这个模版的,我们只是做一个非常简单的例子,所以我们删除这个Workflow1.cs文件。

    3. 右键单击项目选择添加新项

    4. 选择“顺序工作流(具有单独的代码)”,点确定添加。这里将添加两个文件Workflow1.xoml和Workflow1.xoml.cs,Workflow1.xoml包含了描述工作流类型的XML语言,而其CS后缀的的文件则包含这个工作流内的动作执行代码。

    5. 下面我们要做的就是添加代码了。双击Workflow1.xoml文件来打开VS 工作流设计器视图。

    6. 我们从工具箱里可以砍刀我们可以添加的各种活动。

    7. 我们从工具箱中拖拽“Code”这个活动到我们的工作流当中。

    8. 注意,这个时候在我们拖拽进来的“Code”这个活动的右上角有一个红色的叹号,点击下拉的小三角我们可以看到显示这个叹号的呀,是因为属性ExecuteCode还没有被设置。

    9. 那么下一步很明白了,我们需要设置ExecuteCode,点击这个提示,我们会发下在属性窗口的ExecuteCode会显示高亮,在其内输入codeActivity1_CodeHandler并双击,会在后台代码Workflow1.xoml.cs中生成codeActivity1_CodeHandler方法

    10. 可以看到,这个类继承自 SequentialWorkflowActivity 基类. 我们要在方法中输入:

    Console.WriteLine("Hello, World!");

    全部代码如下:

    using System;
    using System.ComponentModel;
    using System.ComponentModel.Design;
    using System.Collections;
    using System.Drawing;
    using System.Workflow.ComponentModel.Compiler;
    using System.Workflow.ComponentModel.Serialization;
    using System.Workflow.ComponentModel;
    using System.Workflow.ComponentModel.Design;
    using System.Workflow.Runtime;
    using System.Workflow.Activities;
    using System.Workflow.Activities.Rules;
    namespace HelloWorldWorkflow
    {
    public partial class Workflow1 : SequentialWorkflowActivity
    {
    private void codeActivity1_CodeHandler(object sender, EventArgs e)
    {
    Console.WriteLine("Hello, World!");
    }
    }
    }
    

    11. 按Ctrl+F5运行程序,如果出现:
    则说明成功。

    12. 是不是太简单了?至少,我们第一次的工作流编写完成了。

    13. 等等,别急,还有个好玩的,那就是WWF的调试功能。我们在以前调试的时候,是要在代码中设置断点的,现在,你可以试一下调试WWF。

    14. 打开工作流的设计视图Workflow1.xoml。

    15. 选中我们刚才拖拽过来的codeActivity1,点右键,选断点—插入断点(或者选中后直接点F9),看到了什么?

    6. 现在我们再按F5,在执行到这里的时候就会停止,可以进行调试了。

    7. 点F11单步执行将进入我们的codeActivity1_CodeHandler事件,是不是很方便?

    今天先说这么多,明天继续学,呵呵

  • 相关阅读:
    Mysql加锁过程详解(1)-基本知识
    Mysql加锁过程详解(5)-innodb 多版本并发控制原理详解
    java笔试题-1
    通过六个题目彻底掌握String笔试面试题
    JDBC实现往MySQL插入百万级数据
    打印变量地址-0x%08x
    cin中的注意事项
    猎豹网校C++ Primer学习笔记
    物体检测相关——学习笔记
    teraflop级、TFLOPS、TOPS
  • 原文地址:https://www.cnblogs.com/cxd4321/p/879709.html
Copyright © 2020-2023  润新知