编程编的越久就发现自己以前的语文真的没学好,写个随笔取个名字都需要思考半天,以前工作的时候只是听说过工作流,知道的范围仅限于工作流在OA审批流程中用的比较多,现在自己实实在在的用工作流也做过不少项目,对工作流的理解也比原来更深入一点,由于公司一直都是做工作流开发,所以自己在学习的过程中少走了不少的弯路,自己有的时候时候在网上寻找这方面的文章要么是零零碎碎的,要么就是各种Copy换名字去链接之类的文章,实在不敢恭维,先就自己对工作流的理解写点个人的建议。

工作流(WorkFlow)发展史

WF的全称是Windows Workflow Foundation,微软在2004年推出了一个WinFx CTP版的开发包,在WinFX中提供了三个内容: Avalon(阿瓦隆同音), Indigo(英迪格同音), WinOE(注意这里不是WinPE),05年的时候微软推出了WinFx  Beta1(VS2005 β2支持winFX开发的扩展),之后微软又推出了WinFx  Beta2,不过遗憾的在Beta2之后就没有了然后,WinFX在2006年以Net 3.0 的方式正式发布了在NET 3.0 中:

Avalon成为了Windows Presentation Foundation 简称为WPF;Indigo成为了 Windows Communication Foundation 简称为WCF;WinOE 成为了 Windows Workflow Foundation 简称为WWF,之后微软基于WPF推出了WFP/E, WFP/E就是Silverlight的前身.

先来看一个问题,为什么现在大家都说的是WF而不是WWF,首先WWF同名的太多了,其中比较著名的包括世界自然基金会(World Wild Fund for Nature),还有一个之前的世界摔跤联盟(World Wrestling Federation)不过在微软推出WWF之前就已经改名WWE(World Wrestling Entertainment),其次还有一个原因属于叠字的原因WWF,一个技术框架的简称这么念总是有点不好(有可能是我先入为主,个人推测).

工作流的功能

WPF,WCF,WWF(简称3W),这三个哥们一直在一起也不是没有道理的,微软当时想的是WPF(silverlight)用于程序UI的展现,WCF用于程序通信,WF用于程序的逻辑控制,这种思想在微软提出WinFX到现在的NET3.x再到NET4.0都得到了很好的体现。工作流(Workflow)是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则,可以通过恰当的模型展现出业务的需求。工作流要解决的主要问题是:为实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。应用行业:消费品行业,制造业,电信服务业,银证险等金融服务业,物流服务业,物业服务业,物业管理,大中型进出口贸易公司,政府事业机构,研究院所及教育服务业等,特别是大的跨国企业和集团公司。(其他方面还有很多,就简单描述一下,详情可搜索之)

Demo

首先我们来看一个简单的遍历字符串的代码:

            string[] strList = new string[3] { "sfm", "keso", "FlyElephant" };
foreach (var item in strList)
{
Console.WriteLine("Name:" + item);
}
Console.Read();

通过工作流的方面实现以上代码(VS2012):

1.首先新建一个控制台项目;

2.在项目右击添加新项:

3.新建一个集成自CodeActivity名为PersonNameActivity类:

     public sealed class PersonNameActivity : CodeActivity
{
public OutArgument<string[]> personName { get; set; }
protected override void Execute(CodeActivityContext context)
{
string[] strList = new string[3] { "sfm", "keso", "FlyElephant" };
context.SetValue(this.personName, strList);
}
}

4.重新生成一下解决方案,然后打开Foreach.xaml,从工具箱中拖一个Sequence过来,再将PersonNameActivity拖过来:

4.将PersonName的值赋值给list:,然后从工具箱控制流拖一个Foreach过来:

5.从基元中拖一个Writeline过来,设置输出

6.控制台调用:

 WorkflowInvoker.Invoke(new Foreach());

本来想写工作中用到的工作流的,不过发现公司那一趟要真的写起来还是挺费劲的,之前自己学习的时候也看过不少文章,有的理论的,有的是实战的,写的有点综合吧,这篇文章看起来很简单,不过没接触的过应该不算接触,其中Activity,变量和参数,Sequence可能都不是很了解,可能还不是很到位,这个小Demo可以自己玩下,有时间希望自己能补上一些关于基础的博客.

WF4.0(1)---WorkFlow简介的更多相关文章

  1. WF4.0 基础篇 (一)开始使用WF

    来源:https://www.cnblogs.com/caosenianhuan/p/WF.html 最近公司要重新上线一套新的CRM系统,要重整老系统里的业务流模块,团队讨论已微软的workflow ...

  2. 基于WF4.0的公文管理系统

    系统功能说明 公文管理 通过定义公文的基本信息,并将它按照工作流的定义流转实现公文的管理.包含以下功能: )公文创建:用户能够将格式化文本作为公文上传到系统中,并选择工作流启动流程. )公文审批:具有 ...

  3. 【转】WF4.0 (基础篇)

    转自:http://www.cnblogs.com/foundation/category/215023.html 作者:WXWinter  ——  兰竹菊梅★春夏秋冬☆ —— wxwinter@16 ...

  4. WF4.0(2)----设计工作流

    自从做了程序员,发现自己长胖了,而且自己的身体抵抗力也出了问题,最近身体不适,公司工作任务最近也很赶,上次写了WF4.0的简介,这次就工作中工作流设计的几种方式稍微总结一下.设计工作流包括四种方式:流 ...

  5. WF4.0 基础篇 (十八) Flowchar

    本节主要介绍WF4 中 Flowchart的使用 本文例子下载: http://files.cnblogs.com/foundation/FlowcharSample.rar 本文例子说明 Flowc ...

  6. 【转】WF4.0实战系列索引

    转自:http://www.cnblogs.com/zhuqil/archive/2010/07/05/wf4-in-action-index.html 此系列的工作流文件案例比较多点,实用性好. W ...

  7. WF4.0(3)----变量与参数

    已经写了两篇关于WF4.0的博客,算是基础博客,如果是WF比较熟悉就直接跳过吧,如果你对工作流不是很熟悉,或者想了解一下基础的东西,本文还是比较适合你的.工作流中变量,参数,表达式属于数据模型中概念, ...

  8. Apache Flume 1.7.0 各个模块简介

    Flume简介 Apache Flume是一个分布式.可靠.高可用的日志收集系统,支持各种各样的数据来源,如http,log文件,jms,监听端口数据等等,能将这些数据源的海量日志数据进行高效收集.聚 ...

  9. Git Workflow简介

    1. Git WorkFlow介绍 Git Flow是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践.Git Flow是一套使用Git进行源代码管理时的一套行为 ...

随机推荐

  1. [js]正则篇

    一.正则基本概念 1.一种规则.模式.文本处理工具 2.强大的字符串匹配工具 3.在js中常与字符串函数配合使用 二.js正则写法 正则在js中以正则对象存在: (1)var re=new RegEx ...

  2. SpringBoot常用配置

    前言:springboot集成了主流的第三方框架,但是需要使用springboot那一套配置方式.但是我这里只列举了非常非常常用的,可以看已发的几篇博客,慢慢会补充.当然官方文档里也有相应的配置,可惜 ...

  3. CodeForces 140C New Year Snowmen(堆)

    题面 CodeForces 题解 因为要保证两两不同,所以不能单纯的开堆来维护,堆维护一个二元组,个数为第一关键字,编号为第二关键字,对于一个相同的颜色,统计一下这个颜色的个数再用堆来维护就好了. # ...

  4. shell 规范

    代码风格规范 开头有“蛇棒” 所谓shebang其实就是在很多脚本的第一行出现的以”#!”开头的注释,他指明了当我们没有指定解释器的时候默认的解释器,一般可能是下面这样: #!/bin/bash 当然 ...

  5. MacBook Apache服务

    想着如何在Mac OS下部署静态网页(纯粹的html,css,js),用惯了windows下的iis,可惜Mac OS下也许只能通过Tomcat或者Apache之类的作为部署容器.听说Mac OS下自 ...

  6. 模型构建<1>:模型评估-分类问题

    对模型的评估是指对模型泛化能力的评估,主要通过具体的性能度量指标来完成.在对比不同模型的能力时,使用不同的性能度量指标可能会导致不同的评判结果,因此也就意味着,模型的好坏只是相对的,什么样的模型是较好 ...

  7. NOIP差不多可以退役的退役记录

    好吧,现在既然苟回来了,就来回忆一下我NOIP2017的黑历史吧. Day-1: 原本以为是很平静的一天,上午学考机房强行断网,原因是腾出网速给对面学考的同学们查资料用.好吧没法刷题我只能选择颓废…… ...

  8. 【20181031T2】几串字符【数位DP思想+组合数】

    题面 [错解] 一眼数位DP 设\(f(i,c00,c01,c10,c11)\)-- 神tm DP 哎好像每两位就一定对应c中的一个,那不用记完 所以可以设\(f(i,c00,c01,c10)\)-- ...

  9. C++各大名库

    C++各大名库的介绍之C++标准库 标准库中提供了C++程序的基本设施.虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被实 ...

  10. ssh 远程链接时出现错误提示:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

    ssh 远程链接时出现错误提示 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST I ...