skip to the main content area of this page
Trainings

WPF Master Class

 


Architecting WPF, Silverlight, and Metro Applications

To build great compelling, responsive, secure desktop clients with WPF you need to master not just the basic building blocks of XAML, but also 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 XAML application 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 in WPF 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 working with services from the client application.

The focus of the class is on how to properly apply WPF and tie it in with the rest of your application, as well as the technology itself, enabling you to successfully build the rest of your client application so that it is testable, maintainable, extensible, and flexible. You will also get some brief exposure to developing XAML client applications in the Metro style for Windows 8 and will learn where the opportunities are for skills and code reuse..

The material presented includes Brian Noyes' 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 XAML UI technologies from Brian Noyes, who was part of the strategic design review process for WPF and participated in the architecture and design of the application blocks.

Who Should Attend:

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

Course Outline:

Choosing a Client Technology

  • The Client Technology Landscape
  • WPF, Silverlight and HTML 5
  • Windows 8 / WinRT / Metro
  • Choosing between XAML and HTML 5

WPF Essentials

  • WPF Capabilities
  • Visual Studio Design Tools
  • Expression Blend Design Tools
  • 3rd Party Development Tools
  • Deployment models
  • XAML Programming
  • XAML Best Practices
  • Compilation and Packaging

WPF Architecture

  • Application structure
  • Dependency Properties
  • Behaviors
  • Routed Events and Commands
  • Triggers and Resources
  • Styles
  • Control Templates
  • Visual State Manager
  • Internationalization / Localization
  • Windows Forms Interop

Windows 8 WinRT / Metro Essentials

  • Metro Capabilities
  • Development Tools
  • Metro XAML Programming
  • Compilation and Packaging
  • Code and Skills Reuse

Controls

  • Working with Basic Controls
  • Layout and sizing
  • Working with Container Controls
  • Developing Custom Controls

Data Binding

  • Data sources
  • DataContext and Bindings
  • Working with Data Bound Controls
  • Data Templates
  • Collection Views and Data Providers
  • Value conversion
  • Validation

Design Principles

  • S.O.L.I.D. Principles
  • Testability/TDD
  • Separated UI Patterns (MVC, MVP, MVVM)
  • Dependency Injection (MEF and Uniity)

Composite UI Applications

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

System Issues

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

Working with Services

  • Consuming WCF Services
  • Consuming REST Services
  • Working with OData Services


Architecting WPF Applications


arrow Register

Date & Location

 

Häckers Grand Hotel
Bad Ems, Germany

September 2-6, 2013
arrow Price and Register
Architecting WPF Applications

Brian is CTO at Solliance, a Microsoft Regional Director and MVP.

He specializes in building maintainable client applications in XAML and HTML 5, as well as building the services that back them with WCF, ASP.NET Web API, and Windows Azure. Brian has authored several books including Developer’s Guide to Microsoft Prism 4, Data Binding with Windows Forms 2.0, and Smart Client Deployment with ClickOnce. He publishes articles frequently in a variety of publications and speaks at conferences worldwide including Microsoft TechEd, DevConnections, DevIntersection, VSLive!, DevTeach and others. Brian got started programming as a hobby while flying F-14 Tomcats in the U.S. Navy, later turning his passion for software into his current career.