Workflow & Workflow Manager 1.0: What’s New, What’s Coming

Sign in to queue

Description

What’s new in Workflow? Where’s Workflow headed? Come learn about the Windows Workflow Foundation capabilities in .NET 4.5 and the new Workflow Manager 1.0, including support for SharePoint Server 2013 & Office 365 workflows. You’ll hear from the team about where we’ve been investing and what we’re working on for the future.
For more information, check out these courses on Microsoft Virtual Academy:

Day:

1

Code:

2-033

Room:

B92 Stinger

Embed

Download

Download this episode

For more information, check out these courses on Microsoft Virtual Academy:

The Discussion

  • User profile image
    channel9alex

    Dave,

    Contract-First concept looks very interesting.
    Please correct me here: it appeared from the demo that the Contract-First workflow service is statefull - you were able to call different methods on the workflow service and get different results. When the WCF test client invokes a service, how does WCF test client pass a session id (or workflow instance id) to the workflow service to identify the workflow instance that this message applies to? Technically, I could have several workflow instances running on the same workflow service at the same time. I'd expect WCF tester client to somehow identify which workflow instance it tries to invoke...

    Could you post code sample for the Contract-First example with a walk through that explains what happens under the cover of the workflow service as it gets invoked via WCF tester?

    Thanks,
    Alex

  • User profile image
    DaveCliffe​WorkflowGuy

    Hi Alex,

    Sure, I put the simple demo code up on code.msdn.com with a brief description of how it works: https://code.msdn.microsoft.com/Contract-First-Authoring-f519ddf1

    To answer your questions: yes, workflow services are most typically stateful services.  In .NET 4, we introduced the concept of content-based correlation with workflow services, which allows you to choose a particular piece of data in your input messages to determine which instance the host should load.  In this example, I used both the 'gameMoniker' parameter (for the JoinGame messages) and the players' names (for the subsequent messages).

    Hope that helps,

    -- Dave

Add Your 2 Cents