Windows Workflow Foundation学习笔记(二)

来源:互联网 发布:php无限分类原理 编辑:程序博客网 时间:2024/05/16 04:50

上一次我们介绍了工作的定义及其应用范围.是我们对工作流有了一个初步的认识,有了上一次的的基础知识我们就可以开始工作流真正的学习了!

首先我们来介绍一下工作流的开发环境,当然我这里讲的开发环境都是微软平台上的(^-^)!应为我主要是再微软平台上做开发的,呵呵....好了,要创建我们的第一个工作流,我们需要安装部署一下我们的开发环境,首先我们需要安装以下环境:

1.Microsoft Visual Studio 2005

2.dotnet framwork 3.0.

3.Visual Studio 2005 Extensions for Windows Workflow Foundation (CHS).exe

安装完以上3个东东,我们的开发环境就是算是部署好了.哈哈....终于可以开发工作流了.是不是很兴奋呢!讲点话外题,微软的技术更新实在是太快了,2.0都还没怎么搞懂,3.0又来了,这不听说最近有出了vs2007了.诶....

本来说先讲一下工作流的机制问题的,算了还是先给个例子大家看了例子我们在来讨论机制的问题吧,我想这样可能方便大家理解些.

好了废话少说,现在就开始我们的工作流之旅吧!

第一步:打开我们的Microsoft Visual Studio 2005新建项目,我们会看见如下图的界面,这时我们会发现再Visual C#节点下面多了一个workflow

如图所示,我们可以看见工作流给出了6个模板,但是他们主要就是分作两类,顺序工作流和状态机2种,在这儿我们先不讨论什么是顺序工作流,什么是状态机.应为我想我在这儿给大家讲了,大家的理解也不会很深,等我们有了初步认识后,在回过头来看这个问题岂不是很简单么.(^-^)至少本人是这么认为的.

第2步:选择一个控制台程序HelloWordMyWorkflow点击确定:

  

在我们的解决方案资源管理器,我们可以看见,vs2005已经给我们自动生成了2个.cs文件.其中一个是我们设计用的,另一个就是main函数所在,也就是工作流启动必备文件.

 

现在我们来看看微软为我们提供的内置的一些基本的工具,通过这些基本的工具组件,我们可以设计出功能非常强的工作流来,怎么样是不是很牛!!

这些控件都是些基本的,在网上到处都有介绍的,我先就不一一介绍了,我们还是通过例子来说话吧.

从工具栏种拽一个Code到我们的设计区域上.我们的界面就部署好了,是不是很简单呢.

也许细心的朋友回发现,怎么控件右上方会有个红色的小叹号啊,不忙,我们这就解决它,让他消失,呵呵....

这个叹号其实是一个指示,他告诉我们,该控件必须要有一个与之绑定的代码段,我们双击后,就会自动生成一个代码段

private void codeActivity1_ExecuteCode_1(object sender, EventArgs e)

        
{

           

        }


在其中就输入Console.WriteLine("hello word");,到此为止,我们的工作流就算完成了,不忙,为了能看见效果,我们还需要再一个地方添加点代码.双击我们program文件,我们会看见如下代码:

Using directives

 

namespace HelloWordMyWorkflow

{

    
class Program

    
{

        
static void Main(string[] args)

        
{

            
using(WorkflowRuntime workflowRuntime = new WorkflowRuntime())

            
{

                AutoResetEvent waitHandle 
= new AutoResetEvent(false);

                workflowRuntime.WorkflowCompleted 
+= delegate(object sender, WorkflowCompletedEventArgs e) {waitHandle.Set();};

                workflowRuntime.WorkflowTerminated 
+= delegate(object sender, WorkflowTerminatedEventArgs e)

                
{

                    Console.WriteLine(e.Exception.Message);

                    waitHandle.Set();

                }
;

                WorkflowInstance instance 
= workflowRuntime.CreateWorkflow(typeof(HelloWordMyWorkflow.Workflow1));

                instance.Start();
                waitHandle.WaitOne();

            }


        }


    }


}


yo

这儿就是我们的工作流的核心所在了,我们在waitHandle.WaitOne();后面添加以下2行代码就可以看见我们工作流的效果了.

Console.WriteLine("Press Any key to exit!!");

                Console.ReadLine();

这时点击debug运行我们的工作流就可以看见如下效果了:

 

到此为止我们的第一个工作流就算大功告成了,怎么样是不是很简单啊!

这儿我只是给出一个简单的例子把大家带入工作流.

好了先写到这儿了!

 

原创粉丝点击