logo资料库

WF高级程序设计3.5(中文).pdf

第1页 / 共717页
第2页 / 共717页
第3页 / 共717页
第4页 / 共717页
第5页 / 共717页
第6页 / 共717页
第7页 / 共717页
第8页 / 共717页
资料共717页,剩余部分请下载后查看
封面
书名
版权
前言
目录
第1章 WF快速入门
1.1 为什么需要工作流
1.1.1 工作流各不相同
1.1.2 为什么选择WF
1.2 开发环境
1.3 Hello Workflow
1.3.1 创建工作流项目
1.3.2 工作流设计器
1.3.3 使用工作流活动
1.3.4 输入代码
1.3.5 承载工作流运行时
1.3.6 运行应用程序
1.4 传递参数
1.4.1 声明属性
1.4.2 在运行时中传递值
1.5 作出决策
1.5.1 创建工作流库
1.5.2 添加工作流属性
1.5.3 添加IfElse活动
1.5.4 添加计算逻辑
1.5.5 创建计算器客户端
1.5.6 测试和调试计算器
1.6 小结
第2章 基础结构概述
2.1 工作流类型
2.1.1 顺序工作流
2.1.2 状态机工作流
2.1.3 选择工作流类型
2.2 基础结构交付项
2.2.1 类库和基础结构
2.2.2 运行时引擎
2.2.3 运行时服务
2.2.4 设计时工具
2.2.5 NET 2.0运行时
2.3 运行时环境
2.3.1 应用程序宿主进程
2.3.2 运行时引擎
2.3.3 已注册的核心服务
2.3.4 已注册的本地服务
2.3.5 工作流实例
2.4 设计时环境
2.4.1 工作流创作模式
2.4.2 项目模板
2.4.3 工作流设计器
2.4.4 活动设计器
2.4.5 规则条件编辑器
2.4.6 Ruleset编辑器
2.4.7 工作流调试器
2.4.8 命令行工作流编译器
2.4.9 命令行通信活动生成器
2.5 小结
第3章 活动
3.1 理解活动
3.1.1 活动的两个访问者
3.1.2 类层次结构
3.2 探讨标准活动
3.2.1 自定义工作流逻辑
3.2.2 流控制
3.2.3 状态管理
3.2.4 事件处理
3.2.5 本地服务通信
3.2.6 规则
3.2.7 Web服务
3.2.8 工作流服务
3.2.9 事务、补偿和同步
3.2.10 异常和错误处理
3.3 标准活动摘要
3.4 添加工作流逻辑
3.5 使用CodeActivity
3.5.1 创建项目
3.5.2 定义工作流参数
3.5.3 验证账户
3.5.4 验证产品
3.5.5 录入订单
3.5.6 运行工作流
3.5.7 总结此方法
3.6 开发自定义活动
3.6.1 为什么使用自定义活动
3.6.2 两种访问者的设计
3.6.3 创建项目
3.6.4 实现账户验证活动
3.6.5 实现产品验证活动
3.6.6 实现订单录入活动
3.6.7 定义工作流参数
3.6.8 定义工作流
3.6.9 运行工作流
3.6.10 总结此方法
3.7 增强设计体验
3.7.1 验证活动
3.7.2 自定义工具箱行为
3.7.3 自定义设计器
3.8 小结
第4章 承载工作流运行时
4.1 承载概述
4.2 简单的工作流承载
4.2.1 实现测试工作流
4.2.2 实现简单宿主应用程序
4.3 改进的工作流承载
4.3.1 实现工作流实例包装
4.3.2 实现工作流管理器类
4.3.3 承载工作流管理器
4.3.4 通过App.config配置运行时
4.4 控制工作流实例
4.5 同步的工作流执行
4.6 小结
第5章 流控制
5.1 条件类型
5.2 使用IfElseActivity
5.2.1 使用代码条件的IfElseActivity
5.2.2 使用规则条件的IfElseActivity
5.3 使用WhileActivity
5.3.1 实现工作流
5.3.2 测试工作流
5.4 使用ParallelActivity
5.4.1 实现工作流
5.4.2 测试工作流
5.4.3 添加DelayActivity
5.5 使用ReplicatorActivity
5.5.1 实现顺序工作流
5.5.2 测试顺序工作流
5.5.3 实现并行工作流
5.5.4 测试并行工作流
5.5.5 使用ReplicatorActivity事件
5.5.6 中断执行
5.6 使用ConditionedActivityGroup
5.6.1 实现工作流
5.6.2 测试工作流
5.7 使用InvokeWorkflowActivity
5.8 使用TerminateActivity
5.9 使用SuspendActivity
5.10 小结
第6章 本地服务
6.1 了解本地服务
6.1.1 实现本地服务
6.1.2 使用本地服务
6.2 实现并使用本地服务
6.2.1 实现账户类
6.2.2 声明服务约定
6.2.3 实现本地服务类
6.2.4 实现工作流
6.2.5 测试工作流
6.3 从App.config加载
6.4 使用自定义活动
6.4.1 实现自定义活动
6.4.2 修改工作流
6.4.3 测试工作流
6.5 使用CallExternalMethodActivity
6.5.1 实现工作流
6.5.2 测试工作流
6.6 小结
第7章 事件驱动活动
7.1 使用事件驱动活动
7.2 使用HandleExternalEventActivity
7.2.1 创建项目
7.2.2 实现事件参数类
7.2.3 定义服务接口
7.2.4 实现本地服务
7.2.5 实现工作流
7.2.6 实现宿主应用程序
7.2.7 测试工作流
7.3 生成通信活动
7.3.1 生成活动
7.3.2 修改工作流
7.4 手动控制关联
7.4.1 实现事件参数类
7.4.2 定义服务接口
7.4.3 实现本地服务
7.4.4 实现工作流
7.4.5 测试工作流
7.5 使用EventHandlingScopeActivity
7.5.1 定义服务接口
7.5.2 实现本地服务
7.5.3 实现工作流
7.5.4 测试工作流
7.6 开发自定义事件驱动活动
7.6.1 了解工作流队列
7.6.2 事件驱动活动的需求
7.6.3 实现ProcessGuessActivity
7.6.4 实现SendHintActivity
7.6.5 修改工作流
7.6.6 修改宿主应用程序
7.6.7 测试工作流
7.7 小结
第8章 工作流持久性
8.1 了解持久性
8.1.1 持久化工作流的原因
8.1.2 持久性概述
8.2 使用SqlWorkflowPersistenceService
8.2.1 为持久性准备数据库
8.2.2 实现本地服务
8.2.3 实现工作流
8.2.4 实现宿主应用程序
8.2.5 测试应用程序
8.3 实现自定义持久性服务
8.3.1 了解抽象方法
8.3.2 实现服务
8.3.3 测试自定义服务
8.4 小结
第9章 状态机工作流
9.1 了解状态机
9.1.1 为什么需要状态机工作流
9.1.2 状态机概述
9.2 实现状态机工作流
9.2.1 设计CarStateMachine
9.2.2 定义本地服务接口
9.2.3 实现本地服务
9.2.4 实现工作流
9.2.5 实现宿主应用程序
9.2.6 测试应用程序
9.3 消除重复的事件处理程序
9.3.1 重构CarWorkflow
9.3.2 测试修改后的工作流
9.4 标识现有事件
9.4.1 询问工作流队列
9.4.2 修改CarStateMachine
9.4.3 测试应用程序
9.5 访问工作流运行时信息
9.5.1 修改CarStateMachine
9.5.2 测试应用程序
9.6 小结
第10章 事务和补偿
10.1 事务
10.1.1 事务的方式
10.1.2 WF对事务的支持
10.2 使用TransactionScopeActivity
10.2.1 实现AccountAdjustment-Activity
10.2.2 实现AccountTransfer-Workflow
10.2.3 测试工作流
10.3 了解补偿
10.4 使用可补偿活动
10.4.1 实现InventoryUpdate-Activity
10.4.2 实现OrderDetailActivity
10.4.3 实现OrderEntryWorkflow
10.4.4 测试工作流
10.5 参与工作批次
10.6 使用IPendingWork接口
10.6.1 实现本地服务
10.6.2 实现BatchedWorkWorkflow
10.6.3 测试工作流
10.7 小结
第11章 工作流规则
11.1 了解工作流规则
11.1.1 规则的组成
11.1.2 使用规则的原因
11.2 在WF中使用规则
11.2.1 定义规则
11.2.2 定义规则集
11.2.3 使用特性来标识依赖项
11.3 使用PolicyActivity来定义规则
11.3.1 实现SalesItem类
11.3.2 声明规则
11.3.3 测试工作流
11.4 跟踪规则
11.5 调整规则顺序
11.5.1 设置规则优先级
11.5.2 测试工作流
11.6 在规则中使用方法
11.6.1 添加操作方法
11.6.2 在规则集中使用方法
11.6.3 标识间接关系
11.7 在代码中执行规则集
11.7.1 实现SellItemSerialized-Workflow
11.7.2 测试工作流
11.8 在代码中构造规则集
11.8.1 实现SellItemInCode-Workflow
11.8.2 测试工作流
11.9 小结
第12章 异常和错误处理
12.1 理解工作流异常处理
12.2 探讨默认行为
12.2.1 实现ExceptionWorkflow
12.2.2 测试工作流
12.3 使用FaultHandlerActivity
12.3.1 处理ArithmeticException
12.3.2 处理DivideByZeroException
12.4 抑制异常
12.5 重新抛出异常
12.6 补偿和异常
12.6.1 实现CompensateWorkflow
12.6.2 测试工作流
12.7 使用CancellationHandlerActivity
12.7.1 实现CancelHandler-Workflow
12.7.2 测试工作流
12.8 小结
第13章 高级自定义活动
13.1 开发专用的复合活动
13.1.1 开发自定义活动
13.1.2 开发工作流
13.1.3 测试活动
13.2 开发通用的复合活动
13.2.1 了解活动执行计划
13.2.2 复合活动的执行模式
13.2.3 实现顺序活动
13.2.4 实现测试工作流
13.2.5 测试顺序活动
13.3 开发优先级顺序活动
13.3.1 实现优先级顺序活动
13.3.2 实现扩展提供程序
13.3.3 实现自定义设计器
13.3.4 实现测试工作流
13.3.5 测试优先级顺序活动
13.4 开发长时间运行的活动
13.4.1 实现本地服务
13.4.2 实现自定义活动
13.4.3 实现测试工作流
13.4.4 测试长时间运行的活动流
13.5 小结
第14章 动态工作流更新
14.1 了解动态更新
14.1.1 使用动态更新的原因
14.1.2 应用动态更新
14.1.3 防止动态更新
14.2 从宿主应用程序中应用更新
14.2.1 实现DynamicWorkflow
14.2.2 实现自定义活动
14.2.3 实现宿主应用程序
14.2.4 测试工作流
14.3 限制动态更新
14.4 从工作流中应用更新
14.4.1 实现SelfUpdatingWorkflow
14.4.2 实现宿主应用程序
14.4.3 测试工作流
14.5 更新规则条件
14.5.1 实现DynamicCondition-Workflow
14.5.2 实现宿主应用程序
14.5.3 测试工作流
14.6 替换规则条件
14.6.1 修改RuleDefinitions
14.6.2 修改宿主应用程序
14.6.3 测试修改后的应用程序
14.7 小结
第15章 工作流跟踪
15.1 了解工作流跟踪
15.1.1 跟踪服务
15.1.2 跟踪事件类型
15.1.3 自定义跟踪配置
15.1.4 使用跟踪数据
15.1.5 受益于工作流跟踪
15.2 使用SqlTrackingService
15.2.1 准备跟踪SQL数据库
15.2.2 开发测试工作流
15.2.3 开发宿主应用程序
15.2.4 执行宿主应用程序
15.2.5 获取跟踪数据
15.3 创建用户跟踪点
15.3.1 增强TrackingExample-Workflow
15.3.2 测试修改后的工作流
15.4 跟踪规则计算
15.4.1 实现TrackingRules-Workflow
15.4.2 测试工作流
15.5 使用自定义跟踪配置提取数据
15.5.1 使用跟踪配置
15.5.2 实现TrackingProfile-Helper
15.5.3 创建跟踪配置
15.5.4 测试跟踪配置
15.6 维护SQL跟踪数据库
15.6.1 分区
15.6.2 设置分区间隔时间
15.6.3 自动或手动分区
15.6.4 访问分区数据
15.6.5 分离或删除分区
15.7 开发跟踪服务
15.7.1 实现跟踪通道
15.7.2 实现跟踪服务
15.7.3 测试自定义跟踪服务
15.8 小结
第16章 Web服务和ASP.NET
16.1 将工作流发布为Web服务
16.1.1 了解Web服务活动
16.1.2 发布和配置
16.2 开发Web服务工作流
16.2.1 定义Web服务接口
16.2.2 定义MathServiceWorkflow
16.2.3 发布工作流
16.2.4 测试工作流
16.3 返回Web服务错误
16.3.1 修改MathServiceWorkflow
16.3.2 测试修改后的Web服务
16.4 开发状态化的Web服务
16.4.1 定义Web服务接口
16.4.2 实现MathServiceState-fulWorkflow
16.4.3 发布新工作流
16.4.4 测试Web服务
16.5 在工作流中调用Web服务
16.5.1 实现InvokeWebService-Workflow
16.5.2 测试工作流
16.6 在ASP.NET中使用工作流
16.6.1 实现DivideNumberWorkflow
16.6.2 实现UseWorkflowWebsite
16.6.3 测试工作流
16.7 小结
第17章 工作流服务和WCF集成
17.1 了解WCF
17.1.1 定义服务约定
17.1.2 配置终结点和绑定
17.1.3 承载和配置
17.2 了解工作流服务
17.2.1 使用ReceiveActivity
17.2.2 使用SendActivity
17.2.3 承载和配置
17.2.4 实例化和上下文管理
17.3 开发无状态的工作流服务
17.3.1 定义服务约定
17.3.2 实现工作流
17.3.3 配置工作流服务
17.3.4 测试工作流服务
17.4 IIS承载和客户端开发
17.4.1 创建IIS虚拟目录
17.4.2 创建.svc文件
17.4.3 配置Web.config文件
17.4.4 部署服务
17.4.5 开发客户端应用程序
17.5 自承载的工作流服务
17.5.1 开发服务宿主
17.5.2 配置服务宿主
17.5.3 更改客户端应用程序
17.5.4 测试服务宿主
17.6 定义工作流优先的服务
17.7 开发状态化的工作流服务
17.7.1 定义服务约定
17.7.2 实现工作流
17.7.3 在IIS中承载工作流服务
17.7.4 开发客户端应用程序
17.7.5 测试工作流服务
17.8 使用SendActivity
17.8.1 实现工作流
17.8.2 开发客户端应用程序
17.8.3 测试工作流
17.9 上下文和对话
17.9.1 定义服务约定
17.9.2 实现库存工作流
17.9.3 实现库存宿主
17.9.4 实现客户端工作流
17.9.5 实现客户端宿主
17.9.6 测试应用程序
17.10 小结
第18章 工作流序列化和标记
18.1 了解工作流创作模式
18.1.1 仅限代码创作模式
18.1.2 代码分离创作模式
18.1.3 无代码创作模式
18.2 开发仅限代码工作流
18.2.1 实现工作流
18.2.2 测试工作流
18.2.3 查看生成的代码
18.3 开发代码分离工作流
18.3.1 实现工作流
18.3.2 测试工作流
18.3.3 查看标记
18.4 开发无代码工作流
18.4.1 实现工作流基类
18.4.2 实现自定义活动
18.4.3 定义工作流标记
18.4.4 增强WorkflowRuntime-Manager
18.4.5 测试工作流
18.5 在无代码工作流中使用规则
18.5.1 定义规则条件
18.5.2 修改工作流标记
18.5.3 测试工作流
18.6 序列化到标记
18.7 编译工作流
18.8 编译包含规则的工作流
18.9 在命令行中编译
18.10 反序列化标记
18.11 小结
第19章 承载工作流设计器
19.1 工作流设计器
19.1.1 设计器命名空间
19.1.2 设计器类
19.1.3 设计器服务
19.2 构建设计器应用程序
19.2.1 创建设计器项目
19.2.2 实现WorkflowLoader
19.2.3 实现WorkflowMenuService
19.2.4 实现WorkflowEvent-BindingService
19.2.5 实现EventProperty-Descriptor
19.2.6 实现WorkflowProperty-ValueService
19.2.7 实现WorkflowToolbox-Service
19.2.8 实现WorkflowDesigner
19.2.9 实现MainForm
19.2.10 实现AssemblyReference-Form
19.2.11 实现NewWorkflowForm
19.3 使用设计器
19.4 小结
分享到:
收藏