摘要:
《WF编程》系列之37 - 打开黑盒子:属性升级 组合活动就像一个黑盒子,工作流设计器无法获取这个黑盒子内部的属性和事件,除非我们把这些属性和事件曝露给外部世界.属性升级(Property promotion)允许组合活动的设计者去决定属性对于外部世界的可见性. 5.3.1.1 属性升级 (PROPERTY PROMOTION) 属性升级会在父活动属性和子活动属性之间建立连接.我们可以这样去理... 阅读全文
摘要:
《WF编程》系列之36 - 自定义活动:如何创建自定义活动?活动的组合 5.2 如何创建自定义活动? 有两种方式可以创建自定义活动,即通过组合的方式和使用继承的方式. 组合是一种简单的创建工作流的方式.我们在设计器中拖拽并配置活动的属性,然后把这个自定义活动封装成一个程序集,这样就可以供其它工作流项目使用了.这种方式的优点是快速并且简单. 使用继承的方式来创建自定义活动,我们需要编写一个类,... 阅读全文
摘要:
《WF编程》系列之35 - 自定义活动:为何创建自定义活动? 5 自定义活动 使用通用的framework来开发软件虽然轻松,但却不够高效.我们每天都会遇到一些问题,只有使用专门面向这些问题的framework来开发软件才是真正的轻松并且高效.通过自定义活动,我们可以为这些日常问题量身打造工作流.自定义活动可以用来解决特定业务领域的问题,譬如,医疗软件中化验病人的血液样本的过程;我们也可以为... 阅读全文
摘要:
《WF编程》系列之34 - 基本活动:状态活动 到目前为止,我们所讨论的工作流都是顺序工作流,而WF还支持另外一种工作流机制-状态机(State-Machine)工作流,本节就来介绍这些在状态机工作流中工作的活动. 一个状态机是由一系列状态(State)组成的.譬如,用来模拟软件bug跟踪的状态机工作流也许会包含以下四个状态:开启,分配,关闭和延期,工作流总是处于其中一个状态中.状态机的执行完... 阅读全文
摘要:
《WF编程》系列之33 - 基本活动:Web Services 4.6 Web Services 今时今日,一个完善的软件无可避免的需要发送或接受SOAP请求,WF也包含了一些围绕Web Services的客户端或者服务器端的活动. 4.6.1 InvokeWebServiceActivity InvokeWebService活动用来调用一个外部Web Service.当我们把这个活动添加到... 阅读全文
摘要:
《WF编程》系列之32 - 基本活动:条件与规则 4.5 条件与规则 WF中关于条件和规则的活动有两个: ConditionedActivityGroup(CAG) 活动和Policy活动.虽然我们也把CAG视作控制流的活动,但事实上CAG更加侧重于对条件和规则的控制. 4.5.1 ConditionedActivityGroup CAG是一个强大的活动,它可以结合规则和代码来达到目的.C... 阅读全文
摘要:
《WF编程》系列之31 - 基本活动:事务(Transactions)与补偿(Compensation) 4.4 事务(Transactions)与补偿(Compensation) 在WF中,事务也遵从ACID(Atomic,原子性;Consistent,一致性;Isolated,不相关性;Durable,持久性)理论.也就是说,WF Runtime也会用到System.Transactio... 阅读全文
摘要:
《WF编程》系列之30 - 基本活动:错误处理 4.3 错误处理 Fault,故障,现在官方已经将其翻译为错误,那么以后的随笔中我也就采用官方的翻译吧. 错误处理也属于流程控制的一部分,这一节我来介绍一下有关错误处理的活动.错误是指在工作流执行期间发生的异常.我们可以使用错误处理程序来捕捉这些异常并尝试做一些”修复”工作.我们可以补偿提交的事务,或者发送Email来警告管理员并等待丢失的... 阅读全文
摘要:
《WF编程》系列之29 - 本地通信事件:HandleExternalEventActivity & 活动生成器 4.2.2 HandleExternalEventActivity 像CallExternalMethod活动一样,HandleExternalEvent活动也有一个必须设置的InterfaceType属性.当我设置这个属性之后,我们就可以设置EventName属性了: 如果... 阅读全文
摘要:
《WF编程》系列之28 - 本地通信事件:CallExternalMethodActivity 4.2 本地通信事件 让工作流和外部世界进行交互也并不是什么难事,因为WF本身就内置了一些活动来完成这样的工作. 这一节我们来讨论一下可以和宿主进程提供的本地服务进行通信的活动们 为了能让本地通信可以工作,我们需要以.NET接口的形式定义一个合同.在这个接口中会包含一些方法和事件,工作流可以... 阅读全文