Top Banner
VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc (www.idesign.net) [email protected]
20

VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () [email protected].

Jan 02, 2016

Download

Documents

Garry Miller
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

VWF310: Encapsulate Custom Business Processes with Custom

WF Activities

Brian Noyes

IDesign Inc (www.idesign.net)

[email protected]

Page 2: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

About Brian

• Chief Architect, IDesign Inc. (www.idesign.net) • Microsoft Regional Director / MVP• Publishing

● Developing Applications with Windows Workflow Foundation, LiveLessons training DVD, June 2007.

● Smart Client Deployment with ClickOnce, Addison Wesley, January 2007

● Data Binding in Windows Forms 2.0, Addison Wesley, January 2006● MSDN Magazine, MSDN Online, CoDe Magazine, The Server

Side .NET, asp.netPRO, Visual Studio Magazine• Speaking

● Microsoft TechEd US, Europe, Malaysia, Visual Studio Connections, DevTeach, INETA Speakers Bureau, MSDN Webcasts

• Participates in Microsoft Design Reviews• E-mail: [email protected]• Blog: http://briannoyes.net

Page 3: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Agenda

• Activities Overview

• Custom Activities Overview

• Custom Simple Activities

• Custom Composite Activities

Page 4: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

WF Activities Overview

• Activities are the building blocks of workflows

• Activities can be simple or composite● Simple: Does not contain child activities, just

executable code● Composite

• Contains child activities• Can schedule children for proper execution order

through the scheduler queue

Page 5: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Agenda

• Activities Overview

• Custom Activities Overview

• Custom Simple Activities

• Custom Composite Activities

Page 6: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Custom Activities

• Reasons for Custom Activities● Encapsulation

• Composite activities to avoid duplication

● Domain specific activities• Vertical market

● Advanced control flow• Specific flow patterns• Multithreading

Page 7: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Activities: An Extensible Approach

OOB activities, workflow types, base types

General-purpose Activity libraries define workflow constructs

Create/Extend/ Compose activities

App-specific building blocks

First-class citizens

Base ActivityLibrary

Custom Activity Libraries

Author new activity

Extend activity

Compose activitiesOut-of-Box

Activities

Vertical-specific activities & workflows

Best-practice IP & Knowledge

Domain-Specific Workflow Packages

Compliance

RosettaNet

CRM

IT Mgmt

Page 8: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Custom Activities

• Author custom activity class (Required)● Derives from Activity or other Base Activity

Library class● CompositeActivity for composites

• Define related classes (Optional)● Executor● Validator● Designer● Toolbox Item

Page 9: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Activity Attributes

• Designer● Specify design time behavior of activity

• Validator● Design and runtime checking to make sure activity is used correctly

• CodeGenerator● Perform compile time code generation for the activity

• Serializer● Serializes activity metadata to markup

• ToolboxItem● Determine icon in Toolbox

• SupportsTransaction● Enable transaction management and propagation in activity

• SupportsExceptionHandlers● Allows hookup of exception handler activities

Page 10: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Activity Definition

• Base class : Activity• Add 0..many DependencyProperty

● Centralized repository of workflow state● Define the properties available on the activity● Faster serialization than normal properties and fields● Accessible from child activities

• Add 0..many wrapper (normal) properties● Use base class GetValue/SetValue methods for

persistence model● Serializable types if persistence enabled

Page 11: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Activity Lifecycle

Initialized Executing Closed

Page 12: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Activity Lifecycle

Initialized Executing ClosedUninitializing

Canceling

Faulting

Compensating

Page 13: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Dependency Properties

• Three kinds● Attached● Data binding● Metadata

• Add semantics over normal properties

• Greater scope than normal properties● Stored through static state bag on base class

Page 14: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Agenda

• Activities Overview

• Custom Activities Overview

• Custom Simple Activities

• Custom Composite Activities

Page 15: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Simple Activity Definition

• Create class that inherits Activity base class• Override base class Execute method

• Do activity work from Execute• Can also override Initialize / Uninitialize• Use activity execution context to access

services

protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { return base.Execute(executionContext); }

Page 16: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Agenda

• Activities Overview

• Custom Activities Overview

• Custom Simple Activities

• Custom Composite Activities

Page 17: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Composite Activity Types

• Basic● Like a user control in Windows Forms or ASP.NET● Container for other pre-defined activities● Drag and drop in the designer● Default rendering shows all child activities when used in

a workflow● Expose properties as needed

• Advanced● Define custom child activity types or scheduling

algorithms● Define custom design time rendering and behavior

Page 18: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Advanced Composite Control Flow

• Enqueue child activities in desired order● Use ActivityExecutionContextManager.

CreateExecutionContext● Use ActivityExecutionContext.ExecuteActivity● Handle Closed event of child activities to

decide on own composite activity completion

Page 19: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Resources

• Essential Windows Workflow Foundation, Dharma Shukla and Bob Schmidt, Addison Wesley

• Pro WF, Bruce Bukovics, Apress• Microsoft Windows Workflow Foundation Step by Step, Kenn Scribner,

Microsoft Press• Build Custom Activities to Extend the Reach of Your Workflows, Matt

Milner, MSDN Magazine, Dec 2006 http://msdn2.microsoft.com/en-us/magazine/cc163504.aspx

• Windows Workflow Foundation: Creating a Custom Composite Activity, Morgan Skinner, MSDN Online, http://msdn2.microsoft.com/en-us/library/aa480200.aspx

• Developing Applications with Windows Workflow Foundation, Brian Noyes, Addison Wesley LiveLesson

• Email: [email protected]• Blog: http://www.softinsight.com/bnoyes

Page 20: VWF310: Encapsulate Custom Business Processes with Custom WF Activities Brian Noyes IDesign Inc () brian.noyes@idesign.net.

Your Feedback is Important

Please fill out a session evaluation form and either put them in the basket near the exit

or drop them off at the conference registration desk.

Thank you!