Tag Archives: Windows Workflow Foundation

Windows Workflow Foundation学习心得

近来因为工作需要,转到.net门下了,转眼过去快两个月,感觉收获还是很大的,又过去的Java经验,对学习微软的一堆框架还是很有益处的。最近在学习Windows Workflow Foundation,.net里的工作流框架。这还是第一次接触工作流,对工作流都还没有概念,在皮皮上找了本Pro WF Windows Workflow in .NET 3.5开始慢慢啃。 工作流,并不像我原本想象的那样,仅仅是个什么工作的流程。我的理解,工作流是一个对程序流程逻辑与具体操作的分离,程序的流程和逻辑可以在工作流图上清晰的展现,图中每个步骤或状态中的操作就不在掺杂着太繁杂的逻辑结构了。这么做的好处呢,就是从复杂的程序逻辑,抽出一个大的轮廓,通过一个工作流图,把大的问题切割成一个个小块儿了。其实,所有的架构设计不都是为了分解复杂的问题吗。 VS2008里的工作流编辑器,让创建工作流的工作变得相当简单和直观,简单了解了一些常用的Activity的用途和使用之后,半天时间就足够学会用工作流图表达程序逻辑了。 可能是因为我对C#的委托和事件不够熟悉,在工作流和Host的通信上花费了不少时间,才理清了这个过程。因为Workflow和Host程序是在不同线程中运行的,所以相互之间的调用只能通过delegation和event。Host通过触发ICustomeService接口中的事件,调用注册在这个事件上的HandleExternalEventActivity。另一个方向上,Workflow调用ICustomService接口中的方法,方法里触发一个CustomService中定义的公开事件,而Host程序把需要被调用的代码,通过委托注册到这个事件上,从而被Workflow调用。 先不写了,明天有空了补上个例子和图片吧。
Posted in 计算机技术 | Also tagged | Leave a comment

用于MySQL的WF WorkflowPersistenceService

因为微软的Workflow Foundation里对WorkflowPersistenceService只提供了一个用于SqlServer的实现,对于想用别的方式保存工作流状态的应用就需要自己实现WorkflowPersistenceService了,今天自己写了个用于MySQL的实现,应该说是一个最简陋的实现了,只完成了最简单的保存和恢复的功能,高级点儿的加锁之类的功能还没弄明白。不过我想这些对学习WF的朋友应该也能帮上点儿忙。
Posted in 计算机技术 | Also tagged , | Leave a comment