一:程序集,命名空间,活动变化
WF4并非是在原有WF3.x上的改进,而是全新的开发有新的命名空间,程序集,原WF3的部分会继续保留这主要是为了兼容,下面的表格告诉你具体的变化:
1.程序集的变化
WF3.x程序集 | WF4程序集 |
System.Workflow.Activities.dll | System.Activities.dll |
System.Workflow.ComponentModel.dll | System.Activities.dll |
System.WorkflowServices.dll | System.ServiceModel.Activities.dll |
2.名空间的变化
WF3.x命名空间 | WF4命名空间 |
System.Workflow.Activities | System.Activities.Statements |
System.Workflow.ComponentModel | System.Activities |
System.WorkflowServices | System.ServiceModel.Activities |
3.活动的变化
WF3.x活动 | WF4活动 |
CallExternalMethodActivity | Send |
CancellationHandlerActivity | CancellationScope |
CodeActivity |
CodeActivity/NativeActivity |
CompensateActivity | Compensate |
CompensatableSequenceActivity | CompensableActivity |
ConditionedActivityGroup | 可通过其他方式实现 |
DelayActivity | Delay |
EventHandlingScopeActivity | 暂无 |
FaultHandlersActivity | TryCatch |
HandleExternalEventActivity | Receive |
IfElseActivity | If |
InvokeWebServiceActivity | Send |
InvokeWorkflowActivity | 暂无 |
ListenActivity | Pick |
ParallelActivity | Parallel |
PolicyActivity | 暂无 |
ReplicatorActivity | ForEach, ParallelForEach |
SendActivity | Send |
ReceiveActivity | Receive |
SequenceActivity, SequentialWorkflowActivity | Sequence |
StateMachineWorkflowActivity | 暂无 |
SuspendActivity | 无 |
SynchronizationScopeActivity | 无 |
TerminateActivity | 无 |
ThrowActivity | Throw |
TransactionScopeActivity | TransactionScope |
CompensatableTransactionScopeActivity | TransactionScope + CompensableActivity |
WebServiceFaultActivity | 整合为工作流服务 |
WebServiceInputActivity | 整合为工作流服务 |
WebServiceOutputActivity | 整合为工作流服务 |
WhileActivity | While |
二:自定义活动
1.活动基类继承关系:
2.WorkflowElement 是所有活动的基类,Activity,CodeActivity,DynamicActivity,NativeActivity活动均继承于该类,DynamicActivity是Sealed不能用于
自定义活动。
3.可以使用设计器方式来可视化的设计自定义活动,如下图:
4.使用代码的方式创建自定义活动,我们需要继承自CodeActivity和NativeActivity活动,这两个活动的区别是他们的Execute方法所带的上下文环境不同,
CodeActivity为CodeActivityContext,它只是一个简化版的上下文环境,对Runtime没有完全的访问权限,而NativeActivity的上下文环境
ActivityExecutionContext,ActivityExecutionContext支持scheduling,取消子活动的执行,持久化的支持,书签的支持等等对runtime有完全的访问权限。
5.CodeActivity和NativeActivity都有泛型版的,一般我们在创建需要返回值的活动时使用泛型版本,泛型版本的已经有一个OutArgument<TResult>的变量,
这个我们可以通过反编译WorkflowElement<TResult>看出,如下:
[TypeConverter(typeof(ValueExpressionConverter)), ValueSerializer(typeof(ValueExpressionValueSerializer))] public abstract class WorkflowElement<TResult> : WorkflowElement, IActivityWithResult { // Fields private OutArgument<TResult> result; // Methods internal WorkflowElement(); internal void ExecuteWithTryGetValue(ActivityContext context); public static WorkflowElement<TResult> FromValue(TResult constValue); public static WorkflowElement<TResult> FromVariable(Variable variable); public static WorkflowElement<TResult> FromVariable(Variable<TResult> variable); internal IList<RuntimeArgument> GetValueExpressionArguments(); public static implicit operator WorkflowElement<TResult>(Variable<TResult> variable); public static implicit operator WorkflowElement<TResult>(TResult constValue); public static implicit operator WorkflowElement<TResult>(Variable variable); internal virtual bool TryGetValue(LocationEnvironment environment, out TResult value); // Properties [DefaultValue((string) null)] public OutArgument<TResult> Result { get; set; } Type IActivityWithResult.ExpressionType { get; } OutArgument IActivityWithResult.Result { get; set; } }
6.与WF3.x中开发自定义活动不同的是在WF3中我们使用依赖属性来绑定数据,在WF4中我们使用In参数或Out参数及变量代替。另外在WF3.x中我们重写
Execute方法时需要返回ActivityExecutionState,WF4中不需要返回值,因为WF4的Runtime会自动判断,透明了。
相关文章:
WF4.0 Beta1之旅(1):基本介绍
WF4.0 Beta1之旅(2):异常处理
WF4.0 Beta1之旅(3):全新的FlowChart
WF4.0 Beta1之旅(4):Bookmark的使用
WF4.0 Beta1之旅(5):规则引擎的变化
发表评论
-
平淡的2007
2007-12-24 08:04 812早上起来,送女朋友去公交车站,然后回来赶紧打开电脑,先 ... -
DreamSpark发布,高校学生免费使用Visual Studio 2008 Professional Edition 等微软软件
2008-02-20 13:23 1409今天上网无意中搜索到学生可以免费使用VS2008专业版,后来又 ... -
坚持学习WF(1):从HelloWorld开始
2008-04-04 16:30 887[置顶]坚持学习WF文章索 ... -
坚持学习WF(2):WF创作模式和设计时工具
2008-04-05 17:19 633[置顶]坚持学习WF文章索 ... -
坚持学习WF(3):WF框架概览
2008-04-08 07:27 781[置顶]坚持学习WF文章索 ... -
坚持学习WF(4):活动(Activity)和依赖属性(DependencyProperty)
2008-04-12 00:01 1141[置顶]坚持学习WF文章索引 活动(Activity) 活动 ... -
坚持学习WF(5):自定义活动(CustomActivity)
2008-04-13 15:25 918当WF提供的标准活动不能满足我们的需求的时候,我们就需要定义自 ... -
MOSS点滴(1):如何开发和部署feature
2008-04-16 21:35 834Features 是MOSS 2007以开箱即用的一套新功能, ... -
MOSS点滴(2):自定义Application Page
2008-04-19 20:07 841在MOSS中后台管理的页面都是Application Pag ... -
坚持学习WF(6):开发可复用的宿主程序
2008-04-21 21:45 692我们之前写工作流宿主 ... -
MOSS点滴(3):说说MOSS中的母版页
2008-04-25 21:15 1176MOSS中有两种页面:Site P ... -
MOSS点滴(4):实现Form认证
2008-04-29 21:12 701本文主要参考了网上的一些文章,但有些文章有些地方说的不是很明确 ... -
坚持学习WF(7):流程控制(Flow Control)
2008-04-30 18:10 828本文主要说说WF中和流 ... -
坚持学习WF(8):本地服务之调用外部方法
2008-05-09 08:17 753WF提供了一组核心服务 ... -
MOSS中的WebPart开发
2008-05-10 13:53 1053由于在asp.net1.1的时候asp.net中还没有webp ... -
坚持学习WF(9):本地服务之事件处理
2008-05-28 07:49 792[置顶]坚持学习WF文章索引 一:先来介绍两个活动 Even ... -
坚持学习WF(10):在工作流中使用关联
2008-06-01 13:03 686[置顶]坚持学习WF文章索 ... -
坚持学习WF(11):工作流通信与队列
2008-06-07 15:45 729[置顶]坚持学习WF文章索引 WF 提供的通信模型是构建于 ... -
MOSS中创建自定义内容类型
2008-06-12 20:23 1098一:简要介绍 某类内容 ... -
.NET中IDisposable接口的基本使用
2008-06-15 12:01 943首先来看MSDN中关于这个接口的说明: [ComVisible ...
相关推荐
在这个“WF4.0 Beta1之旅(3)”中,我们将聚焦于FlowChart工作流模型的源码分析,这为我们提供了更深入理解WF4.0的工作方式和设计思想的机会。 FlowChart工作流模型是一种图形化的编程模型,它通过节点(如决策、...
2. **自定义活动**: 如果预定义的活动不能满足需求,你可以创建自定义活动,扩展WF4.0的功能。 3. **配置服务**: 如果工作流需要作为WCF服务运行,你需要配置相应的服务宿主和终结点。 4. **调试与测试**: 利用VS...
Activity Designer是WF 4.0中的一种可视化设计工具,用于创建和自定义工作流活动。 在"WF 4.0 and Activity Designer tidbits"的主题下,我们主要探讨的是如何利用WF 4.0的特性以及Activity Designer来提高工作效率...
1. **活动设计与使用**:实例代码可能会展示如何创建自定义活动,以及如何使用内置的活动库(如顺序流、选择流、并行流等)来构建复杂的工作流程。 2. **数据绑定与变量**:WF4.0支持数据绑定,使活动能够与外部...
活动库是WF4.0的一个重要概念,它允许开发人员创建可重用的自定义活动,以构建复杂的工作流逻辑。最后,工作流服务通过结合WF4.0和WCF(Windows Communication Foundation)技术,使得创建基于服务的工作流变得简单...
【Windows Server AppFabric 与 WF4.0 应用程序宿主】 Windows Server AppFabric 是微软推出的一个中间件平台,它提供了对分布式应用程序的支持,尤其是针对Windows Workflow Foundation (WF4.0) 和 WCF(Windows ...
1. **WF4.0基础知识**:了解WF4.0的核心概念,如活动、工作流实例、触发器、变量和数据绑定。 2. **状态机工作流**:掌握状态机工作流的结构和设计原则,包括初始状态、最终状态、状态转换和事件触发。 3. **...
AppFabric Hosting Services 则专注于简化WCF(Windows Communication Foundation)服务的管理和运行,尤其是与WF(Windows Workflow Foundation)服务配合的情况。它提供了一个框架,使得在AppFabric环境中托管和...
WF4.0(Windows Workflow Foundation 4.0)是微软.NET Framework 4.0中引入...通过理解活动的概念,熟悉XAML的流程描述,以及掌握如何创建和执行自定义活动,开发者可以利用WF4.0构建出灵活且易于维护的业务流程系统。
自定义活动是WF强大之处,因为它使得开发者能够扩展WF的功能,以满足独特的需求。 二、创建自定义活动 1. 创建类:首先,你需要创建一个继承自`System.Activities.Activity`的类。这个类将成为你的自定义活动的基础...
在这个“Windows Workflow Foundation开发实战系列课程(5):自定义活动开发”中,我们将深入探讨如何利用WF创建自定义活动,以满足特定业务需求。 1. 自定义活动概述: 自定义活动是WF的核心组成部分,它是工作流...
ASP.NET + WF4.0(Windows Workflow Foundation 4.0)数据持久化请假系统Demo是一个综合性的项目,展示了如何在Web应用中结合WF4.0技术处理业务流程,特别是请假申请这一具体场景。这个系统利用了ASP.NET作为前端...
自定义活动是WF4.0的核心特性之一。当内置的活动库无法满足特定需求时,开发者可以创建自己的活动。自定义活动可以通过继承自System.Activities.Activity类来实现,这个基类提供了执行逻辑的基础框架。你可以在...
1. **活动(Activity)**:这是WF 4.0的基本构建块,表示工作流中的一个操作或任务。可以是内置的简单动作,如赋值、条件判断,也可以是自定义的复杂逻辑。 2. **工作流(Workflow)**:由一系列活动组成,描述了...
4. **自定义活动**:开发者可以创建自己的活动,这些活动可以封装复杂的行为或者与其他系统进行交互,极大地扩展了WF4.0的功能。 5. **工作流服务**:WF4.0与WCF(Windows Communication Foundation)紧密集成,...
wf4.0应用asp.net 这个示例将包括WF4.0的大部分知识点。包括: 1、持久化服务 2、跟踪服务 3、自定义扩展 4、WCF Workflow Service 5、WorkflowServiceHost 6、使用Interop活动去调用WF3.0工作流程
1. **活动(Activities)**:WF4.0的核心元素是活动,它们代表了工作流中的操作或决策。活动可以是简单的原子操作,如赋值或条件判断,也可以是复杂的组合,将多个活动打包在一起。 2. **工作流设计(Workflow ...
1. **WF4.0基本概念**:理解活动(Activity)、工作流(Workflow)、执行宿主(Host)等核心概念。活动是工作流的基本构建块,它们组合起来形成复杂的工作流程。 2. **WPF(Windows Presentation Foundation)**:...
WF4.0(Windows Workflow Foundation 4.0)是微软.NET Framework 4.0中引入的一个强大工作流引擎,用于构建高度灵活、可扩展的工作流应用程序。它为开发者提供了丰富的功能,使得创建复杂的业务流程变得更为简单。WF...