Asp.net mvc 在MVC3中使用工作流基础来处理Page Flow(如向导中的)

Asp.net mvc 在MVC3中使用工作流基础来处理Page Flow(如向导中的),asp.net-mvc,asp.net-mvc-3,workflow-foundation,workflow-foundation-4,Asp.net Mvc,Asp.net Mvc 3,Workflow Foundation,Workflow Foundation 4,我想解耦MVC网页以及它们的显示顺序。总的来说,我认为这些都是我需要解决的问题,但我有一种特殊的思维方式。我只想找到一个模式或一个对象,它将有助于控制流量 页面排序示例: 仅前进:用户只能通过工作流前进,直到完成。 --特殊情况:如果用户导航到或手动输入无效URL,则系统应相应响应(重定向到当前步骤) 向前-向后(只读):用户可以通过向导前进,但“后退”按钮允许以只读方式查看以前的数据 向前-向后(读-写):用户可以返回并更新以前条目中的数据。这可能会导致工作流重置为先前的状态 对于用户可能

我想解耦MVC网页以及它们的显示顺序。总的来说,我认为这些都是我需要解决的问题,但我有一种特殊的思维方式。我只想找到一个模式或一个对象,它将有助于控制流量

页面排序示例:

  • 仅前进:用户只能通过工作流前进,直到完成。
    --特殊情况:如果用户导航到或手动输入无效URL,则系统应相应响应(重定向到当前步骤)

  • 向前-向后(只读):用户可以通过向导前进,但“后退”按钮允许以只读方式查看以前的数据

  • 向前-向后(读-写):用户可以返回并更新以前条目中的数据。这可能会导致工作流重置为先前的状态

对于用户可能进入多个“有效状态”的情况,上面的转发概念应该适应(例如在状态机中)

问题:

如何在MVC3/WF4应用程序中实现此页面控制流


我探讨了这个想法。在我看来,工作流基础只需要它,如果你的过程需要很长的时间(比如天)。

否则,您会发现编写某种自定义代码(像状态机)比尝试合并工作流基础要容易得多。 但是,如果您正在寻找示例,这里有一个:


我们正在考虑一种与您的提案类似的架构。 MVC部分主要是使用Llblgen Pro+自定义ASP.Net模板自动生成的代码, 因此,我们希望从其他地方控制业务逻辑(和页面工作流)

我们仍在研究最终的决定,WF4.0是一个候选方案(因为创建可重用活动的库非常容易),但无状态状态机似乎是一种更简单的方法,更易于维护。 我们已经有了一个ORM生成的持久层,因此,在将来的任何时候恢复暂停工作流的状态都不是什么大问题。 看看无状态,让我们知道它是否适合

举例说明:


通过示例实现VS 2010代码:

您的问题太笼统了。这可能需要整本书来回答。我有一个相当复杂的长时间运行的过程,需要在ASP.NET(MVC?)中处理。这就是我关注WF的主要原因是,我也没有看到WF在这方面的价值,除非它是一个复杂的流程和/或可能需要很长时间。正如您所注意到的,完成相同任务的自定义类将相当简单,并且没有WF开销。@GalacticCowboy此功能的价值在于对页面流逻辑进行单元测试,这是我的应用程序的一个重要部分。欢迎使用Stackoverflow!我将在几周后查看您的代码,但感谢您分享!