工作流是什么东西?暂时还不是很弄得清除。

  工作流是用来解决什么问题的?暂时只是形成了一个很模糊的概念,还没办法用语言描述出来。

一、入门范例

  以VS2008为例,先来创建一个WWF程序。

  

  在工具箱中,拖一个Code到"活动"中

  

  打开codeActivity1的属性面板,在ExecuteCode里双击,然后进入,键入如下代码:

namespace WorkflowConsoleApplication1
{
public sealed partial class Workflow1 : SequentialWorkflowActivity
{
public Workflow1()
{
InitializeComponent();
} private void CodeExecute(object sender, EventArgs e)
{
Console.WriteLine("Hello World -- 工作流启动了!");
Console.ReadKey();
}
}
}

  启动,项目,输出如下:

  

二、创建应用程序项目

  WWF工作流都是控制台程序,为了更好地给大家进行演示,这里创建一个Windows应用程序作为它的宿主的载体。

  新建一个Windows Form应用程序,引用如下控件。

  

  和之前一样,在Winform程序中,创建一个工作流项目,结构如下

  

  在Winform程序的代码(Winform引用工作流项目):

    public partial class Form1 : Form
{
//定义工作流运行时Runtime容器
private WorkflowRuntime workflowRuntime;
//定义工作流实例
private WorkflowInstance workflowInstance; public Form1()
{
InitializeComponent(); //启动工作流运行时的容器
workflowRuntime = new WorkflowRuntime();
workflowRuntime.StartRuntime();
} private void button1_Click(object sender, EventArgs e)
{
//指定需要引用的工作流名称
Type type = typeof(WorkflowConsoleApplication1.Workflow1); //在工作流运行时Runtime容器中注册一个工作流实例
workflowInstance = workflowRuntime.CreateWorkflow(type); //启动该工作流实例
workflowInstance.Start();
}
}

  工作流的代码Console.Write()改为MessageBox.Show();

    private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
MessageBox.Show("Hello World -- 工作流启动了!");
}

  点击按钮,输出如下:

  

WWF3入门<第一篇>的更多相关文章

  1. ElasticSearch入门 第一篇:Windows下安装ElasticSearch

    这是ElasticSearch 2.4 版本系列的第一篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  2. Flink入门-第一篇:Flink基础概念以及竞品对比

    Flink入门-第一篇:Flink基础概念以及竞品对比 Flink介绍 截止2021年10月Flink最新的稳定版本已经发展到1.14.0 Flink起源于一个名为Stratosphere的研究项目主 ...

  3. Zookeeper 入门第一篇

    转载原文地址: ZooKeeper学习总结 第一篇:ZooKeeper快速入门 ZooKeeper学习总结 第二篇:ZooKeeper深入探讨 ZooKeeper学习第一期---Zookeeper简单 ...

  4. JavaMail入门第一篇 邮件简介及API概述

    现如今,电子邮件在我们的生活当中扮演着越来越重要的角色,我们每个人几乎都会与其打交道(至少时不时我们都会接收到莫名其妙的垃圾邮件),在工作中,使用邮件进行交流沟通,可以使我们的工作有迹可循,也显的较为 ...

  5. flask入门第一篇

    一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不 ...

  6. Android JNI入门第一篇——HelloJni

    android支持使用NDK开发C程序,关于配置NDK环境问题应该不用再赘述了,这个网上有很多,这里通过一篇实例来讲述简单的JNI开发,大家可以参考这篇文章(Get Your Eclipse-Inte ...

  7. NLP初试牛刀,NLTK入门第一篇

    之前下载过一个PDF,书名是<用python进行自然语言处理>,挺有意思的,加上NLP和机器学习目前大热,想趁着暑假涉猎一下.于是开始了入门NLP之旅. 安装环境:Ubuntu14.04桌 ...

  8. struts快速入门第一篇 —— struts相关XML配置映射及讲解

    我们回忆一下在学习JavaWeb过程中(Jsp + servlet编程)所感受到的Servlet的不足: 1 Servllet很多时,web.xml中的代码会很多.这样一来,维护起来就不方便,不利于团 ...

  9. AJAX入门第一篇就够了

    什么是Ajax Ajax(Asynchronous JavaScript and XML) 异步JavaScript和XML Ajax实际上是下面这几种技术的融合: (1)XHTML和CSS的基于标准 ...

随机推荐

  1. sql中count(*)和count(字段名)区别

    数据测试:见图 sql 语句见分晓: SELECT COUNT(*) c1 ,COUNT(ADDRESS) c2 FROM test 显而易见,count(*)统计的是结果集的总条数,count(字段 ...

  2. json字符串相关转换方法

    /** json转换为Map * @param jsonStr json * @return map集合 */ public static HashMap<String, String> ...

  3. HTML番外整理

    经过一周的个人项目与一周的团体项目,我学到了一些有用的内容,特分享如下: 一.视频 1.对在线视频的添加 在各大网站打开一个视频,在下方的分享找到HTML代码,然后复制HTML代码到自己的代码中. 2 ...

  4. nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

    启动nginx时报这个错 , 要么用root用户启动 , 要么在配置文件nginx.conf中将server下的listen端口改掉 , 因为在linux中端口号小于1024都是需要root权限的

  5. 使用JS对form的内容验证失败后阻止提交 &&js校验表单后提交表单的三种方法总结

    1.form的两个事件 submit,提交表单,如果直接调用该函数,则直接提交表单 onSubmit,提交按钮点击时先触发,然后触发submit事件.如果不加控制的话,默认返回true,因此表单总能提 ...

  6. 学习MongoDB--(11):应用举例(利用java操作MongoDB)

    原文地址:http://blog.csdn.net/drifterj/article/details/7948090 目录地址:http://blog.csdn.net/DrifterJ/articl ...

  7. iOS 版本更新检查

    #pragma mark ---------------------------------- #pragma mark -- 检测版本更新 -(void)onCheckVersion { NSDic ...

  8. Python深入03 对象的属性

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python一切皆对象(object),每个对象都可能有多个属性(attribut ...

  9. ubuntu 允许端口被连接

    iptables -I INPUT -p tcp --dport 3306 -j ACCEPT  推荐一个自己业余时间开发的网盘搜索引擎,360盘搜(www.360panso.com)

  10. android 定时执行一个任务

    1. timer = new Timer(true) TimerTask task =  new TimerTask(){ public void run(){ test(); } } timer.s ...