IDesign




Architect's Master Class

Architecting WPF, Silverlight, and Metro Applications

Overview

To build great compelling, responsive, secure desktop client and rich web applications with WPF, Silverlight, or WinRT/Metro 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, Silverlight, and Metro 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, Silverlight, and WinRT/Metro (which overlap by 60-70%), how and when to best use them. Next, you will learn how to build composite UI applications in WPF and Silverlight 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, Silverlight, and WinRT and tie them in with the rest of your application, rather than the technology itself, enabling you to successfully build the rest of your 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 XAML UI technologies from IDesign, who were part of the strategic design review process for WPF and Silverlight, and 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 desktop or browser client applications with WPF, Silverlight, or WinRT/Metro will benefit from the training. Some exposure to the basics of XAML UI development concepts is helpful. WCF familiarity is a plus.

Duration

5 day intense days.

Offering

Available as an on-site or public class. For developers who will only use one of WPF or Silverlight in the near term (and interested in migrating to WinRT / Metro in the future), the concepts and code practices are the same for 70% of the material. Where differences exist, they will be called out. The class can also be taught as a WPF only or Silverlight only focus (with or without Metro coverage) for onsite classes.

Outline

Choosing a Client Technology

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

WPF and Silverlight Essentials

  • WPF and Silverlight Capabilities
  • Development Tools
  • Deployment models
  • XAML Programming
  • XAML Best Practices
  • Compilation and Packaging

WPF and Silverlight Architecture

  • Application structure
  • Dependency Properties
  • Behaviors
  • Routed Events and Commands
  • Triggers and Resources
  • Styles
  • Control Templates
  • Visual State Manager

WinRT / Metro Essentials and Architecture

  • Metro Capabilities
  • Development Tools
  • Metro XAML Programming
  • Compilation and Packaging
  • WinRT APIs
  • WinRT Controls
  • WinRT Contracts

Controls

  • Control types
  • Layout and sizing
  • Custom controls

Data Binding

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

Graphics

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

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

  • WCF RIA Services
  • WCF Data Services
  • WCF Services – SOAP and REST
  • Creating client proxies
Upcoming Classes

Subscribe to the offerings feed

© 2012 IDesign, Inc. All rights reserved. | Hosted by OrcsWeb.