This sample code demonstrates how you can use Windows Workflow Foundation along with custom activities to build a Wizard Style UI with ASP.NET MVC.

The code was created by the Microsoft Product Quality Team to support wizard based troubleshooters for Microsoft products.  For more information see - WF4 in the Real World - Microsoft Support ASP.NET MVC Wizard Framework

Building the Sample

The solution consists of the Wizard Activities, Designers and a modified version of the MVC Music Store sample application which uses a workflow to process the checkout.

Build the solution and run the MVC Music Store to see it in action

Navigation Problem

How to get users from one screen to another in a pre-determined sequence based on user inputs and business rules.

Enable screens to be added or removed or rearranged without having to re-code or re-compile a solution.

User can perform following actions

Next : Show the next screen

Back : Show the previous screen

GoTo : Jump to any previous visited screen.

Example: E-Commerce checkout workflow

Wizard activity pack has been developed to solve this navigation problem using WF4.0.

Basic Architecture

The Wizard activity pack has following components:

Custom Activities: There are 3 custom activities (WizardContainer, Wizard and Step) all derived from Native Activity .

Workflow Input/Output: There is a class and enum (“CustomBookmark” and “Command”), these are used to pass input/output
parameters of wizard container activity.

Helper Classes: There are 2 helper classes (ExtentionMethods and Conatants) internally used by custom activities.