作为个人改进计划(PIP™)的一部分,我正在尝试学习Windows Workflow Foundation的基础知识。
我决定写一个相当简单的博客引擎。我知道那里有很多,但这只是一个我可以用来学习一些很酷的东西的游乐场项目。我想要实现的主要功能之一是使用WF审核博客条目。 该项目的其余部分将是一个ASP.NET MVC应用程序,可能还有一个小WCF。
从我读过的关于WF的内容来看,我应该使用一个看起来像这样的顺序工作流程:
每一步都应该通过电子邮件发送行动的收据。
由于人为交互因素,我猜测WF运行时需要在某处自行序列化,因此它不会松散状态(因为每个活动都可能被AppPool重置,服务器崩溃等中断)。
有没有人知道任何实现类似工作流程的好例子或地方?
谢谢大家。
答案 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 ...可能会让您更好地了解创建自己的活动(特别是在与之交互时)持久性和错误)。