Space shuttles aren't built for rocket scientists, they're built for astronauts. The goal isn't the ship, its the moon.
posts - 303, comments - 180, trackbacks - 35

My Links


Where's Rick?

AgileAlliance deliver:Agile 2019- 4/29
Desert Code Camp, PHX - 10/11
VS Live Austin, TX - 6/3
VS Live SF - 6/17

About Me
Hands on leader, developer, architect specializing in the design and delivery of distributed systems in lean, agile environments with an emphasis in continuous improvement across people, process and technology. Speaker and published author with 18 years' experience leading the delivery of large and/or complex, high-impact distributed solutions in Retail, Intelligent Transportation, and Gaming & Hospitality.

I'm currently a Principal Engineer at Amazon, within the North America Consumer organization leading our global listings strategy that enable bulk and non-bulk listing experiences for our WW Selling Partners via apps, devices and APIs.

Full bio

Note: All postings on this site are my own and don’t necessarily represent the views of my employer.

Check out my publications on Amazon Kindle!


Post Categories

Published Works

More on WF 4.0

Per my last post I have been eagerly pursuing more information on the impact of the changes to WF 4.0, and specifically, what these changes mean for applications written in 3.5 and new composable applications.

I had a great conversation with Cliff Simpkins, Technical Product Manager for the WF team who was able to answer a lot of my questions and provide some clarity as to what specifically has changed, why and how it affects WF applications.

Let's circle back to the points that Kenny Wolf made when we discussed the changes at a higher level and use these as talking points.

"First is delivering a truly model-based framework that allows every aspect of the WF to be represented declaratively."

In WF 4.0, all aspects of an activity are represented as XAML. Most importantly, this includes variables within each activity which are bound as input/output parameters from one activity to another. This is a significant change from 3.5 because variables are no longer scoped at the global workflow level, but instead are scoped to the activity level. And this is an important point. In WF 4.0, the paradigm is based on Activities, Runtime and Tooling. Activities form a logical workflow as a consequence of their composition. The focus is on the activities which consist of a root activity and child activities. The root activity is the orchestration of the child activities, and all activities exist as a logical workflow but are truly autonomous. They gain this autonomy by not being dependant on variables and state at the global level, but instead at each corresponding activity scope. This is huge when it comes to persistence as I'll discuss shortly.

"Second, was being able to truly participate in the repository ecosystem, which is key for deployment, management and operations scenarios."

This one should be obvious. XAML is the key to being able to serialize services and workflows in the repository. Reengineering how variables are managed by scoping them to the activity (I'll post some sample code soon) completes the picture. WF 4.0 (and incidentally WCF 4.0) will be repository ready, and this is the gestalt of the Oslo vision.

"And last, but not least was performance."

I don't yet have a full picture of how the performance improvements were attained. I suspect that there has been some runtime tuning, and I am eager to learn more here. However, a major positive consequence of the full schematization of the logical workflow is that the entire workflow does not need to be persisted, but instead, only the relevant activities. For example, if you have a workflow with 4 activities and the first two complete and the third activity waits for a stimulus before it resumes work, only the third and forth activity need to be persisted as opposed to the entire worklfow. I do still have questions about atomic versus long-running behavior, and this, along with other details will soon come to light.

Some more stuff

Another thing that you will immediately notice is that the designer has been completely redesigned, and there is a definite Quadrant influence. What is very cool is that both Quadrant and WF designer are using WPF. On this topic, I have to be honest. The design initially struck me as very drab. If you look at the picture I snapped in my original post you'll see a severe departure from the 3.0/3.5 aesthetic. The interesting thing though, is that as I sat in more sessions and touched and felt the designer it really grew on me. At the risk of sounding cliche, the simplicity of the designer makes for a very fluid user experience, perhaps less is more.

What about WF 3.5?

This is a logical burning question. First, let us all agree that WF 3.0 is not relevant to service developers, so I will ignore it, pretending it doesn't exist. The marriage of WF and WCF in WF 3.5 finally makes WF a compelling tool for composing services and this, by the way is going to be a common theme in the NET 4.0 timeframe and beyond.

So what about 3.5?  Should we continue to build composable service-oriented applications with WF 3.5 or bite the bullet and build on early WF 4.0 bits? Well, according to Cliff, a couple large flagship products will be shipping with 3.5 over the next couple years, and if Microsoft is willing to invest this heavily in 3.5 in a brand new product that hasn't shipped, you can imagine that it should be suitable for LOB applications as well as the enterprise.

A better question is probably how bad the pain will be in upgrading from 3.5 to 4.0. I talked about the Interop activity which will be the bridge from 3.5 to 4.0, but we can't be so naive to assume it will solve all compatibility issues. I spoke with Jurgen Willis who commited to the early guidance paper I mentioned very soon. As promised, when I get it, you'll have it here.

In the meantime, if you want to watch live recordings of the following PDC sessions on WF, I've provided the links below:

Print | posted on Thursday, October 30, 2008 8:38 PM | Filed Under [ WCF .NET 3.5 WF 4.0 NETFX 4.0 ]



# re: More on WF 4.0

Thanks for this - I watched the First Look PDC video earlier today, but it still left some questions in the air. After looking at the new designer for WF 4.0, it looks like some radical changes are on the way, and I can't help but be excited.

I hope more developers adopt this technology, because it really is a great way to develop.
11/1/2008 7:46 PM | Ryan R.

# re: More on WF 4.0

Thanks Ryan. I will be posting some early guidance on WF 4.0 soon.
11/8/2008 7:20 AM | Rick G. Garibay

# re: More on WF 4.0


Anything on that writeup forthcoming ?? I'm really interested in seeing what folks inside of MS have to say.
1/5/2009 8:39 AM | Marcelo Lopez

# re: More on WF 4.0


Thanks for the note. I spoke with Kenny W recently and they are still putting the final touches on it. In the meantime, please check out this excellent post by Cliff Simpkins, Technical Product Manager on the WF team who provides an authorative discussion that covers much of what the paper I mentioned does: http://blogs.msdn.com/endpoint/archive/2009/01/20/the-road-to-wf-4-0-part-1.aspx

Thanks again for writing!
1/31/2009 4:34 PM | Rick G. Garibay

# re: More on WF 4.0

I am an extremely avid Microsoft proponent, and I absolutely love most of what Microsoft does. As a C# developer with 7+ years of experience with C# and the .NET Framework, I have to say that Microsoft moving in the wrong direction. I don't know if there has been a change in management, but the pace at which 'tools' (I use the word loosely) are being introduced and changed, we are nothing more than beta testers. I refuse to adopt new technologies for production enterprise apps until they are proven and stable. We need to slow down and get it right the first time.
1/11/2010 4:32 AM | Rapid Share
Comments have been closed on this topic.

Powered by: