Windows Workflow - An introduction
description
Transcript of Windows Workflow - An introduction
WINDOWS WORKFLOW
- AN INTRODUCTION
Mahesh Krishnan Senior Consultant, Readify
Slide 1
Agenda
Introduction to Windows WorkflowWhat is it? What are activities?Hosting
Out of the box Activities Custom Activities and Dependency Properties Handling faults WF Persistence and Tracking
Introduction to WF
Slide 3
What is WF? Stands for Windows Workflow Foundation (not WWF) One of the 4 pillars of .NET 3.0 WF provides:
A programming model for building Application workflows A runtime to host them
Windows Workflow Foundation
Two types of workflows:SequentialState machine
Visual Studio provides us the tooling support to create Workflows easily
Slide 5
Activities Activities are building blocks of a WF To a workflow, an activity is a re-usable
program statement An activity that contains other activities
is called a Composite Activity Examples of out of the box activities:
SequenceActivityCodeActivityIfElseActivityWhileActivity
Slide 6
WF Program A Workflow program is nothing but a
tree of activities WF programs typically wait for some
kind of an input and performs a bunch of activities
Once an activity finishes execution, the next activity in the WF is executed
Slide 7
Creating workflows Can be created Declaratively (using
XAML) Imperatively via code
Slide 8
Hosting The program is hosted via WorkflowRuntime
class Can be hosted in any .NET App
WinForms, Console, ASP.NET, WPF... Integrates with other MS technologies –
SharePointBizTalkWCF
Slide 9
Simple Workflow Example (using Code
Activity)
Demonstration
Slide 10
Things to cover IDE
Design surfaceProperties windowDocument Outline
Sample Workflow using Code activity Debugging experience
Slide 11
Out of the box Activities
More on Activities
Slide 12
Activities for Flow Control IfElseActivity WhileActivity ParallelActivity ConditionedActivityGroup (or CAG) Replicator TerminateActivity SuspendActivity InvokeWorkflowActivity
Slide 13
Activities for State Management StateActivity SetStateActivity StateInitializationActivity StateFinalizationActivity
Slide 14
Activites for Event Handling ListenActivity EventDrivenActivity EventHandlersActivity EventHandlingScopeActivity
Slide 15
Out of the box Activities (contd) Heaps of others:
Activities for Calling web servicesTransaction handlingCompensationFault handlingSynchronizationCalling other workflowsetc
Slide 16
Out of the box Activities
Demonstration
Slide 17
Custom ActivitiesCreating your own activities
Slide 18
Custom Activities Alternative to Code activity Derived from Activity class (or
something derived from it, like SequenceActivity)
Need to over ride Execute method Promotes re-use and is more testable Used from the designer Sometimes increases complexity
Slide 19
Dependency Properties Properties in Custom activities are usually
implemented as Dependency Property Unlike normal properties, value is not stored
in an instance variable They are registered with Dependency
Property Framework and supports these scenarios:Activity BindingAttached propertiesMeta properties
Slide 20
Dependency Property declaration
Slide 21
public static DependencyProperty CardNumberProperty = DependencyProperty.Register("CardNumber", typeof(string), typeof(ENettActivity));
[DescriptionAttribute(“The Credit Card number of user")][CategoryAttribute(“Credit Card Details")][BrowsableAttribute(true)][DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]public string CardNumber{
get { return ((string)(base.GetValue(ENettActivity.CardNumberProperty))); }set { base.SetValue(ENettActivity.CardNumberProperty, value); }
}
Custom ActivityDemonstration
Slide 22
Handling Faults
Slide 23
Faults Faults can occur at any time in a WF:
Exceptions thrownActivity failuresThrow statements in code activitiesThrow Activity in WF
If a fault occurs and is not handled, then the WF terminates
Slide 24
Fault handling try/catch blocks within code will work In custom activities, the HandleFault
method can be overridden to do clean ups
FaultHandlers and FaultHandler Activity can be used to handle specific Exceptions
Throw Activity can be used to throw Exceptions
Slide 25
Handling FaultsDemonstration
Slide 26
Workflow Persistence
Slide 27
Why do you need it? Typically Workflows are long running You may want to maintain the state of
workflows between machine shutdowns You may want to unload workflow
(dehydration) that is idle Scalability and Resource consumption
Slide 28
Persistence in Windows Workflow Implemented as an optional core service A Sql Server persistence service is
available out of the box The database can be created using
scripts from the directory - [...]\Framework\v3.0\Windows Workflow Foundation\SQL\en
The service can be added easily via configuration or via code
Slide 29
Tracking Workflows
Slide 30
Why do you need it? There may be lots of workflows running,
each in a different state You may want to track these workflows
and activities at runtime You may also want to find out what path
a certain Workflow instance took
Slide 31
Tracking in Windows Workflow WF Tracking Framework allows
monitoring of workflows by capturing events raised during WF execution
SqlTracking service is used to write this to SQL Server database
Like the persistence service, this can be added easily via configuration or code
Slide 32
Summary
Slide 33
Summary Windows Workflow provides the runtime
and API to create workflows in .NET Activities are the building blocks of WF .NET provides a whole bunch of ready-
to-use activities, but custom activities can also be created
Persistence services are needed for long running workflows
Tracking services can also be added to track the running of workflows
Slide 34
Questions?
Slide 35