【问题标题】:Windows Workflow Foundation example - moderationWindows Workflow Foundation 示例 - 审核
【发布时间】:2009-02-17 16:30:53
【问题描述】:

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

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

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

  1. 作者添加/编辑博客条目。
  2. 参赛作品将发送给版主批准。
  3. 版主批准发布 - 或 - 返回第 1 项。供作者更正,并附上版主备注。
  4. 完成

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

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

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

谢谢大家。

【问题讨论】:

    标签: c# workflow workflow-foundation


    【解决方案1】:

    我暂时不会深入研究 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

    【讨论】:

    • 正如那篇文章所述,3.0 的内容仍将随 4.0 一起提供,因此它将继续工作。另外,我认为仍然值得学习 3.0 版本,因为一些公司仍在使用 Visual Studio 2005 - 就像我与 ATM 签约的公司...近期没有升级计划/:
    • -1 没有任何说明 4.0 正在破坏。 3.0 将进行必要的更改以将其托管在提供程序中。对 wf 在 3.0 中如何工作的核心技能和理解在 4.0 中仍然有效。
    【解决方案2】:

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

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

    【讨论】:

    • 在批准入门工具包上找到了好东西,谢谢……不知道我是怎么错过的。 +1
    【解决方案3】:

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

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

    【讨论】:

    • 冲洗和重复?等等,我是不是偶然发现了一个洗发水广告……我以为这是一个软件开发网站。 :-S
    【解决方案4】:

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

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

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

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

    【讨论】:

    • 感谢书的建议,正在看 Pro WF,但不确定。我会将它添加到我的亚马逊列表中(:
    • 'Essential Windows Workflow Foundation' 的名称有误:应该被称为'在使用一年之前你不需要知道的 WF 的一些小细节'。此外,它读起来就像一本计算机科学书籍——也就是说,作者没有试图让它易于阅读。
    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多