Microsoft’s Windows Workflow Foundation (WF) provides a framework for creating scalable applications consisting of independent program units called activities. WF 4 was a major rewrite of this technology, offering significantly higher performance and making it easier to create and execute workflow applications. WF 4.5 contains new activities, designer capabilities, and a new workflow development model (state machines). It also supports the use of C# expressions in C# workflows. This four-day course covers WF 4.5 and uses Visual Studio 2015, which provides a visual designer for creating workflows.

The course begins with an overview of the concepts of workflow and the programming model provided by WF. The essentials of WF programming are then covered followed by a systematic treatment of the major features of WF, including the Built-In Activity Library. Primitive and control flow activities are discussed, and the alternatives to hosting workflows are covered. Collection and parallel activities are covered. The creation of custom activities, both using the designer and code, is explained. Flowchart and state machine activities are covered. Persistence and bookmarks are discussed. Workflow Services, using Windows Communication Foundation (WCF) is covered. The course concludes with a discussion of debugging, error handling, transactions and compensation.

Numerous programming examples and exercises are provided. The student will receive a complete set of notes and all the programming examples.

Course Duration: 4 Days
Prerequisites:

The student should have programming experience in C# and the .NET Framework and be familiar with the Visual Studio development environment.

Hardware and Software Requirements:

Required software is Visual Studio 2015 and SQL Server 2014 Express. The free Visual Studio Community 2015 can be used. The recommended operating system is Windows 7. See the course Setup Notes for details.

A good minimal hardware profile for this course would have a 1.8 GHz or better CPU, 2 GB of RAM, and at least 10 GB of free disk space for tools installation and courseware.

Required software is Visual Studio 2015 and SQL Server 2014 Express. The free Visual Studio Community 2015 can be used. The recommended operating system is Windows 7. See the course Setup Notes for details.

A good minimal hardware profile for this course would have a 1.8 GHz or better CPU, 2 GB of RAM, and at least 10 GB of free disk space for tools installation and courseware.

Course Objectives:
  • Understand the concept of workflow and the architecture of WF
  • Implement workflow applications using WF
  • Use standard activities from the Built-In Activity Library
  • Implement custom activities for workflow applications
  • Provide hosting for workflow applications
  • Implement persistence in workflow applications
  • Implement and consume workflow services
  • Debug workflow applications
  • Handle errors and perform compensation in workflow applications
  • Understand the concept of workflow and the architecture of WF
  • Implement workflow applications using WF
  • Use standard activities from the Built-In Activity Library
  • Implement custom activities for workflow applications
  • Provide hosting for workflow applications
  • Implement persistence in workflow applications
  • Implement and consume workflow services
  • Debug workflow applications
  • Handle errors and perform compensation in workflow applications
Course Outline:
  • Workflow Foundation Conceptual Overview
    • What is Workflow?
    • Windows Workflow Foundation
    • Workflows
    • Activities
    • A Workflow Business Scenario
    • Workflow Foundation 3
    • Workflow Foundation 4
    • Workflow Foundation 4.5
  • Getting Started with WF 4.5
    • Visual Studio Workflow Projects
    • Workflows in Code
    • Workflows in XAML
    • Workflow Designer
    • Sequence
    • Assign
    • Variables, Arguments and Expressions
    • WriteLine
    • Control Flow
  • Primitive and Control Flow Activities
    • InvokeMethod
    • Workflow Variables
    • Delay
    • Parallel
    • If
    • While and DoWhile
    • Switch
  • Custom Activities
    • Why Custom Activities?
    • Arguments
    • Activity Class Hierarchy
    • CodeActivity
    • Composing Activities
  • Workflow Hosting
    • WorkflowInvoker
    • WorkflowApplication
    • WorkflowApplication Delegates
    • Canceling and Aborting a Workflow
    • Terminating a Workflow
    • Workflows in a Windows Application
    • Workflows in ASP.NET
  • Collection and Parallel Activities
    • Collection Activities
    • ForEach
    • ParallelForEach
    • AsyncActivity
  • More about Custom Activities
    • Waiting for Input
    • Bookmarks
    • NativeActivity
    • Pick
  • Flowchart and State Machine
    • Flowcharts
    • Flowchart Activity Designers
    • State Machines
    • States and Transitions
    • State Machine Activity Designers
    • Threading Issues
  • Persistence
    • Long-lived Workflows
    • Persistence and Bookmarks
    • Persistence Store in SQL Server
    • PersistableIdle
    • Unloading and Loading
    • Serializing Instance Identification
  • Workflow Services
    • What is WCF?
    • Address, Binding and Contract
    • Workflow Services
    • Messaging Activities
    • Exposing a Workflow as a Service
    • Calling a Service from a Workflow
    • Multiple Operations
  • Debugging and Error Handling
    • Breakpoints in Activities
    • Handling Exceptions in the Host
    • Handling Exceptions in the Workflow
    • Transactions
    • Compensation
  • Workflow Foundation Conceptual Overview
    • What is Workflow?
    • Windows Workflow Foundation
    • Workflows
    • Activities
    • A Workflow Business Scenario
    • Workflow Foundation 3
    • Workflow Foundation 4
    • Workflow Foundation 4.5
  • Getting Started with WF 4.5
    • Visual Studio Workflow Projects
    • Workflows in Code
    • Workflows in XAML
    • Workflow Designer
    • Sequence
    • Assign
    • Variables, Arguments and Expressions
    • WriteLine
    • Control Flow
  • Primitive and Control Flow Activities
    • InvokeMethod
    • Workflow Variables
    • Delay
    • Parallel
    • If
    • While and DoWhile
    • Switch
  • Custom Activities
    • Why Custom Activities?
    • Arguments
    • Activity Class Hierarchy
    • CodeActivity
    • Composing Activities
  • Workflow Hosting
    • WorkflowInvoker
    • WorkflowApplication
    • WorkflowApplication Delegates
    • Canceling and Aborting a Workflow
    • Terminating a Workflow
    • Workflows in a Windows Application
    • Workflows in ASP.NET
  • Collection and Parallel Activities
    • Collection Activities
    • ForEach
    • ParallelForEach
    • AsyncActivity
  • More about Custom Activities
    • Waiting for Input
    • Bookmarks
    • NativeActivity
    • Pick
  • Flowchart and State Machine
    • Flowcharts
    • Flowchart Activity Designers
    • State Machines
    • States and Transitions
    • State Machine Activity Designers
    • Threading Issues
  • Persistence
    • Long-lived Workflows
    • Persistence and Bookmarks
    • Persistence Store in SQL Server
    • PersistableIdle
    • Unloading and Loading
    • Serializing Instance Identification
  • Workflow Services
    • What is WCF?
    • Address, Binding and Contract
    • Workflow Services
    • Messaging Activities
    • Exposing a Workflow as a Service
    • Calling a Service from a Workflow
    • Multiple Operations
  • Debugging and Error Handling
    • Breakpoints in Activities
    • Handling Exceptions in the Host
    • Handling Exceptions in the Workflow
    • Transactions
    • Compensation