我想弄清楚ms Workflow WF 4在以下场景中是否可用?试图在asp.net mvc 3中创建一个Web应用程序。
办公室里有不同角色的情况。表单必须通过不同角色的批准(Projectmanager,Teamleader,Director)。 因此,Projectmanager会创建一个表单,将其提交给团队负责人进行审批。团队领导批准通知并批准此表单。然后,在他批准并提交之后,它将由导演批准。如果他不批准,他会将表格发回给项目经理。
将此实现与asp.net mvc 3一起用于WF 4是否有用或者这是不可取的?
答案 0 :(得分:3)
新技术的选择取决于许多标准。因此,如果您想决定使用工作流程来解决您的业务问题,请根据您当前的要求创建一个小POC。验证它,这是最合适的方式吗?您的团队是否了解这项技术?需要什么学习曲线?
从我的角度来看,您当前的要求适合使用工作流程4.0。这是一个漫长的过程,需要经常进行人为干预。
您也可以参考这些链接..
http://msdn.microsoft.com/en-us/library/dd851337
答案 1 :(得分:1)
我想对WF4表达一些担忧。在我看来,就像你从鸟类的角度描述工作流程一样。工作流程是一条信息(表格)必须得到多方的批准,每个方都有不同的职责。
当您从MVC预期中查看问题时,您会发现以下内容:
project manager
,team leader
和director
。您的域模型中更多的其他连接表/实体(实体框架4 / LINQ2SQL / NHibernate)...... 虽然您当然可以创建工作流程以在您的应用程序中实现某些逻辑 - 但最终将从您的控制器调用这些工作流程。更进一步,如果各方的批准过程是点击“批准”按钮或其他一些UI交互 - 我认为使用WF4实现这一点并不合理。
在我看来,WF4不适合用户界面互动。当您想要创建操纵大量数据和/或编排复杂逻辑以实现某些任务的后端代码时,这非常好。但是在您描述的场景中,您并没有真正有这种用途。
您的审批流程最多应在包含FormID,ApproverID,DateApproved,ApproverType和其他一些信息的数据库中设置“已批准”记录。 (批准者ID是进行批准的用户的Guid / uniqueidentifier)。
显示团队负责人和董事的“待批准”表单的视图应该只查询表单表,其中批准表上的联接为空记录(也就是......批准记录不存在)无论如何 - 根据您的域模型以及数据的结构,您实际上不需要比控制器更多的东西来实现您的目标。