This blog has moved to http://blogs.msdn.com/b/appfabric please update your links!
Hi all, I’m Matt Winkler, a PM on the WF team and occasional guest blogger here on the endpoint. I wanted to take a moment to highlight some of the interesting new things in WF4 in Beta 2. For more info on Beta 2, please check out this page.
The goals of a milestone like Beta 2 are two fold: 1.) to react to customer feedback that we’ve received on previous releases and 2.) stabilize and lock down the product to get ready to ship. While the items in #1 will be most visible, the team has done a lot of work stabilizing the product, and I feel pretty good about the Beta 2 release.
What are the big changes?
For those of you who thought it was a little weird that we talked about writing activities, but having to derive (ultimately) from WorkflowElement in order to write them, this change is for you. Here’s a snapshot of the activity hierarchy in Beta 1:
We heard that feedback loud and clear and have made a few changes to how the activity hierarchy is factored:
The key changes are:
Validation has been improved for activity authors to write code within CacheMetadata() to validate the activity tree. CacheMetadata() is also the one stop shop for customizing behaviors that were previously spread through methods like OnGetArguments(), GetConstraints(), and GetActivities()
Make it easier to use ActivityAction by introducing DelegateArguments to pass data into and out of an ActivityAction. In Beta 1, this required using an object of type Variable<T> that was assigned to a property named Argument.
In the ‘under the hood’ category, the team has made improvements to Persistance, Durable timer and tracking which should provide a better runtime experience for the WF4 developer.
Last on the runtime front, dynamic update was a feature that had made its debut in Beta 1, but was removed again between Beta 1 and Beta 2 - and will not be present in the RTM release.
And, within hosting, WorkflowInstance was renamed to WorkflowApplication based on Beta 1 feedback from users.
The messaging activities are the key component for integrating WF and WCF together. Based on customer feedback we’ve made improvements to:
We’ve also refactored the semantics around the error handling activities to behave similar to a “throw” in a C# catch block. The most visible aspect of this change is the addition of the Rethrow activity.
Lastly, the InvokePowershell activity is no longer shipped as part of the .NET Framework. Fear note, for it is not gone; it has been moved to the SDK samples, joining other quite useful activities.
The Interop activity is a key component for WF4 workflows, allowing you to continue to leverage activities built in WF3. We’ve made improvements to the way that validations and transactions are handled within the Interop activity to more fully support WF3 activities.
I plan on having a whole post specifically around that, but we’ve done a fair bit of work to address feedback that we’ve received, namely:
We received a lot of great feedback from folks about Beta1, and we’ve had a few usability studies done here in Redmond which have provided additional feedback that have shaped the work that we’ve done on the designer. Additionally, we’ve done work to clean up the object model to make it easier to rehost and customize the design experience. There have also been a number of key stability improvements and bug fixes to the expression editing experience which was a little rough in Beta 1.
If there are other resources you are looking for, let us know!
Testing to see if my comment will go through. Don't think my last one did?