You can develop a lot of interesting things by combining the dynamic update capabilities of Windows Workflow Foundation with designer re-hosting. Although dynamic update is extremely powerful on its own, imagine the rich user experience you could provide by allowing users to modify running workflow instances with the designer.
You can accomplish this by using the concepts previously discussed. By loading a workflow definition in the designer and providing the ability to make modifications, you have already done a lot of the work.
Next, your code needs to keep track of changes made by users. To do this, you simply use the IComponent ChangeService discussed previously. After you have a trail of modifications that were made to the workflow, you use the dynamic update API introduced in this chapter to apply the changes to a transient workflow. As shown in the earlier code samples, the IComponentChangeService exposes an event called ComponentChanged. When this event is subscribed to and subsequently raised during execution, you can track what changed and use that information to update the workflow as described.