我的团队的任务是设计一个工作流驱动的 Web 应用程序。我需要一些有关设计的建议。
工作流程需要是动态的。这意味着,用户可以通过某些界面定义工作流并将这些工作流应用到给定的场景(定义将存在于 SQL 2008 数据库中)。场景由业务定义,永远不会改变。因此,可能只能为两种类型的场景定义工作流。工作流程不一定是线性的。某种状态将驱动工作流程。状态也将是动态的,但仅存在于工作流程中。
我一直在研究工作流程和状态机的示例,我的头在旋转。我不确定我是否想要利用 Workflow Foundation 或我们开发的东西。我见过this并认为这可能有效,但我不确定国家的全面实现是否适合我们。
最佳答案
您可以使用 WF4 来完成此操作。我从未使用过 Objectflow,所以我无法对此发表评论,但它似乎是一个内存中解决方案,并且 ASP.NET 网站托管在 IIS 中,这意味着您偶尔会在 IIS 回收和 AppDomain 时丢失状态。通常这不是一个大问题,因为它不会经常发生,但 WF4 InstanceStore 会解决这个问题。它还允许您在没有粘性 session 的网络场上运行,并使工作流程从一台机器迁移到另一台机器。
另一个好东西是工作流程设计器。它是一个 WPF 控件,您可以在自己的应用程序中重新托管。不是在 ASP.NET 或 Silverlight 应用程序中,但您可以提供一个智能客户端,让用户使用您在 VS2010 中使用的理智设计器来更新工作流定义。
WF4 的最大问题是异步执行本质。您将需要使用 SynchronizationContext 来执行事件,并等待工作流在新状态下空闲,然后再将生成的 HTML 返回到浏览器。
关于asp.net - ASP.Net Web 应用程序的工作流程设计建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5451303/