我一直在使用WWF一段时间作为内部呼叫中心应用程序(ASP.NET)的一部分,而在学习的过程中,了解基于状态机的工作流系统应该如何工作是一个很好的做法,我绝对不会爱上WWF本身在我看来是:
>过于复杂,特别是在网络应用程序中使用(所有线程运行时的东西)
>不成熟(曾经与那个可怕的设计师合作过)?
>在其当前功能集中出现贫血
有没有人建议一个更好的基于.NET的工作流框架?具体来说,我正在寻找以下功能:
基于状态机(映射状态为可用操作)
>关注用户权限(控制谁可以访问什么操作)
>将工作流作为定时后台任务运行的能力(例如,为在x天内处于特定状态的项目发出提醒)
这真的是我需要的.我不需要“拖放”任何活动或视觉设计流程.一旦触发特定动作,我完全可以编写实际的代码.
解决方法
你可以试试
Simple State Machine.你必须自己实现访问控制和背景定时器,但这不应该是一个大问题. SSM也是由于WF的挫败而造成的.
There are some other state machine implementations on Codeplex以及.如果他们中的一个不合适,他会开箱即用,它们是开源的,应该让你足够接近.
我完全同意你在WF中的状态机 – 它们不可测试,太复杂了,线程模式是特别而且很难跟踪的,我不知道一个视觉设计师可能对设计状态机的设计不太了解图形.我认为这可能是因为状态机概念感觉到WF运行时,这是为顺序状态机设计的,WF在我看来做得更好.问题在于,状态机与一个顺序的工作流程确实不是一样的动作,而且应该被赋予了自己的一流的实现,因为WF的扭曲使得它似乎支持它们或多或少不可支配,如果不是实际上不可用.