`
terryfeng
  • 浏览: 507364 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WF (Windows Workflow Foundation) 工作流学习(二)一个Asp.Net 与 顺序工作流 结合的例子

阅读更多

程序下载地址:  http://files.cnblogs.com/TerryFeng/WF2.rar

建立一个空的解决方案,向其中加入一个顺序工作流类库和一个Asp.Net Web 应用程序项目,结果如下图

2009-04-13_143252

向asp.Net 程序中,添加引用,“WF”是工作流项目,如图

2009-04-13_143449

向Web.Config 中加入WF的注册(细节下载代码看一下)。

                    <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
                </sectionGroup>
            </sectionGroup>
        </sectionGroup>

        <!--WF注册服务-->
        <section name="WorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <!--技术WF注册服务-->

    </configSections>
    
    <!--WF注册服务-->

    <WorkflowRuntime Name="WorkflowServiceContainer">
        <Services>
            <add type="System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            <add type="System.Workflow.Activities.ExternalDataExchangeService, System.Workflow.Activities, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            
        </Services>
    </WorkflowRuntime>
    <!--结束注册服务-->


    <appSettings/>
    <connectionStrings/>

 

添加一个全局Global.asax 文件,添加如下代码

protected void Application_Start(object sender, EventArgs e)
       {
           
           WorkflowRuntime workflowRuntime = new WorkflowRuntime("WorkflowRuntime");
           workflowRuntime.StartRuntime();
           Application["WorkflowRuntime"] = workflowRuntime;


       }

       protected void Session_Start(object sender, EventArgs e)
       {
           WorkflowRuntime workflowRuntime = Application["WorkflowRuntime"] as WorkflowRuntime;
           workflowRuntime.StopRuntime();

       }

向Default.aspx中添加3个控件,Textbox,button,label  ,双击Button为其添加单击事件,并在default.aspx.cs 中添加如下代码

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Workflow.Runtime;
using System.Workflow.Runtime.Hosting;
using System.Workflow.ComponentModel;
using System.Workflow.Activities;
namespace AspNet
{
    public partial class _Default : System.Web.UI.Page
    {
        string Result = string.Empty;
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            StartWorkflow();
            Label1.Text = Result;
        }

        private void StartWorkflow()
        {
            WorkflowRuntime workflowRuntime = Application["WorkflowRuntime"] as WorkflowRuntime;


            ManualWorkflowSchedulerService scheduler = workflowRuntime.GetService(typeof(ManualWorkflowSchedulerService)) as ManualWorkflowSchedulerService;

            workflowRuntime.WorkflowCompleted += new EventHandler<WorkflowCompletedEventArgs>(workflowRuntime_WorkflowCompleted);

            Dictionary<String, Object> wfPara = new Dictionary<string, object>();

            wfPara.Add("Name", TextBox1.Text);

            WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(typeof(WF.Workflow1), wfPara);

            workflowInstance.Start();

            scheduler.RunWorkflow(workflowInstance.InstanceId);
        }

        void workflowRuntime_WorkflowCompleted(object sender, WorkflowCompletedEventArgs e)
        {
            if (e.OutputParameters.ContainsKey("Result"))
            {
                Result = (string)e.OutputParameters["Result"];
            }

        }

    }
}

好了,下面,在WF项目中的Workflow1,拖入一个Code控件,如下图

2009-04-13_144435

为CodeActivety1.添加事件代码,方法名字可以自己取,也可以用默认的,我这里用了一个Exefun的方法名,

2009-04-13_145052

代码如下

 

namespace WF
{
    public sealed partial class Workflow1 : SequentialWorkflowActivity
    {

        public string Name { get; set; }

        public string Result { get; set; }


        public Workflow1()
        {
            InitializeComponent();
        }

        private void ExeFun(object sender, EventArgs e)
        {
            Result = "你好:" + Name;
        }
    }

}

好了,编译一下程序,在TextBox中输入字符串,点击按钮看一下。

2009-04-13_144823

分享到:
评论

相关推荐

    ASP.NET与工作流WF实现审批流程+数据持久化Demo

    ASP.NET与工作流WF(Windows Workflow Foundation)的结合使用,为开发复杂的业务流程应用程序提供了强大的支持。在这个"ASP.NET与工作流WF实现审批流程+数据持久化Demo"中,我们将会探讨如何在ASP.NET环境中利用WF...

    基于ASP.NET的工作流批核系统(.NET 3.5框架的WF技术实现)

    3. Windows Workflow Foundation (WF):WF是.NET Framework 3.5中的一个关键组件,专门用于构建、执行和管理工作流。WF提供了一种声明式的方式来定义工作流,允许开发者专注于业务逻辑,而不是底层实现。在本批核...

    在asp.net下用WF开发的工作流实例

    在ASP.NET环境下,结合Windows Workflow Foundation (WF) 框架,可以构建灵活、可扩展的工作流解决方案。本实例将探讨如何在ASP.NET中使用WF进行工作流开发。 首先,Windows Workflow Foundation是.NET Framework的...

    asp.net工作流 基于wf

    ASP.NET工作流(WF,Windows Workflow Foundation)是微软.NET Framework的一部分,它提供了一种用于构建业务流程和工作流应用程序的强大框架。在ASP.NET环境中结合WF,可以创建动态、灵活且可扩展的Web应用程序,...

    ASP.NET 工作流实际例子

    在ASP.NET中,工作流主要由Windows Workflow Foundation (WF)提供支持,它是.NET Framework的一部分,用于构建长期运行的、可托管的工作流程。WF提供了设计、执行、管理和跟踪工作流程的全套工具和服务。 首先,让...

    Programming Windows Workflow Foundation

    《Programming Windows Workflow Foundation》这本书是关于微软的Windows Workflow Foundation (WF) 框架的深入指南,该框架是.NET Framework的重要组成部分,用于构建业务流程和工作流应用。WF允许开发者以声明式...

    ASP.NET WF的例子

    ASP.NET WF,全称是ASP.NET Workflow Foundation,是.NET Framework的一部分,用于构建和执行工作流应用程序。这个例子展示了如何在ASP.NET环境中结合WF来创建一个简单的订单系统,使用了状态机工作流模型来管理订单...

    工作流,Asp.net

    通过学习和实践这个“工作流实例,Asp.net”,开发者不仅能掌握如何在Asp.NET环境中实现工作流,还能深入了解如何将工作流技术与实际业务场景相结合,提升系统的灵活性和可维护性。同时,对数据库设计、用户交互以及...

    基于ASP.NET的工作流批核系统

    基于ASP.NET构建的工作流批核系统利用了微软的.NET Framework 3.5中的Windows Workflow Foundation (WF) 技术,这是一个强大的工具,用于创建、执行和管理长期运行的工作流程。下面将详细阐述ASP.NET、工作流批核...

    工作流 asp.net源码

    工作流ASP.NET源码是一个基于C#编程语言的软件开发资源,主要针对Web应用程序的开发。在ASP.NET框架下,工作流技术可以帮助开发者构建复杂的业务流程应用,它允许定义、执行和管理这些流程,使系统能够按照预定的...

    工作流vml asp.net 开发的工作流模型

    3. **ASP.NET工作流开发**:ASP.NET框架提供了.NET Framework的Windows Workflow Foundation(WF),这是一个强大的工作流引擎,可以与ASP.NET Web应用程序集成。开发者可以使用WF来创建、执行和管理工作流实例,...

    基于ASP.NET的工作流系统

    【基于ASP.NET的工作流系统】是一种利用微软的ASP.NET技术和工作流基础架构(Windows Workflow Foundation,简称WF)来设计和实现的业务流程自动化系统。在.NET Framework 3.5版本中,WF提供了强大的工作流支持,...

    Essential Windows Workflow Foundation

    《Essential Windows Workflow Foundation》是Addison-Wesley出版社在2006年10月出版的一本关于Windows Workflow Foundation(WF)的指南。这本书详细介绍了WF这一微软开发的用于构建工作流应用的核心技术,旨在帮助...

    Microsoft Windows Workflow Foundation 4.0 Cookbook翻译

    通过《Microsoft Windows Workflow Foundation 4.0 Cookbook翻译》,读者可以学习如何有效地利用WF 4.0构建高效、灵活且易于维护的工作流解决方案,无论是简单的审批流程还是复杂的业务流程自动化,WF 4.0都能提供...

    基于ASP_NET的工作流批核系统_工作流_批核_asp.net_

    本文将深入探讨ASP.NET平台下如何构建一个工作流批核系统,特别是利用.NET 3.5框架中的Windows Workflow Foundation (WF) 技术。 一、ASP.NET基础 ASP.NET是Microsoft开发的一个强大的Web应用程序框架,用于构建...

Global site tag (gtag.js) - Google Analytics