多年前(在WF存在之前)我开发了一个自定义工作流引擎。它的工作方式如下:设计工作流(称为定义),将特定类型的工作项与该定义相关联(例如:工作流定义X处理小部件),并通过创建一个实例来处理该工作项的各种状态和转换每个工作项的定义。
该工作项实现了IWorkItem接口,允许将其作为一种状态机进行处理(例如,它具有当前状态和一组方法,如Run,Stop,Pause等来控制它)。
在Windows Workflow中,如何定义工作项?它可以是我的SQL Server数据库中建模的自定义实体吗?我必须给它任何特定的领域吗?在我的代码中表示它的对象是否必须实现特定的接口?它如何响应基础行数据的持久性/持久性?如何轻松查询数据库以获取实体的状态?
答案 0 :(得分:1)
WF中的工作项是工作流本身,它由“活动”组成(可以通过从.net活动类型之一派生而内置或自定义。可以在其中添加扩展名支持持久性,跟踪等。Here是框架的一个很好的介绍。
根据我的个人经验,我读了一本书,因为当时MSFT文档并不适合WF4,但它现在看起来更好。我已经能够获得一个工作流程来模拟我办公室的销售流程。销售人员使用连接到WCF服务的Silverlight客户端,该服务依次提供存储在持久性表中的数据。它还与工作流服务交互,该服务管理创建工作流的新实例并将现有实例持久保存回SQL数据库。至于查询现有实例,这非常简单。在我的例子中,我安装了MSFT提供的实例存储数据库,我只是查询它们提供的一个表。