matt winkler program manager microsoft corporation tl21

28
WF 4.0: Extending Workflow With Custom Activities matt winkler program manager mwinkle@microso ft.com http://blogs.ms dn.com/mwinkle Matt Winkler Program Manager Microsoft corporation http://blogs.msdn.com/mwi nkle TL21

Upload: maura-terrill

Post on 01-Apr-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Matt Winkler Program Manager Microsoft corporation  TL21

WF 4.0: Extending Workflow With Custom Activities

matt winklerprogram manager

[email protected]://blogs.msdn.com/mwinkle

Matt WinklerProgram ManagerMicrosoft corporation

http://blogs.msdn.com/mwinkle

TL21

Page 2: Matt Winkler Program Manager Microsoft corporation  TL21

Workflow overview Activity overview Basic activity authoring Advanced activity authoring Activity designers

Agenda

Page 3: Matt Winkler Program Manager Microsoft corporation  TL21

Host (.exe, IIS, "Dublin", .NET Services, …)

WF Runtime Extensions

Tracking

Persistence

What Is Workflow?

Workflow programs coordinate work with minimal ceremony

Activities Runtime Tooling

ToolingVS

DesignerVS

DebuggerRehosted Designer

WorkflowActivity Library

Page 4: Matt Winkler Program Manager Microsoft corporation  TL21

Activity

Work

Data

Page 5: Matt Winkler Program Manager Microsoft corporation  TL21

Activity model and runtime

Control Flow activities

Flowchart Sequential State machine Rules

Activity LibraryCustom activities

Base Activity library

WCF messaging

Database PowerShell

Error handlingExpressions

Interop

Utilities

WF primitives

BPEL

Sharepoint Dynamics Systems center HPC Team Foundation

server<YOUR CODE HERE>

Page 6: Matt Winkler Program Manager Microsoft corporation  TL21

Compose and configure the vocabulary Unit of work not available out of the box Model custom control flow

Why Custom Activities?

Page 7: Matt Winkler Program Manager Microsoft corporation  TL21

Creating A Custom Activity Demo

demo

Page 8: Matt Winkler Program Manager Microsoft corporation  TL21

Activity Overview

Page 9: Matt Winkler Program Manager Microsoft corporation  TL21

CollectVotes

InArgument<string> Polling Place

InArgument<DateTime> ElectionDate

OutArgument<List<Vote>> Votes

Activities = Data

Page 10: Matt Winkler Program Manager Microsoft corporation  TL21

Sequence

CollectVotes

Polling Place

ElectionDate

Votes

AnalyzeVotes

Votes

Results

Variable<List<Votes>> Votes

Activities = Data

Page 11: Matt Winkler Program Manager Microsoft corporation  TL21

Calculate PiInArgument<Int64> DecimalPlaces

OutArgument<string> PiAsString

Execute

Completed

Atomic execution

Activities = Work

Page 12: Matt Winkler Program Manager Microsoft corporation  TL21

Prompt

InArgument<string> Question

OutArgument<string> Response

Execute

Completed

Bookmark Resume

Continuation, Long Running, or Reactive Execution

yield

Activities = Work

Page 13: Matt Winkler Program Manager Microsoft corporation  TL21

Call 2 friends

Call Ed Call Kenny

Execute

Completed

Composite execution

Schedule activity

Child completed

yield

Activities = Work

Page 14: Matt Winkler Program Manager Microsoft corporation  TL21

Executing Closed

Canceled

Faulted

Activity Lifecycle

Page 15: Matt Winkler Program Manager Microsoft corporation  TL21

Composing New Activities

demo

Page 16: Matt Winkler Program Manager Microsoft corporation  TL21

Advanced Activity Authoring Activity Data driven

Declares managed state (arguments, variables)

Execution logic is activities

WorkflowElement Declares managed state (arguments, variables)

Execution logic is opaque code

Interact directly with runtime

Page 17: Matt Winkler Program Manager Microsoft corporation  TL21

Activity Execution Context

Scheduling and control Bookmarks Resolving data Execution properties (Tx, Identity, etc) Host access Asynchronous I/O

Page 18: Matt Winkler Program Manager Microsoft corporation  TL21

Custom Execution Patterns

demo

Page 19: Matt Winkler Program Manager Microsoft corporation  TL21

Long Running Activities

demo

Page 20: Matt Winkler Program Manager Microsoft corporation  TL21

Creating Activity Designers

Customize developer experience Strongly leverage WPF data binding Loose coupling between runtime

and design time

Infrastructure

XAML

Model instance

Model item tree

WorkflowViewElement

WorkflowItemPresenter

WorkflowItemsPresenter

ExpressionTextBox

Page 21: Matt Winkler Program Manager Microsoft corporation  TL21

Creating Activity Designers

demo

Page 22: Matt Winkler Program Manager Microsoft corporation  TL21

Activities are the atoms of Workflow Activity = Data + Work Wide range of control over execution

Write activities!

Summary

Page 23: Matt Winkler Program Manager Microsoft corporation  TL21

One More Thing…

Page 24: Matt Winkler Program Manager Microsoft corporation  TL21

Resources

Breakout sessions TL17 – WF 4.0: A First Look TL06 – WCF 4.0: Building WCF Services With WF BB18 – “Dublin”: Hosting And Managing

Workflows And Services BB27 – .NET Services: Orchestrating Services And

Business Processes Using Cloud-Based Workflow BB57 – Dynamics AX: Building Business Process

Into Your Application http://msdn.microsoft.com/wf/future/ http://msdn.microsoft.com/wcf/future/ http://blogs.msdn.com/endpoint

Page 25: Matt Winkler Program Manager Microsoft corporation  TL21

Evals & Recordings

Please fill

out your

evaluation for

this session at:

This session will be available as a recording at:

www.microsoftpdc.com

Page 26: Matt Winkler Program Manager Microsoft corporation  TL21

Please use the microphones provided

Q&A

Page 27: Matt Winkler Program Manager Microsoft corporation  TL21

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market

conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 28: Matt Winkler Program Manager Microsoft corporation  TL21