Scenario: A BA starts with the Workflow authoring using the Re-hosted workflow designer and the Toolbox activities provided in the palette. At some point, the BA figures out that the Toolbox doesn't contain an activity that he is looking for.
Only option that the BA has for him is to work offline with the Dev to add such an activity to the Toolbox palette. Loss of considerable amount of time, every time the BA figures out that the activity he needs is not present.
Wouldn't it be nice, if the BA can add something like a PlaceHolder/Dummy activity along with comments/notes about what the activity is supposed to do during Workflow authoring. Every time, he encounters an activity hole, add such a PlaceHolder activity and move forward. Once done, hand over the Xaml to the Dev who goes in and implements those activities and directly then hands over the Xaml Workflow to the IT team for deployment.
Of course, the question in the above scenario is how can we have PlaceHolder/Dummy activities? The attached solution, goes over such a project, where the initial Workflow has a PlaceHolder activity in it. As the Dev opens the Workflow, he can go in, double click on the PlaceHolder. This generates a stub(activity named myElement in a file called myElement.cs) for the Dev to implement the activity. Next time, the Dev builds the Workflow, the PlaceHolder activity is replaced with the actual activity implementation(myElement activity).
How did we achieve it: Well, the PlaceHolder activity is one with no implementation on it – You can add Description property to it so that BA can add comments on what exactly the activity is supposed to do. Next, in VS, the generation of the stub is plain old EnvDTE. Finally, the place where the Designer Programming Model is being leveraged is the replacement of the PlaceHolder activity with the actual – myElement – activity. For that, we use the Morphing feature. Details on it are here.