2

作为我的个人改进计划 (PIP™) 的一部分,我正在尝试学习 Windows Workflow Foundation 的基础知识。

我决定写一个相当简单的博客引擎。我知道那里有很多东西,但这只是一个游乐场项目,我可以用来学习一些很酷的东西。我想要实现的主要功能之一是使用 WF 对博客条目进行审核。该项目的其余部分将是一个 ASP.NET MVC 应用程序,可能会洒上一点 WCF。

根据我对 WF 的了解,我应该使用如下所示的顺序工作流程:

  1. 作者添加/编辑博客条目。
  2. 条目被发送给版主批准。
  3. 版主批准发布 - 或 - 返回第 1 项。供作者更正,以及版主注释。
  4. 结束

每个步骤还应通过电子邮件向操作的接收者发送电子邮件。

由于人为交互因素,我猜测 WF 运行时需要在某个地方自行序列化,这样它就不会丢失状态(因为每个活动都可能被 AppPool 重置、服务器崩溃等中断)。

有谁知道实施类似工作流程的任何好例子或地方?

谢谢大家。

4

4 回答 4

3

我暂时不会深入研究 WW。.NET 4.0 将对 WW 模型进行更改以解决当前的痛点。这些变化将引入一个与今天的 WW 根本不同的模型,如果您还没有 WW 解决方案,那么学习当前的 WW 方法将没有多大帮助。

更多信息可以在这里找到:

http://blogs.msdn.com/endpoint/archive/2009/01/20/the-road-to-wf-4-0-part-1.aspx

于 2009-02-17T16:55:17.567 回答
3

你在正确的轨道上。Windows 工作流提供了一个持久性模型,允许您将正在运行的工作流实例的状态保存到 SQL Server。当正在运行的实例暂停时(通常是在等待来自工作流外部的输入时),状态会自动序列化到数据库中。

是来自 Microsoft 的入门工具包,用于基于 Web 的审批工作流。

于 2009-02-17T16:56:42.337 回答
3

我不确定您是否要使用顺序工作流程。状态机工作流程可能更适合您的需求。在顺序工作流程中冲洗和重复似乎总是有点麻烦恕我直言。

我喜欢Ode to Code上的工作流教程,并认为状态机工作流教程会回答你的很多问题。

于 2009-02-23T17:46:43.167 回答
1

将自己序列化到某个地方,这样它就不会丢失状态

WF 对此具有内置支持(使用 SQL Server,但您可以插入不同的后端)。

任何体面的资源都应该涵盖工作流持久性(例如“Pro WF”(APress))。

其他书籍(例如“Essential Windows Workflow Foundation”(AW))涵盖了更多“为什么它会以这种方式工作”。所以“Pro WF”会让你更快地使用内置(或其他现成的)活动等,但 Essential... 可能会让你更好地理解创建自己的活动(尤其是在与持久性和故障)。

于 2009-02-17T16:57:30.633 回答