大型Web应用程序中的Windows Workflow使用情况

时间:2011-07-21 07:44:51

标签: asp.net-mvc asp.net-mvc-3 workflow-foundation state-machine

尽管我在互联网上查看的大部分示例都使用WF来处理类似向导的步骤或设计基于工作流的UI,并且因为Windows Workflow可以处理状态机,如果我们说,我们有一个网站像Stackoverflow.com,在我们使用WorkFlow基础的应用程序的哪些方面?

示例:

  • 一位用户的问题已获得10票,并为其拥有者颁发了青铜徽章。
  • 一个问题刚刚获得10,000次观看,设置了top_question标志。

是否应该使用Windows Workflow处理这些小(但实际上有太多)事件? 是否有任何WF组件放置在内置WF的顶部以简化此类操作?

3 个答案:

答案 0 :(得分:3)

我还没有看到使用WF,BizTalk或任何其他引擎等工作流引擎成功构建应用程序。通过成功,我的意思是:它使其投入生产,并且生成的应用程序比没有开箱即用的工作流引擎的情况下更容易维护。

Udi Dahan发表了a very interesting blog on the topic,他详细阐述了为什么这些东西通常只适用于演示,而不适用于现实生活。

公平地说,我应该澄清一点,我没有任何WF的实践经验,我之前确实使用过BizTalk,并且发现它完全超出了我需要的顶层

答案 1 :(得分:1)

我没有使用过wwf的状态机部分,只使用了顺序工作流程。

起初我很兴奋,因为我希望使用wwf可以解决我们的一些问题。

最后它真的很乱,我很高兴我们的项目只是一个小项目:

  • 设计师经常坠毁(VS 2008设计师公平,VS 2010更稳定)
  • 将中等大小的工作流加载到IDE中非常缓慢
  • 中型工作流程比源代码更难阅读。这不是特定于wwf,而是所有可视编码环境的问题
  • 没有用于控制正在运行的工作流实例的开箱即用的用户界面
  • 我不是100%舒服,但我认为wwf没有工作流版本。如果您已经运行了几个工作流实例,并且想要更改工作流程,则会出现问题。
WWF可以解决特定问题,但我很难想象一个受益于wwf的Web应用程序。

答案 2 :(得分:1)

我使用了WF(.net 3.5)的状态机和产品发布。这是一个采购系统,购买请求,采购订单需要通过几个州(审批人,请求者等)。但是,我们遇到一些问题,例如,如果您的状态机在生产后更改,则数据库中的实例应该通过手动根据新状态机运行,否则会出错。我认为状态机工作简单,如果你有一些复杂的逻辑,如与UI审批交互可能会导致一些问题。我没有检查.net 4.0 WF,但它可能会有解决方案。