WF4.0(1)---WorkFlow简介

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

工做流(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 中:java

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)是对工做流程及其各操做步骤之间业务规则的抽象、归纳描述。工做流建模,即将工做流程中的工做如何先后组织在一块儿的逻辑和规则,能够经过恰当的模型展示出业务的需求。工做流要解决的主要问题是:为实现某个业务目标,利用计算机在多个参与者之间按某种预约规则自动传递文档、信息或者任务。应用行业:消费品行业,制造业,电信服务业,银证险等金融服务业,物流服务业,物业服务业,物业管理,大中型进出口贸易公司,政府事业机构,研究院所及教育服务业等,特别是大的跨国企业和集团公司。(其余方面还有不少,就简单描述一下,详情可搜索之)ide

Demo

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

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

经过工做流的方面实现以上代码(VS2012):学习

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

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

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

     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能够本身玩下,有时间但愿本身能补上一些关于基础的博客.

相关文章
相关标签/搜索