Download presentation
Presentation is loading. Please wait.
Published byBeverley Sherman Modified over 9 years ago
1
Slide 1
2
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
3
Slide 3
4
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
5
Windows Workflow Foundation Two types of workflows: Sequential State machine Visual Studio provides us the tooling support to create Workflows easily Slide 5
6
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
7
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
8
Creating workflows Can be created Declaratively (using XAML) Imperatively via code Slide 8
9
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
10
Demonstration Slide 10
11
Things to cover IDE Design surface Properties window Document Outline Sample Workflow using Code activity Debugging experience Slide 11
12
More on Activities Slide 12
13
Activities for Flow Control IfElseActivity WhileActivity ParallelActivity ConditionedActivityGroup (or CAG) Replicator TerminateActivity SuspendActivity InvokeWorkflowActivity Slide 13
14
Activities for State Management StateActivity SetStateActivity StateInitializationActivity StateFinalizationActivity Slide 14
15
Activites for Event Handling ListenActivity EventDrivenActivity EventHandlersActivity EventHandlingScopeActivity Slide 15
16
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
17
Demonstration Slide 17
18
Creating your own activities Slide 18
19
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
20
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
21
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); }
22
Demonstration Slide 22
23
Slide 23
24
Faults Faults can occur at any time in a WF: Exceptions thrown Activity failures Throw statements in code activities Throw Activity in WF If a fault occurs and is not handled, then the WF terminates Slide 24
25
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
26
Demonstration Slide 26
27
Slide 27
28
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
29
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
30
Slide 30
31
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
32
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
33
Slide 33
34
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
35
Slide 35
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.