Windows Workflow Foundation示例 - 审核

时间:2009-02-17 16:30:54

标签: c# workflow workflow-foundation

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

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

从我读过的关于WF的内容来看,我应该使用一个看起来像这样的顺序工作流程:

  1. 作者添加/编辑博客条目。
  2. 条目将发送给版主以供审批。
  3. 主持人批准后期或后退至第1项,以便作者更正,以及主持人备注。
  4. 完成
  5. 每一步都应该通过电子邮件发送行动的收据。

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

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

    谢谢大家。

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

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

Here是Microsoft的入门套件,用于基于Web的审批工作流程。

答案 2 :(得分:3)

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

我喜欢Ode to Code上的工作流程教程,并认为tutorial on state machine workflows会回答您的很多问题。

答案 3 :(得分:1)

  

序列化自己在某处,所以它没有松散状态

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

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

其他书籍(例如“Essential Windows Workflow Foundation”(AW))涵盖了更多“为什么它以这种方式工作”。因此,“Pro WF”会让您更快地使用内置(或其他现成的)活动等,但Essential ...可能会让您更好地了解创建自己的活动(特别是在与之交互时)持久性和错误)。

相关问题