Swiss Cheese and WF4, or, An Introduction to ActivityAction

One common scenario that was often requested by customers of WF 3 was the ability to have templated or “grey box” or “activities with holes” in them (hence the Swiss cheese photo above).  In WF4 we’ve done this in a way that way we call ActivityAction Motivation First I’d like to do a little bit…

8

Inspection, Default Services and Items (WF4 EditingContext Intro Part 6)

This part 6 of my 6  part series on the EditingContext. Introduction Sharing Functionality between Designers  Host provided capabilities   Providing callbacks for the host  Subscription/Notification engine Inspection, Default Services and Items (you are here) I want to wrap up this series of posts by posting some code for an activity designer that functions more as…

0

Subscription / Notification Engine (WF4 EditingContext Intro Part 5)

This part 5 of my 6  part series on the EditingContext. Introduction Sharing Functionality between Designers  Host provided capabilities   Providing callbacks for the host  Subscription/Notification engine (you are here) Inspection, Default Services and Items In this post, we’re going to tie together a few of the things we’ve seen in the last few posts and…

2

Providing Callbacks for the Host (WF4 EditingContext Intro Part 4)

This part 4 of my 6  part series on the EditingContext. Introduction Sharing Functionality between Designers  (you are here) Host provided capabilities Providing callbacks for the host Subscription/Notification engine Inspection, Default Services and Items   In addition to having a host provide an instance of a type to be used within the designer, it can…

0

Host Provided Capabilities (WF4 EditingContext Intro Part 3)

This part 3 of my 6  part series on the EditingContext. Introduction Sharing Functionality between Designers  Host provided capabilities  (you are here) Providing callbacks for the host Subscription/Notification engine Inspection, Default Services and Items EditingContext is used by our primary hosting application, Visual Studio, to provide concrete implementations of certain services.  The example that we…

0

Sharing Functionality Between Designers (WF4 EditingContext Intro Part 2)

This part 2 of my 6 part series on the EditingContext. Introduction Sharing Functionality between Designers  (you are here) Host provided capabilities Providing callbacks for the host Subscription/Notification engine Inspection, Default Services and Items   Setup We will need a custom activity, EmptyOne and designer called InteractWithServiceDesigner.  using System.Activities; using System.ComponentModel; namespace blogEditingContext { [Designer(typeof(InteractWithServicesDesigner))]…

10

Introduction to the WF4 Designer Editing Context (Part 1)

I want to briefly touch on the editing context and give a little introduction to its capabilities.  This is part 1 of a 6 part series Introduction (you are here) Sharing Functionality between Designers Host provided capabilities Providing callbacks for the host Subscription/Notification engine Inspection, Default Services and Items The way to think about the…

2

Emitting the mc:Ignorable Instruction In Your WF4 XAML

Frequent forum guest Notre posed this question to the forums the other day noting that the XAML being produced from ActivityXamlServices.CreateBuilderWriter() was slightly different than the XAML being output from WorkflowDesigner.Save().  The reason for this stems from the fact that WorkflowDesigner leverages an additional internal type (which derives from XamlXmlWriter) in order to attach the…

1

AttachedProperty Part 2, Putting it Together

On my last post, Jason jumped right to the punchline in his comment here. He asks “if there is an easy way to have the properties value serialized out to the xaml.” First, let’s look at what we need to do from the XAML side. First, create a helper type with a getter and setter…

0

WF4 Design Time AttachedPropertiesService and Attached Properties

I’ve been meaning to throw together some thoughts on attached properties and how they can be used within the designer.  Basically, you can think about attached properties as injecting some additional “stuff” onto an instance that you can use elsewhere in your code. Motivation In the designer, we want to be able to have behavior…

3