觉得这篇没什么好写的,帽子比较大,说浅了吧没什么东西,说深了又写不完,而且我刚刚研究也深入不到哪去(:-))。WF是一个可扩展的框架并且从下到上、在每个级别都针对可扩展性进行了设计。WF提供一个工作流引擎、一个 .NET 托管 API、运行库服务以及与 Microsoft Visual Studio 2008 集成的可视化设计器和调试器。可使用 Windows Workflow Foundation 来生成并执行同时跨越客户端和服务器的工作流,以及可在所有类型的 .NET 应用程序内部执行的工作流。在网上找了一张比较酷的WF框架图(源自InfoQ):
下面是简单介绍下各个部分:
WF Class Libraries and Framework:
就是WF的基础类库了。
工作流引擎:
表示工作流运行时引擎为工作流提供的可配置执行环境,在WF中由WorkflowRuntime类来完成。每个AppDomain只能建一个WorkflowRuntime实例,因为默认情况下一个应用程序就只有一个AppDomain,如果你的应用程序创建另一个附加的AppDomain那么你可以在创建一个WorkflowRuntime的实例。WorkflowRuntime在宿主中以自已独立的线程运行例,它可以加载多个工作流实例,每个工作流实例在WorkflowRuntime有独立的线程.
Runtime服务:
WF提供的服务主要有两种:core service和local service,core service是微软已经给我们提供好了的,比如持久化服务,跟踪服务等,core service是实现工作和宿主程序通信的所以也叫做数据交换服务,关于如何注册和使用core service和local service以后在说吧,这的东西还不少。
宿主环境:
工作流说白了就是一个程序集(DLL),那必须要有宿主环境,它的宿主环境可以是任何的应用程序,比如控制台的,Windows Form,ASP.NET等,下面的插图显示了如何在一个宿主应用程序的进程中同时承载工作流、活动和工作流运行时引擎(源自MSDN)。
工作流和活动:
工作流是一组存储为模型的名为活动的基本单元,活动用于描述实际进程。 工作流提供了一种方法,用于描述多项短期运行或长期运行的工作之间的执行顺序和依赖关系。 此工作从头到尾地贯穿模型,并且活动可以人工执行或由系统功能执行。在WF中工作流实例由WorkflowInstance来表示。
下面是在坚持学习WF(1):从HelloWorld开始中HelloWorld程序中的代码,将工作流宿主在控制台程序中。
{
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(HelloWorld.Workflow1));
instance.Start();
waitHandle.WaitOne();
Console.WriteLine("Press any key to exit");
Console.ReadLine();
}
这里主要说下WorkflowRuntime和WorkflowInstance的常用方法:
WorkflowRuntime
StartRuntime()方法:启动引擎。
StopRuntime()方法:停止引擎。
CreateWorkflow()方法:创建工作流实例。
它有一些与引擎状态相关的事件,比如上面代码中的WorkflowCompleted ,WorkflowTerminated 等等。
WorkflowInstance有一些对运行控制的方法Start,Abort,Resume,Terminate等等,这些都可以在MSDN找到,觉得列出来没有什么意义,它有一个InstanceId的属性是得到当前实例GUID,workflow实例使用GUID做为的统一标识。
最后WXWinter(冬)的http://www.cnblogs.com/foundation/archive/2006/09/27/516644.html这篇文章有个很好例子,推荐大家看下,可以很好的掌握WorkflowRuntime和WorkflowInstance的用法,就这些吧。
上一篇:坚持学习WF(2):WF创作模式和设计时工具
下一篇:坚持学习WF(4):活动(Activity)和依赖属性(DependencyProperty)
发表评论
-
平淡的2007
2007-12-24 08:04 783早上起来,送女朋友去公交车站,然后回来赶紧打开电脑,先 ... -
DreamSpark发布,高校学生免费使用Visual Studio 2008 Professional Edition 等微软软件
2008-02-20 13:23 1380今天上网无意中搜索到学生可以免费使用VS2008专业版,后来又 ... -
坚持学习WF(1):从HelloWorld开始
2008-04-04 16:30 849[置顶]坚持学习WF文章索 ... -
坚持学习WF(2):WF创作模式和设计时工具
2008-04-05 17:19 598[置顶]坚持学习WF文章索 ... -
坚持学习WF(4):活动(Activity)和依赖属性(DependencyProperty)
2008-04-12 00:01 1101[置顶]坚持学习WF文章索引 活动(Activity) 活动 ... -
坚持学习WF(5):自定义活动(CustomActivity)
2008-04-13 15:25 881当WF提供的标准活动不能满足我们的需求的时候,我们就需要定义自 ... -
MOSS点滴(1):如何开发和部署feature
2008-04-16 21:35 806Features 是MOSS 2007以开箱即用的一套新功能, ... -
MOSS点滴(2):自定义Application Page
2008-04-19 20:07 809在MOSS中后台管理的页面都是Application Pag ... -
坚持学习WF(6):开发可复用的宿主程序
2008-04-21 21:45 659我们之前写工作流宿主 ... -
MOSS点滴(3):说说MOSS中的母版页
2008-04-25 21:15 1134MOSS中有两种页面:Site P ... -
MOSS点滴(4):实现Form认证
2008-04-29 21:12 666本文主要参考了网上的一些文章,但有些文章有些地方说的不是很明确 ... -
坚持学习WF(7):流程控制(Flow Control)
2008-04-30 18:10 771本文主要说说WF中和流 ... -
坚持学习WF(8):本地服务之调用外部方法
2008-05-09 08:17 718WF提供了一组核心服务 ... -
MOSS中的WebPart开发
2008-05-10 13:53 1024由于在asp.net1.1的时候asp.net中还没有webp ... -
坚持学习WF(9):本地服务之事件处理
2008-05-28 07:49 763[置顶]坚持学习WF文章索引 一:先来介绍两个活动 Even ... -
坚持学习WF(10):在工作流中使用关联
2008-06-01 13:03 657[置顶]坚持学习WF文章索 ... -
坚持学习WF(11):工作流通信与队列
2008-06-07 15:45 691[置顶]坚持学习WF文章索引 WF 提供的通信模型是构建于 ... -
MOSS中创建自定义内容类型
2008-06-12 20:23 1068一:简要介绍 某类内容 ... -
.NET中IDisposable接口的基本使用
2008-06-15 12:01 908首先来看MSDN中关于这个接口的说明: [ComVisible ... -
坚持学习WF(12):使用EventHandlingScopeActivity活动
2008-06-18 22:46 639[置顶]坚持学习WF文章索引 EventHandlingSco ...
相关推荐
坚持学习WF(3):WF框架概览 2.3两篇主要全面的阐述了WF框架和Visual Studio对开发WF的一些设计时的工具。 坚持学习WF(4):活动(Activity)和依赖属性(DependencyProperty) 坚持学习WF(5):自定义活动...
坚持学习WF(3):WF框架概览 2.3两篇主要全面的阐述了WF框架和Visual Studio对开发WF的一些设计时的工具。 坚持学习WF(4):活动(Activity)和依赖属性(DependencyProperty) 坚持学习WF(5):自定义活动...
坚持学习WF(2):WF创作模式和设计时工具 坚持学习WF(3):WF框架概览 2.3两篇主要全面的阐述了WF框架和Visual Studio对开发WF的一些设计时的工具。 坚持学习WF(4):活动(Activity)和依赖属性(DependencyProperty) ...
坚持学习WF(1):从HelloWorld开始 源码
坚持学习WF(5):自定义活动(CustomActivity) 源码
CSLA .NET是一个.NET软件开发框架,帮助开发者“为Windows、Web、面向服务和工作流等应用构建强大和可维护的业务逻辑层”。 CSLA是Component-based, Scalable, Logical Architecture的简写,CSLA . NET是Rockford ...
基于ASP.NET的工作流批核系统(.NET 3.5框架的WF技术实现)
Beginning WF: Windows Workflow in .NET 4.0 By Mark Collins Publisher: Apress 2010 | 500 Pages | ISBN: 1430224851 | PDF | 4 MB Windows Workflow Foundation is a ground-breaking addition to the core ...
ProE_WF3_Mxxx_WF4_crk proe破解文件。
爱普生WF-7620 WF-7610 WF-7110 WF-3641等喷头更换视频教程。很详细的视频教程。
WF5803/WF100D驱动代码及资料,包含IIC、三线SPI、四线SPI驱动代码
wf框架编程(监控部分)学习以及分析里头有源代码位置
WF的全称是Windows Workflow Foundation,是微软在.NET 3.0之后推出的一套工作流开发框架。WF是微软在.NET 3.0上推出的三大框架(WPF和WCF及WF)之一,其主要目的在于为现有的.NET应用程序嵌入工作流应用,目前最新...
WF4.5+WCF示例WF4.5+WCF示例WF4.5+WCF示例WF4.5+WCF示例WF4.5+WCF示例
ProE_WF3_Mxxx_WF4_crk.rar
Windows Workflow Foundation (WF) is a revolutionary part of the .NET 4 Framework that allows you to orchestrate human and system interactions as a series of workflows that can be easily mapped, ...
爱普生wf7111w7620wf7621清零强力清洗软件,支持爱普生wf7111wf7621清零强力清洗软件, 实测wf7620也可以用,估计wf7610也能用
Chapter 3: Flowchart Workflow............................................................................33 Part 2: Designing Workflows ..................................................................
wince wf
WF40 实战:实现自动访问网站机器人.doc