《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学习(51):扩展集

大部分现实应用中我们并不需要把数据库中的整行数据都拉出来, 所以要做扩展结果集 笔记: 在实际项目过程中, 先用逆向工程自动生成, 然后再做扩展结果集来满足大部分的现实需要 本节内容应该注意扩展结果集的命名方式 创建一个扩展类ShopCustom, (这样命名可以和Shop在项目树…

应届生,你如何应付技术关?

因为最近公司的战略问题&#xff0c;需要招一些没经验的应届毕业生进行培养。不过在面试当中&#xff0c;某些应届生表现出来的&#xff0c;却不能不让我们汗颜。所以&#xff0c;在此以一个招聘者的角度&#xff0c;说说一些看法。既然是招没经验的应届生&#xff0c;那么很明…

CLIST

CList数组再写 #include<iostream> using namespace std; struct node{ int data; node* next; }; void insertnode(node* list,int num); void deletenode(node* list,int num); int main() { int a[5]{3,5,8,1,2}; node* headnew node;//开辟一个空间地址给头指针 node…

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…

今天学习任务

1、复习梁老师今天讲的内容。 2、学习设计模式。 转载于:https://www.cnblogs.com/bailq/archive/2008/09/06/1285483.html

中国经济怎么办之我见

中国经济问题的根源 一、一味追求高GDP&#xff0c;表现就是大力发展房地产和搞基建&#xff0c;典型言论是号称房地产能拉动几十个关联行业。 二、过于追求快速城镇化。 负面结果 一 、社会资源(包括资金、劳动力、政策等)都投入到房地产&#xff0c;其他行业的发展受到极大的…

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; 模块介绍&…

架构师的要害

架构师的要害就是&#xff1a;架构师的领导力。 这是一个与技术完全不同的方向&#xff0c;是一个人文的方向。我认识的一位资深HR经理和我的老经理都曾经告诉过我&#xff1a;从技术的思维转换到与人打交 道的思维是非常难的&#xff1b;一旦一名技术员&#xff08;程序员/测试…

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_…

mybatis学习(55):延迟加载

MyBatis中的延迟加载&#xff0c;也称为懒加载&#xff0c;是指在进行关联查询时&#xff0c;按照设置延迟规则推迟对关联对象的select查询。延迟加载可以有效的减少数据库压力。 注意&#xff1a;MyBatis的延迟加载只是对关联对象的查询有延迟设置&#xff0c;对于主加载对象都…

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…

three20 TTTableViewController + TTActionSheetController

1. 首页要实现TTActionSheetControllerDelegate interface TSPublishViewController : TTTableViewController<TTActionSheetControllerDelegate> {CATETYPE _cateType; } property(nonatomic,assign)CATETYPE cateType;end 2. 在init中声明URLMAP规则 - (id)initWithNib…

如果没有,那么就去创造

上周末在回北京的路上&#xff0c;看到一个广告牌&#xff0c;上面有一句&#xff1a;“如果没有&#xff0c;那么就去创造”。 是啊&#xff0c;自己的生活只能靠自己创造&#xff0c;从无到有。转载于:https://www.cnblogs.com/skogkatt/archive/2008/09/10/4163277.html

Java枚举类型 enum

定义 An enum type is a special data type that enables for a variable to be a set of predefined constants. The variable must be equal to one of the values that have been predefined for it.枚举类型是一种特殊数据类型&#xff0c;能够为一个变量定义一组预定义的常…