《WF编程》系列之3 - 漫游工作流:Visual Studio 2005 扩展

《WF编程》系列之3 - 漫游工作流:Visual Studio 2005 扩展

1.2.2 Visual Studio 2005 扩展

Microsoft提供了一个Visual Studio 2005 的工作流扩展(Microsoft Visual Studio 2005 Extensions for Windows Workflow)其中包含用于构建工作流的可视化设计器.

 

活动排列在工具箱里,可以拖拽到设计器中.我们还可以往工具箱里添加自定义活动.当选中设计器中的活动后,属性面板就会列出这个活动的属性和事件供我们配置.

 

1.2.2.1 Windows Workflow 和 XAML

WF设计器可以生成描述工作流的C#和Visual Basic代码,还可以读写XAML(可扩展应用程序标记,eXtensible Application Markuptensible Application Markup).XAML文件是有效的XML文件,它将定义性编程模型(declarative programming model)引入到Windows Worklow中.下面是设计器生成的XAML:

<SequentialWorkflowActivity 

  
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 

  xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/workflow" 

  x:Class
="HelloWorld.HellowWorldWorkflow" >

  
<CodeActivity 

    
x:Name="codeActivity1" 

    ExecuteCode
="codeActivity1_ExecuteCode_1" /> 

</SequentialWorkflowActivity>

这个XAML描述的工作流很简单,它只包括一个活动- CodeActivity,工作流引擎执行CodeActivity时CodeActivity会调用ExecuteCode属性指定的方法codeActivity1_ExecuteCode_1.

要知道,XAML并不只用于Windows Workflow.它同样出现在Windows Presentation Foundation (WPF).在WPF中, XAML用来构建富用户界面(不只是button和label等传统控件的组合,还包括动画效果和数据模板等).

XAML的一个重要能力是可以联合分部类中的代码.分部类是.NET 2.0中VB和C#的新功能,它允许类定义在多个文件中.上边的XAML会被转换成一个名为HelloWorldWorkflow的分布类.我们可以通过XAML根节点中的x:Name属性控制类的名称.如果想在这个类中添加成员,也可以定义一个同名的类,并用partial关键词修饰类名.

 

public partial class HelloWorldWorkflow:SequentialWorkflowActivity

    {

        
private void codeActivity1_ExecuteCode_1(object sender,EventArgs e)

        {

            
//  

        }

    }

在上面的代码中,我们把codeActivity1_ExecuteCode_1方法添加到与XAML生成的类相同的类(HelloWorldWorkflow)中.

1.2.2.2 WF 验证和调试

工作流设计器的另外一个工作是提供针对活动的验证机制.每个活动都可以定义其设计时和运行时的验证.设计器将为抛出验证错误的活动标记一个红色的惊叹号.例如, CodeActivity会一直显示红色惊叹号,直到我们设置了ExecuteCode属性(因为没有设置ExecuteCode属性的 CodeActivity是没有用的).

设计器还提供调试功能.我们可以在设计器中的活动上设置断点.当停止执行时,我们可以通过

调用堆栈(Call Stack)面板查看看工作流中之前执行的活动.

调试器支持步进(Step In), 步出(Step Out)和逐过程(Step Over)等命令.例如,Step In命令将转移到复合活动的第一个子活动,Step Over将跳过整个复合活动转移到下一个活动.

1.2.2.3 设计器外观

我们可以通过主题来定制工作流设计器的设计外观,主题定义了设计器的背景色,字体,线条和边框样式.我们可以为特定的活动指定颜色和边框样式.通过Visual Studio,我们可以创建新的主题,也可以修改存在的主题.

可以定制样式的功能并不只是为了设计器在Visual Studio中更加美观,WF设计器是一个组件,可以将其托管在我们的应用程序内部.托管设计器是个不错的创意,我们可以提供一些容易被商业人员理解的自定义活动(如SendOrderToKitchen),并让他们自己设计工作流.

转载于:https://www.cnblogs.com/andylaufzf/archive/2008/08/27/1277493.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

只需20小时,让0基础的你掌握小程序云开发!这个暑假,约否?

今天的故事要从小开和小发这对好基友的假期说起...... 没错&#xff01;他来了&#xff0c;他来了&#xff0c;云开发带着小程序开发夏令营最新情报向我们走来了&#xff01; 为了让更多的童鞋享受高效率、“在云上”掌握小程序开发这一热门技术&#xff0c;也为了解决大家自学…

Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

去空格及特殊符号 s.strip().lstrip().rstrip(,) 复制字符串 #strcpy(sStr1,sStr2) sStr1 strcpy sStr2 sStr1 sStr1 strcpy2 print sStr2 连接字符串 #strcat(sStr1,sStr2) sStr1 strcat sStr2 append sStr1 sStr2 print sStr1 查找字符 #strchr(sStr1,sStr2) # < 0 …

mybatis学习(52):扩展结果的展现

首先使用逆向工程创建相关类 数据库表 author blog 新建一个项目&#xff0c;将逆向工程的生成的拷贝进来 配置文件 log4j.properties ### \u914D\u7F6E\u6839 ### log4j.rootLogger debug,console ,fileAppender,dailyRollingFile,ROLLING_FILE,MAIL,DATABASE### \u8BBE\…

统计HDFS文件数量,大小,以及在某范围大小的文件数量

统计HDFS文件数量大小&#xff0c;小于20M文件数量 hadoop fs -du -h / # 统计文件大小hadoop fs -count / # 统计文件数量&#xff0c;返回的数据是目录个数&#xff0c;文件个数&#xff0c;文件总计大小&#xff0c;输入路径hadoop fs -ls -R /path/data | grep ^- > ~/d…

mybatis学习(53):构造方法映射

数据库表 数据库叫blog_gp1701 author表 数据 blog表 数据 comment表 数据 post表 数据 目录结构 jar包导入 先给对应的jar包导入 建立一个junit单元测试 配置文件 log4j.properties ### \u914D\u7F6E\u6839 ### log4j.rootLogger debug,console ,fileAppender,dailyRo…

python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小

python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求&#xff1a;指定目录下&#xff0c;文件夹数目/文件数目/所有文件大小&#xff0c;类似Windows如下功能&#xff1a; 模块介绍&…

Linux 内核编码风格【转】

原文&#xff1a;http://www.cnblogs.com/baochuan/archive/2013/04/08/3006615.htmlLinux 内核编码风格序像其他大型软件一样&#xff0c;Linux制订了一套编码风格&#xff0c;对代码的格式、风格和布局做出了规定。我写这篇的目的也就是希望大家能够从中借鉴&#xff0c;有利…

mybatis学习(54):鉴定器

数据库表 数据库叫blog_gp1701 author表 数据 blog表 数据 comment表 数据 post表 数据 vechcle 目录结构 jar包导入 先给对应的jar包导入 建立一个junit单元测试 配置文件 log4j.properties ### \u914D\u7F6E\u6839 ### log4j.rootLogger debug,console ,fileAppender…

hadoop fs:du统计hdfs文件(目录下文件)大小的用法

hadoop fs:du统计hdfs文件&#xff08;目录下文件&#xff09;大小的用法 hadoop fs 更多用法&#xff0c;请参考官网&#xff1a;http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html 以下是我的使用统计文件时使用的记录&#xff1a; [tdv00938 ~]$ hadoop fs -ls /jc_…

sqoop操作之Oracle导入到HDFS

导入表的所有字段 sqoop import --connect jdbc:oracle:thin:192.168.1.100:1521:ORCL \ --username SCOTT --password tiger \ --table EMP -m 1; 查看执行结果&#xff1a; hadoop fs -cat /user/hadoop/EMP/part-m-00000 7369,SMITH,CLERK,7902,1980-12-17 00:00:00.0,800,n…

ps学习1:去除图片上的文字

首先我们看到如图所示的图&#xff0c;这个时候我们要给他右上角的文字去除 首先打开我们的ps工具--我登陆的在线ps教程 https://www.uupoop.com/ 点击编辑---填充 保存 完成修改

Java面试题16 牛客 以下java程序代码,执行后的结果是()

Java面试题16 牛客 以下java程序代码&#xff0c;执行后的结果是&#xff08;&#xff09; 1 2 3 4 5 6 7 8 9 10 public class Test { public static void main(String[] args) { Object o new Object() { public boolean equals(Object o…

Hive压缩说明

为什么要压缩 在Hive中对中间数据或最终数据做压缩&#xff0c;是提高数据吞吐量和性能的一种手段。对数据做压缩&#xff0c;可以大量减少磁盘的存储空间&#xff0c;比如基于文本的数据文件&#xff0c;可以将文件压缩40%或更多。同时压缩后的文件在磁盘间传输和I/O也会大大减…

kubelet源码学习(一):kubelet工作原理、kubelet启动过程

本文基于Kubernetes v1.22.4版本进行源码学习 1、kubelet工作原理 1&#xff09;、kubelet核心工作 kubelet的工作核心就是一个控制循环&#xff0c;即&#xff1a;SyncLoop&#xff08;图中的大圆圈&#xff09;。而驱动这个控制循环运行的事件&#xff0c;包括&#xff1a;P…

Java面试题18 牛客 假定Base b = new Derived();

Java面试题18 牛客 假定Base b new Derived&#xff08;&#xff09;; 调用执行b.methodOne&#xff08;&#xff09;后&#xff0c;输出结果是什么&#xff1f; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public class Base { public…

ReactOS,硬件抽象层,HAL概述

分析环境reactos0.3.4 &#xff0c;i386体系] ReactOS的硬件抽象层 HAL(Hardware Abstraction Layer)位于OS与硬件的中间&#xff0c;和windows的hal原理基本一致&#xff0c;硬件抽象层隐藏特定平台的硬件接口细节&#xff0c;为上层的系统提供标准的稳定的虚拟硬件平台&…

[给ASP.NET 初学者的话]不要练功练了三年,才发现自己必须「砍掉重练」!....学习ASP.NET之前,请先把自己杯中的水倒掉...

这是我的文章备份&#xff0c;原文请看&#xff1a; [给ASP.NET 初学者的话]不要练功练了三年&#xff0c;才发现自己必须「砍掉重练」&#xff01;....学习ASP.NET之前&#xff0c;请先把自己杯中的水倒掉 http://www.dotblogs.com.tw/mis2000lab/archive/2012/03/15/game_ove…

Java面试题19 牛客下面有关java的引用类型,说法正确的有?

Java面试题19下面有关java的引用类型&#xff0c;说法正确的有&#xff1f; A:对于一个对象来说&#xff0c;只要有强引用的存在&#xff0c;它就会一直存在于内存中 B&#xff1a;如果一个对象仅持有虚引用&#xff0c;那么它就和没有任何引用一样&#xff0c;在任何时候都可…

MapReduce运行机制

相关链接 MapReduce中Shuffle机制详解——Map端Shuffle链接 MapReduce中Shuffle机制详解——Reduce端Shuffle链接MapReduce将作业job的整个运行过程分为两个阶段&#xff1a;Map阶段和Reduce阶段。按照时间顺序包括&#xff1a;输入分片&#xff08;input split&#xff09;、m…

WebService Software Factory 设计草图

以下是根据WSSF设计理念&#xff0c;按现公司的业务需求设计的接口项目拟稿&#xff0c;实现细分。仅供参考。&#xff08;WSSF---ASMX版&#xff09; 建议用1680*1050分辩浏览 转载于:https://www.cnblogs.com/RuiLei/archive/2008/10/05/1304160.html