Our Accomplishments

Download Report

Transcript Our Accomplishments

Slide 1
Agenda

Introduction to Windows Workflow
 What is it?
 What are activities?
 Hosting
Out of the box Activities
 Custom Activities and Dependency Properties
 Handling faults
 WF Persistence and Tracking

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:
 Sequential
 State machine

Slide 5
Visual Studio provides us the tooling
support to create Workflows easily
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:

 SequenceActivity
 CodeActivity
 IfElseActivity
 WhileActivity
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 –
 SharePoint
 BizTalk
 WCF
Slide 9
Demonstration
Slide 10
Things to cover

IDE
 Design surface
 Properties window
 Document Outline
Sample Workflow using Code activity
 Debugging experience

Slide 11
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 services
 Transaction handling
 Compensation
 Fault handling
 Synchronization
 Calling other workflows
 etc
Slide 16
Demonstration
Slide 17
Creating 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 Binding
 Attached properties
 Meta properties
Slide 20
Dependency Property declaration
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);
}
}
Slide 21
Demonstration
Slide 22
Slide 23
Faults

Faults can occur at any time in a WF:
 Exceptions thrown
 Activity failures
 Throw statements in code activities
 Throw Activity in WF

Slide 24
If a fault occurs and is not handled, then the
WF terminates
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
Demonstration
Slide 26
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
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
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 readyto-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
Slide 35