一步一步学WF系列(四)工作流模拟登陆

1. 摘要

我们之前已经熟悉了关于WF的基本概念,相信各位也都跃跃欲试。想步入真正的WF开发。

从本文开始,我们就先来熟悉在WF中的活动。

2. 活动

WF的核心就是一系列的活动。

而工作流就是多个活动通过某种控制模组合起来形成一个连续有序的,通过工作流引擎并且根据业务需要自定义和自流转的系统。

通过以上的两个定义,相信我们都应该了解活动之于工作流意味着什么。

3. CodeActivity

Code控件是我们在WF中算是使用率最高的控件了。用户通过Code控件执行完成某项功能。

Code控件常用的功能是检查工作流的状态,更改局部变量和信息。一般意义上,Code代码不应该去调用外部的资源,例如WebService。

在CodeActivity中,最重要的一个关键事件就是ExecuteCode。这个事件在Code执行时发生。

这些用途在今后的实例讲解阶段会慢慢理解。在这里我们来看一个简单的例子:

之后在后台写这样的代码:

private void HelloExecute(object sender, EventArgs e){ Console.WriteLine("hello");}

之前我们已经讲过这个,这里就不再继续说了。

4. IfElseActivity

这个活动我们在第一章也提到过,他就是相当于我们在语言中的if---else。

有条件地运行类型为IfElseBranchActivity的两个或更多的活动之一。

我们用实例来慢慢讲解,在这里,我们来模拟一个用户登陆的过程。

首先我们来做准备工作,新建一个Winform窗体,形成一种登陆界面:

然后我们在工作流的后台代码中写这样两个属性:

private string userName;private string userPassword;public string UserName{ set { userName = value; }}public string UserPassword{ set { userPassword = value; }}

接下来我们来向工作流中拖放一个IfElse控件。

接下来,我们右击ifElseBranchActivity1,来看一下他的一个重要的属性。

ifElseBranchActivity1相当于一个if---else的一个分支。所以,我们当然要需要去指定他的入口条件。

我们注意其中的Condition属性,展开后我们可以看到:

这样,让我们选择添加分支,来再添加一个if---else子句:

继续>>下一页[第1页][第2页]

时间: 2024-07-29 02:02:39

一步一步学WF系列(四)工作流模拟登陆的相关文章

艾伟:一步一步学WF系列(三)

1. 写在前面 原本计划从这篇文章开始,开始介绍活动的使用方式,但是考虑到很多在WF中,重要的类和概念都没有清晰,所以还是在本文中继续明确一下WF中重要的类的用法. 这节是纯粹的理论知识,只是为你的后续学习打下一个基础,如果您不敢兴趣,可以略过. 2. WorkflowRuntime类 WorkflowRuntime:工作流运行时. 这个类有四个作用: <1> 管理工作流运行时 <2> 启动和管理工作流实例 <3> 管理运行时服务 <4> 处理运行时事件 A

一步一步学WF系列(三)

1. 写在前面 原本计划从这篇文章开始,开始介绍活动的使用方式,但是考虑到很多在WF中,重要的类和概念都没有清晰,所以还是在本文中继续明确一下WF中重要的类的用法. 这节是纯粹的理论知识,只是为你的后续学习打下一个基础,如果您不敢兴趣,可以略过. 2. WorkflowRuntime类 WorkflowRuntime:工作流运行时. 这个类有四个作用: <1> 管理工作流运行时 <2> 启动和管理工作流实例 <3> 管理运行时服务 <4> 处理运行时事件 A

一步一步学WF系列(一)——Hello world开始

1. 什么是工作流 我给工作流下了这样的定义,工作流就是一个过程,这个过程会产生一定的结果. 其实,在OA系统中,审批流就是我们最常见的工作流之一. 另外,简单了说,其实我们所画的流程图就是一种最简单的工作流,工作流最大的特点就是图形化.工作流是按照顺序驱动或者事件驱动去触发下一步操作,从而最终得到一个结果. 其实,我们也可以把他理解为一个过程化的职责链. 2. 工作流的类型 工作流大致分为两类,顺序工作流和事件驱动工作流. 顺序工作流是我们很常见的工作流,这个工作流是由我们事先规定好的顺序一步

一步一步学WF系列(二)工作流与Visual Studio

1. 工作流的开发风格 在WF中,有三种开发工作流的方式. <1> Markup-only <2> Code-and-MarkUp <3> Code-only 在这里,我就不想再去花时间去举例子,我们长话短说. 工作流的布局方式是XAML格式,相信了解WPF和Sivlerlight的人对这点都比较清楚.其实这个和WF是一样的.这个就是所谓的Markup-only模式. 而另一个极端是Code-only.我们还是去想WPF中的例子,如果WPF不熟悉我们去想想Winform

Python2 爬虫(四) -- 模拟登陆(人人网和知乎)

人人网登录成功 #! /usr/bin/env python # coding:utf-8 import sys import re import urllib2 import urllib import requests import cookielib ## 这段代码是用于解决中文报错的问题 reload(sys) sys.setdefaultencoding("utf8") #####################################################

一步一步学Silverlight :使用Transform实现更炫的效果(上)

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章将从Silverlight 2基础知识.数据与通信.自定义控件.动画.图形图像等几个方面带您快速进入Silverlight 2开发. 本文为理

【DG】[三思笔记]一步一步学DataGuard

[DG][三思笔记]一步一步学DataGuard 它有无数个名字,有人叫它dg,有人叫它数据卫士,有人叫它data guard,在oracle的各项特性中它有着举足轻理的地位,它就是(掌声)......................Oracle Data Guard.而对于我而言,我一定要亲切的叫它:DG(注:主要是因为打着方便). 不少未实际接触过dg的初学者可能会下意识以为dg是一个备份恢复的工具.我要说的是,这种形容不完全错,dg拥有备份的功能,某些情况下它甚至可以与primary数据库

一步一步学NUnit(2)

前一章我们简单介绍了NUnit的入门示例<一步一步学NUnit(1)>,让大家对NUnit有个简单的认识. NUnit的使用是非常简单的,但是它在项目中使用时,有许多最佳实践.这章我们把上一章没有讲到的 NUnit的一些配置和特性介绍一下. 要想熟练地使用NUnit还是要在实践中使用和体会,单纯地学习知识点是没有用的. 好,不再废话了.继续上一章的内容. 在Visual Studio 2008 中打开上一章的示例,Calculator类有4个最简单的方法:加.减.乘.除. Calculator

一步一步学ROP之linux_x86篇

一步一步学ROP之linux_x86篇 作者:蒸米@阿里聚安全 一.序 ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等).虽然现在大家都在用64位的操作系统,但是想要扎实的学好ROP还是得从基础的x86系统开始,但看官请不要着急,在随后的教程中我们还会带来linux_x64以及android (arm)方面的ROP利用方法,欢迎大家继续学习. 小编备注:文中涉及代