Architect's Master Class

 

 
Windows Workflow Foundation Master Class

Overview

Windows Workflow Foundation (WF) is a framework for building process-oriented workflow applications using the Microsoft .NET Framework. Workflow provides a design abstraction for building sequential processes or state-machine driven logic in middle tier or presentation tier applications. The class starts by explaining where workflow is appropriate and how to use it in your applications, and then continues to discuss in depth how to develop workflow-driven applications using WF. You will learn how to design and develop sequential workflows and state machine workflows, host workflows in a variety of application types, and allow workflows to communicate with their host application and the outside world. You will also get exposure to advanced aspects of workflow development, including concurrency, transactions, security, alternate processing flows, and building custom activities. In addition to learning how use the basic capabilities of WF, you will also learn when to use specific techniques and capabilities and when not to. You’ll get a better understanding of complex aspects of WF, and your knowledge will go well beyond what the available documentation. You will learn not only the mechanics of WF programming, but you will also best practices and design guidelines that span other forms of .NET development, making you a better developer and architect.

Format

The class consists of a balanced mix of slide presentation, demos, and hands-on labs. The demos reinforce both the concepts and the mechanics of using WF, and serve as reference implementations that can be used when implementing systems with WF. The demos also contain several utilities and helper classes that can save you coding effort in production projects.

Target Audience

The course is designed for experienced .NET developers and architects. Familiarity with .NET 2.0 programming is expected, with some exposure to layered application architecture, component-based programming, multithreading, and transactions.

Duration

This course runs for 3 intense days.

Offering

Available as an on-site training class and as a public training class.


Outline

Workflow Overview

  • Purpose of workflows
  • Suitable application types
  • Relation to other products
  • Availability / supported platforms

Workflow Essentials

  • Design process
  • Workflow architecture
  • Workflow Layers
  • Workflow hosting model
  • Workflow types
  • Activities
  • Services
  • Managing workflow state

Building Sequential Workflows

  • Project structure
  • Sequential activities overview
  • Control flow activities
  • Code activities
  • Managing workflow lifecycle

Building State Machine Workflows

  • Defining states
  • Defining transitions
  • State initialization/finalization
  • Querying workflow state
  • Nested composition of states

External Data Communications

  • Passing parameters in / out of workflows
  • Working with external events
  • Web service calls into / out of a workflow
  • Integrating with Windows Communications Foundation

Advanced Topics

  • Workflow concurrency
  • Transactions
  • Persistence and Tracking
  • Exception Handling
  • Asynchronous Workflow Events
  • Cancellation
  • Security
  • Building Custom Activities

 


Architecting WPF Applications

Overview

To build great compelling, responsive, secure smart client applications with WPF you need to master not just the basic building blocks of WPF but how to compose the rest of the application that sits behind the façade of the user interface. You need to understand user interface presentation patterns to have good separation between your UI definition and the supporting logic code. You need to have loose coupling between different pieces of functionality in your application so they can be independently developed, maintained, tested, and deployed. You need to be able to communicate between the loosely coupled parts of your application with events and commands. You need to secure the application, collect credentials from the user, authenticate them, authorize actions and authenticate against remote services, databases, and other external resources. You need to manage concurrent and asynchronous work in the client and deal with the threading issues of the UI context. You need to retrieve and update data, even cache it locally for offline use, and synchronize that data when you go back online. You also need to make calls to services and be notified on events outside of your application, such as changes to back end data. And finally, you have to deploy your application.

Obviously, there is much more to WPF development than just adding elements to a UI and creating styles to make the UI look pretty. This class is all about how to apply WPF in the context of a modern application, the patterns and techniques required addressing the issues above. The class starts by reviewing the key building blocks of WPF, how and when to best use them. Next, you will learn how to build composite UI applications with dependency injection, modularity, dynamic UI composition, loosely coupled commands and events. The class then gets into the system issues of handling multithreading and concurrency, securing your application, and making client calls to services. Data caching and synchronization are covered next, followed by working with cloud services and pub/sub service notifications of back end events.

The focus of the class is on how to properly apply WPF and tie it with the rest of your application, rather than the technology itself, enabling you to successfully build the rest of your smart client application so that it is testable, maintainable, extensible, and flexible.

The material presented includes IDesign's original techniques and utilities and goes well beyond anything you can find in conventional sources. The class is a unique opportunity to learn how to best apply WPF from IDesign, who was part of the strategic design review process for WPF, participated in the architecture and design of the application blocks. .

Format

The class uses a combination of frontal presentations, code demonstrations, and hands-on lab exercises to reinforce all of the concepts presented. The demos provide a code library to refer back to when building your own applications, and the labs help cement the key learning elements of the class using step-by-step procedures to accomplish the tasks covered.

Target Audience

Any .NET developer or architect responsible for building smart client applications with WPF will benefit from the training. Some exposure to the basics of WPF concepts is helpful. WCF familiarity is a plus.

Duration

5 day intense days.

Offering

Available as an on-site or public class.


Outline

XAML Programming

  • WPF Design Goals
  • WPF Capabilities
  • Coding practices

WPF Architecture

  • Application structure
  • Dependency Properties
  • Routed Events and Commands
  • Triggers• Resources
  • Windows Forms Interop

Controls

  • Control types
  • Layout and sizing
  • Styles
  • Control Templates
  • Custom controls
     

Data Binding

  • Data sources
  • DataContext and Bindings
  • Collection Views and Data Providers
  • Value conversion and data validation
  • Data Templates

Graphics

  • 2 D Vector Graphics
  • Bitmaps
  • Animation
  • 3D constructs
     

Design Principles

  • S.O.L.I.D. Principles
  • Interface-based programming
  • Service Orientation
  • Design for testability
  • Separated UI Patterns (MVC, MVP, MVVM)
  • Dependency Injection

Composite UI Applications

  • Prism Overview
  • Application architecture
  • Modules
  • UI Composition
  • Composite Events
  • Composite Commands
     

System Issues

  • Multithreading and concurrency
  • Security
  • Deployment
  • Data caching and synchronization
     

Working with Services

  • WCF Overview
  • Creating client proxies
  • Working with data contracts
  • Calling cloud services
  • Pub/sub service events

 

Copyright (C) 2010 IDesign, Inc. All rights reserved.