在这种情况下我可以使用WF 4吗?

时间:2012-06-29 04:14:17

标签: c# asp.net-mvc-3 workflow-foundation-4

我想弄清楚ms Workflow WF 4在以下场景中是否可用?试图在asp.net mvc 3中创建一个Web应用程序。

办公室里有不同角色的情况。表单必须通过不同角色的批准(Projectmanager,Teamleader,Director)。 因此,Projectmanager会创建一个表单,将其提交给团队负责人进行审批。团队领导批准通知并批准此表单。然后,在他批准并提交之后,它将由导演批准。如果他不批准,他会将表格发回给项目经理。

将此实现与asp.net mvc 3一起用于WF 4是否有用或者这是不可取的?

2 个答案:

答案 0 :(得分:3)

新技术的选择取决于许多标准。因此,如果您想决定使用工作流程来解决您的业务问题,请根据您当前的要求创建一个小POC。验证它,这是最合适的方式吗?您的团队是否了解这项技术?需要什么学习曲线?

从我的角度来看,您当前的要求适合使用工作流程4.0。这是一个漫长的过程,需要经常进行人为干预。

您也可以参考这些链接..

http://msdn.microsoft.com/en-us/library/dd851337

http://msdn.microsoft.com/en-us/library/ee342461.aspx

http://msdn.microsoft.com/en-us/library/cc709416

答案 1 :(得分:1)

我想对WF4表达一些担忧。在我看来,就像你从鸟类的角度描述工作流程一样。工作流程是一条信息(表格)必须得到多方的批准,每个方都有不同的职责。

当您从MVC预期中查看问题时,您会发现以下内容:

  1. 您使用基于角色的身份验证进行ASP.NET表单身份验证。
  2. 您有多个模型 - 信息(您称之为表单)以及其他多个模型 - 例如project managerteam leaderdirector。您的域模型中更多的其他连接表/实体(实体框架4 / LINQ2SQL / NHibernate)......
  3. 每个人都应该根据自己的权限拥有一组不同的视图,以便与这些数据进行交互。
  4. 在每个视图后面,您还有控制器负责处理读/写数据源以及其他逻辑的繁琐工作。
  5. 虽然您当然可以创建工作流程以在您的应用程序中实现某些逻辑 - 但最终将从您的控制器调用这些工作流程。更进一步,如果各方的批准过程是点击“批准”按钮或其他一些UI交互 - 我认为使用WF4实现这一点并不合理。

    在我看来,WF4不适合用户界面互动。当您想要创建操纵大量数据和/或编排复杂逻辑以实现某些任务的后端代码时,这非常好。但是在您描述的场景中,您并没有真正有这种用途。

    您的审批流程最多应在包含FormID,ApproverID,DateApproved,ApproverType和其他一些信息的数据库中设置“已批准”记录。 (批准者ID是进行批准的用户的Guid / uniqueidentifier)。

    显示团队负责人和董事的“待批准”表单的视图应该只查询表单表,其中批准表上的联接为空记录(也就是......批准记录不存在)无论如何 - 根据您的域模型以及数据的结构,您实际上不需要比控制器更多的东西来实现您的目标。