Server AppFabric for the BizTalk Developer Video Session

If you consider yourself a hard core BizTalk Developer, then this session is for you!

A few weeks ago I presented a session on Server AppFabric to the BizTalk User Group in Sweden.  This session was geared to showing how similar Workflow 4.0 and AppFabric are to BizTalk – conceptually at least.  The goal of this session was to show how us BizTalk guys and gals can quickly pick up Workflow 4 and AppFabric because we already understand the concepts.

I would highly recommend this 60 minute session to all fellow BizTalkers out there!

This session is available on Channel 9 –

The code and slides are available for download at

At the same conference, I gave a session which covered Windows Azure Platform AppFabric.  This 30 minute session covers a real-world service bus solution and a walk through of the code behind the solution.  It is available at–Remote-Message-Broadcast-BizTalk-Conference-Stockholm and the code and slides can be downloaded at


If you are looking for other sessions from the multi-day conference in Sweden, below is a full list.  We covered a wide-range of technologies from AppFabric to StreamInsight.

Day 1 (Sessions from September 8th, 2010)

Welcome and Introduction

Choosing The Right Tool in the Application Platform
Discuss the challenge of choosing the right technology for a given situation and present a decision framework for guiding evaluation.

Tech Overview: SQL Server
Look at the core components of SQL Server that are used to build applications (e.g. SSIS) and when to use them.

Tech Overview: BizTalk Server
Discuss what BizTalk is and when to use it.

Tech Overview: WCF/WF, Server AppFabric
Highlight key capabilities in WCF and WF and benefits offered by Windows Server AppFabric.

Tech Overview: Windows Azure Platform
Discuss Microsoft’s cloud offering and best usage scenarios.

Pattern #1 – Simple Workflow
Evaluate scenario that involves aggregating data from multiple sources and presenting a unified response.

Day 2 (Sessions from September 9th, 2010)

Pattern #2 – Content Based Routing
Consider options for effectively transmitting data to multiple systems that perform similar functions.

Pattern #3 – Human Workflow with Repair and Resubmit
Showcase using workflow 3.5 to send customer details to an AppFabric hosted workflow 4.0 Workflow Service.  This workflow service controls the payment collection process and allows for updated information on a user to be sent back into the same running workflow instance from SharePoint.

Pattern #4 – Cross Organization Supply Chain
Evaluate how to build a supply chain to integrate systems in a PO scenario.

Pattern #5 – Remote Message Broadcast
Demonstrates a scenario where a traditional polling solution is augmented to support real-time updates.

Pattern #6 – Complex Event Processing
Addresses click stream analysis and creating actionable events from user and system behavior.

Book Sample Code, Our Commercial, and Repair & Resubmit Solution Video

I have posted online all the sample code from my book, “Applied Architecture Patterns on the Microsoft Platform”.  You can download it at  This code contains various samples using BizTalk, BizTalk ESB Toolkit, Server AppFabric, SharePoint 2010, .Net 4.0 Workflow, SQL, Stream Insight, Azure, SQL Azure, Platform AppFabric Service Bus, Server AppFabric Caching, and more.  Of course, you will get the most benefit of this code using it alongside with the chapter of the book that walks through it. 

The book is available now on and 

Thanks to our friends in Sweden we now have a Commercial for our book!  I have not seen many commercials for Technology books, but this video gives some context of the “why” behind our book.  You get to hear from Richard, Ewan, and myself about why we wrote the book and why we picked to release the book at the European BizTalk Conference in Stockholm, Sweden to a room full of top notch, hard-core BizTalk people.

This video is available at and on YouTube. 


If you are looking for more detailed information on the types of solutions covered in the book, I have put together a video walking through Chapter 10 – Repair and Resubmit with Human Workflow.  This solution uses SharePoint 2010 to store customer information.  This information is processed by a .Net 3.5 workflow that sends the data to a Server AppFabric hosted .Net 4.0 workflow service for processing. 

This video is available at and on YouTube. 

European BizTalk Conference AppFabric and Workflow 4 Session Slides and Code Downloads

In early September 2010, I got the honor to present three sessions on AppFabric and Workflow 4.0 to the BizTalk Users Group in Sweden at the European BizTalk Conference. While my sessions were not related to BizTalk, they are designed to show how easy it is for someone with BizTalk skills to learn AppFabric and Workflow 4. 

I have posted the session slide decks and sample code (including the code generated from my 100% LIVE demo). 

I did three sessions:

  • Server AppFabric and Workflow 4.0 Overview – This includes some slides on AppFabric strengths and weakness compared to BizTalk and shows how simple it is to set up Correlation in Workflow 4.


  • Server AppFabric with Human Workflow – This uses SharePoint 2010 and Workflow 3.5 with AppFabric and .Net 4 Workflow (Chapter 10 from my book) to allow data to be corrected and resubmitted to the same workflow process.


  • Platform AppFabric with Remote Message Broadcasting – This talks about using Azure Platform AppFabric to broadcast messages through the Service Bus to destinations on numerous networks (Chapter 11 from my book).

The video recording of the sessions should be available soon and I’ll post the links once I have them.

Latest Windows Application Server Enhancement (Dublin) Videos On Channel 9

Recently I was asked to present at the BizTalk Users Group in Sweden.  I had a great time and was welcomed nicely by my Swedish friends. 

I presented on the new enhancements to the Windows Application Server role code named Dublin.

I presented two 35 minutes sessions covering a lot of the same material talked about at the recent TechEd in Los Angeles, CA.

The two sessions are now online and available for everyone to watch.  The first session is essentially the value proposition of using Dublin and Workflow Services and the second session is a deeper dive into custom tracking and monitoring.

The top question I get is when can I get the code for Dublin?  Microsoft stated at TechEd they planned for a public beta of Dublin around the PDC 09 timeframe.

Enjoy and please post any comments or questions.

Session 1: Inside the Windows Application Server Enhancements known as Dublin (1/2)

Abstract: In this session we will review the features of the Windows Application Server Enhancements code named Dublin.  This session will show how to use new and enhanced concepts in the .Net 4.0 framework to empower Services hosted in Windows allowing users insight into service health and activity.

Session 2: Inside the Windows Application Server Enhancements known as Dublin (2/2)

Abstract: This session takes a deeper dive into Windows Application Server Enhancements by looking in detail at the hosting of a Workflow Service.  This will cover reviewing a web service aggregator Workflow Service, setting up custom tracking, monitoring running services, and import and export of applications.

Step by Step: Working with Content Based Correlation in Workflow 4.0

Don’t miss the screen cast video on this same subject available at Content Based Correlation in Workflow 4.0

Content based correlation is used when you send a message out of a long running workflow and need to get a response back later into that same workflow using information contained inside the original message.  In this case, the correlation needs to be stored and made available to match the response message.

Content based correlation is easy to set up and use inside Windows Workflow 4.0.  At a high level you need to do the following:

  1. Create a Correlation Handle variable to use for the correction
  2. Set up this variable and xpath on the Send Activity
  3. Set up this variable and xpath on the Receive Activity

It is that easy! 

Lets take a look at this process step by step.

First, set up a new Variable inside the workflow.  In the picture below, the variable is named OrderCorrelation. 

Using the Type Picker and the Search box on the top right, search for CorrelationHandle.  Select the value under the WorkflowServiceModel as seen below.

Now we use this variable on the Send Activity that needs to set up the correlation.  Select the Send Activity and press F4.  When the properties window opens, go to section 4 – Send Message Correlation.  Here we need to set three values.  First, set the variable in the Correlation Handle box and then select the correct endpoint from the drop down as seen below.

The third value to set on the Send Activity is the XPath values to use for the content based correlation.  Below, we set up an OrderIdQuery with an XPath of //temp:OrderId.  OrderId is the variable name of the value in the output message we want to correlate on.

When it is all done, the Send Message will look like the picture below.

The same process is followed on the Receive Activity.  Make sure to use the same Correlation Handle.  The end result of the Receive Activity is shown below.


And you are done!  It is that easy to set up content based correction inside Workflow 4.0. 

BizTalk vs Dublin – Do Not Get Confused

I was reading an interesting blog post today called Will Dublin Replace BizTalk?

It got me thinking more about this and I wrote up the response below.  I would love to hear other peoples comments and thoughts on this.  I see a clear separation on when you would use BizTalk vs when you would use Dublin.  I see a great story going forward with both technologies working together.  

I welcome comments and feedback on this. 

Comment on “Will Dublin Replace BizTalk?” blog post:

“I like your article on Dublin and BizTalk but wanted to comment on a few parts.

As someone who makes a living working with BizTalk Server my ears perk up when I hear “it is going away”. I heard this same kind of talk three years ago when Microsoft introduced Workflow in .Net 3.0. I for one was confused about how Workflow would fit in with BizTalk. And now, BizTalk is bigger and stronger than ever.

Why? Because it does a great job inside the enterprise for the scenarios it is designed to address such as system and application integration, connectivity, transformation, and monitoring, just to name a few.

What I see Dublin (and .Net 4.0) doing is taking some of the best features of BizTalk and making them accessible to other parts of the enterprise that might not have requirements that call for a full and robust Integration Server. With Dublin specifically, it is the management and monitory concepts from BizTalk that we can see inside the Dublin code from PDC.

Will there be scenarios that now make more sense in a Dublin environment than BizTalk? Of course. Will all scenarios fit into Dublin – not a chance.

Even today I hear the question, “Why would we pay for BizTalk?” And for some customers BizTalk is not the right answer. For those customers they will now have Dublin to look at rather than having to custom build a solution.

It often comes down to a cost to buy vs. cost to build analysis. On an individual project basis this sometimes becomes a difficult decision. When you think enterprise wide, typically the cost to buy a supportable product with a core set of features is the better answer. With BizTalk, you get adapters, high availability, robust development tools, EDI, RFID, flat file parsing, administration, BAM, etc. While some of these items are being moved further down into the stack, not all of them will be.

The buy vs. build analysis will become more difficult. I think that is a good thing. The end goal is to do more with less and to lower the cost for consistently delivering supportable and maintainable code that meets the requirements. I think Dublin (and .Net 4.0) helps us down that road. In my mind, I’ll always see a need for BizTalk and will continue to recommend it to my clients as a core component in the enterprise when it makes sense.

I do not foresee a world without BizTalk, but I am excited about the world with options that include BizTalk and Dublin.

If you are looking for more information on Dublin, I have a screen cast available ( and a high level visual review of Dublin ( available on my web site.

Stephen W. Thomas

Screencast: Content Based Correlation in Workflow 4.0

What is Correlation? 

Correlation is when a process sends a message out and that same process is expecting a response to be returned to the same instance of that process. The complexity rises when the messaging patterns become asynchronous or the process becomes long running.  Asynchronous and long running processes are a common scenario inside business processes today.

BizTalk Server is great at correlation inside Orchestrations given the publish and subscribe architecture of BizTalk Server. BizTalk supports both system based correlation (based on a Send Port or File Name) and content based correlation using specific values inside the message.  Content based correlation fits a greater number of scenarios. 

Workflow 4.0 has the ability to do content based correlation and it looks and feels a lot like BizTalk (which is a good thing).

I have put together a short screencast video to walk though setting up content based correction inside Workflow 4.0.  To set up content based correlation in Workflow 4.0, you first create a correlation variable of type CorrelationHandle. Then, you set this variable and xpath on the corresponding send and receive shapes. This video takes you through the process step by step.

Watch the video live via Flash or download the Windows Media version.

First Look Screen Shots of Workflow 4.0

Make sure you check out the video content on Workflow 4.0 available at

Consuming WCF Services in Workflow 4.0

Flowcharts and Rules in Workflow 4.0

Windows Workflow 4.0 is a major upgrade to the existing Microsoft workflow technology.  As part of this upgrade, the designer has been enhanced to account for new features and increase the developer experience.  Below is a screen shot of a basic sequential workflow.

A cool feature, that is not shown here, is the dynamically changing gray arrows.  If a new shape is dragged over between the Persist and Delay shape above, the gray arrow would expand. 

On the bottom left of the surface is the new Variables window.  This somewhat resembles BizTalk’s variable experience inside the Orchestration. 

The out-of-the-box Activities are a little different as well with some 4.0 additions.  Keep in mind this is Beta code so more Activities could be added or removed at any time.

In the list above, you can see a new Flowchart activity.  This represents the new flowchart workflow style.  The Flow Decision and Flow Switch are part of this new style as well.  Below is a completed flowchart workflow.

When working with flowcharts, you drop a Flow Switch (Yellow square with White X above) and draw lines from this shape to others following the path the logic should flow.  The Flow Switch behaves similar to a CASE statement.

The above flowchart uses the Workflow 4.0 Rules.  A sample rule is below.

Some new enhancements with the WCF and WF interactions now make communication easier.  Below is the windows to configure inputs and outputs from a WCF message based Workflow. 


One of the best features of Workflow 4.0 is the real-time validation on the variable fields.  Inside an Assign shape for example, when you tab out of a cell that variable name is checked to ensure it exist.  If not, you get a red X and a pop-up message.  Due to my poor spelling, I am sure this will save me countless hours over the years.

Overall I found the new designer easy to use and it made sense to me – mostly due to the likeness to the Orchestration designer in BizTalk.

Hope this post gives you a quick first look at the new Workflow designer.  Enjoy.

Videos on Modeling (Oslo), Windows Application Server (Dublin), and .Net 4.0 Workflow

Today is a great day to be a BizTalk Developer! Why? Microsoft has introduced .Net 4.0, Windows Application Server (Dublin), and Microsoft’s Modeling Platform (Oslo).  These new technologies compliment the existing Connection System technologies.

As you look though the various technologies one thing is consistent: Take the best things of BizTalk and allow others outside of BizTalk to leverage it!

I’ve put together over an hour of first look videos to help show the new features of Microsoft’s latest offerings.

The following videos are now available on

First Look at Windows Application Server (Dublin) – If you do not watch anything else, watch this video! This video takes a look at the new Windows Application Server features. It shows how to export existing applications and import them into another host on another server, how to set variables inside Workflow 4.0 to be tracked, how to create a custom tracking profile, and how to configure your service to use this custom profile. (Download WMV)

First Look at Quadrant – Oslo’s Modeling Tool -This video is a quick overview of the new modeling tool Quadrant. It walks though the basic user experience. It shows how to work with and edit exiting models, drop workpads onto the workflow surface, add and edit data, and edit existing models. (Download WMV)

First Look at M – Oslo’s Modeling Language – This video walks though creating a simple model using the new M Modeling Language. A simple Domain-Specific Language (DSL) model is also looked at. How often do you get to see a new language? (Download WMV)

Consuming WCF Services in Workflow 4.0 – This video takes a quick look at the new designer experience for Workflow 4.0 inside Visual Studios 10. A simple application is created to communicate with an existing WCF Service. This demonstrates the new interface for Workflow and WCF interactions. (Download WMV)

Flowcharts and Rules in Workflow 4.0 – This video walks though creating an application using the new Flowchart style of workflow. Inside the flowchart workflow, the new Workflow 4.0 Rules are used to evaluate input data. (Download WMV)

It is important to point out that these sets of technologies are not designed to replace BizTalk but rather enhance the rest of the framework. BizTalk still serves a mission critical need as the Microsoft Integration Server and Adapter provider.

Have fun and enjoy!