Silverlight – A Pragmatic Introduction

WPF – A Pragmatic Introduction

Training courses available from consultant, author and Microsoft insider Billy Hollis

Key points

To help you quickly discover if these courses are of interest for you and your organization, here are the key points you will want to know first. If the class looks like a good fit for you, the rest of this page has additional details.

·        Classes are designed to fuse technology with design, prototyping, and other success factors

·        Classes are taught personally by Billy Hollis, noted author and four year veteran of WPF and Silverlight development

·        Classes are most often done for a single organization, and can be customized

·        Classes are a flat rate price for any number of attendees

o   You are encouraged to include non-developers such as managers, business analysts, and visual designers in some parts of the class

·        For individuals, public classes are also available through training partners

·        You may choose a Silverlight course, a WPF course, or a course that combines the two

·        Examples of previous clients for training include the Theme Park Division of Disney, and the Royal Bank of Canada

Introduction

You’ve never made a transition like the one you are about to make.

You’ve probably moved to new technologies before, so you think that’s exaggeration or marketing hype. It’s not.

WPF and Silverlight are perhaps the most powerful technologies Microsoft has ever introduced for creating user-centric software - software that both appeals to users emotionally and raises their effectiveness and productivity.

But getting access to that power requires overcoming a double-barreled challenge.

First, your team has to master the technology bits: a new set of visual elements, a new markup language, a huge API. That’s hard enough, because the surface area of Silverlight and WPF are quite large.

Then comes the second and harder challenge - changing your entire view on how user interfaces are designed and constructed.

Oh, you can skip the second part if you want. You can hack out user interfaces that look and act pretty much the same way as the ones you’ve done in the past, perhaps with prettier colors. You won’t get nearly as much benefit for your investment, and you’ll risk your competition surpassing you by producing much better results. Plus, in many cases, you’ll be going against the grain by trying to force new technologies into old patterns, thereby wasting time and increasing your frustration.

If you really want to take the plunge and learn to use advanced user interface technologies effectively, you need a training class that brings together all the information you need for a major conceptual and technological shift.

Combining technology, design, and process in a single class

 

These classes, taught by an experienced WPF/Silverlight developer, noted Microsoft insider, and author of a forthcoming WPF book by MSPress, are designed specifically to help you start the journey to overcome these challenges.

Typical training courses for these technologies concentrate on features and tools instead of what you need the most, which is how to use the features to create stunning, productive user interface designs.

These classes stress core concepts and help students build a conceptual skeleton as their starting point for WPF and Silverlight development. You don’t just learn how features work; you are shown when to use them (and when not to!), and how to combine them with other capabilities to get interesting and effective results.

Then we go on to discuss other important concepts that will help you make one of the most significant transitions of your professional career: getting inside the mind of the user, interaction design vs. visual design, how to leverage the composition model to put all the pieces together, and how to refine your development process to take best advantage of the goodness that WPF and Silverlight can offer you.

Previous training recipients have praised the courses for significantly reducing the development time and dramatically improving the results for their first project using advanced interface technologies. Earlier training clients include the Theme Park Division of Disney, Royal Bank of Canada, and Teledyne Brown Engineering.

The courses emphasize foundational aspects that are common to both WPF and Silverlight, such as XAML, layout concepts, data binding, templating, styling, animation, and general design concepts. Comparison is made between the two technologies so that attendees understand the major differences between them and typical use cases appropriate for each.

Then each course goes on to specialize in the aspects unique to the focused technology. For Silverlight, that means areas such as RIA Services and the deployment model. For WPF, more attention is given to complex client architecture, Windows Forms interoperability, and other desktop concerns.

This syllabus may be adapted for the needs of a particular organization. If you have questions or particular topics you would like to see in the class, please contact me for discussion.

Syllabus

·        Understanding the potential of advanced UI - a sampler of WPF and Silverlight applications

·        A “high-altitude” view

o   Introduction to XAML basics

o   How interfaces are composed from simple parts

o   Simple layout containers

o   Simple data binding

o   A complete, working program demonstrating core concepts

·        Overview of the XAML markup language

o   Element vs. Attribute Syntax

o   XAML/XML namespaces

o   Event hooking

·        Designers for WPF and Silverlight

o   Visual Studio

o   Expression Blend

·        The WPF/Silverlight application model

o   Application class

o   Top level containers

o   UserControl

·        An overview of the element set

o   “Elements” vs. “Controls”

o   Panels – containers with layout

o   Controls and the concept of “content”

o   Text oriented controls

o   Simple formatted text

o   Other commonly used controls

o   List-oriented controls

o   Decorators and the Border element

o   Shapes

·        The layout system

o   How elements are sized and positioned

o   Properties that affect sizing and positioning

o   Details on how panels work

o   Attached properties in XAML

·        Brushes and colors

o   Translucent colors vs. the Opacity property

o   Gradients with translucent colors

o   Brushes from images and other content such as video

·        Data binding

o   Simple data binding to data sources

o   DataContext

o   Element-to-element binding

o   Data binding modes

o   Collection views and data binding navigation

o   “Binding friendly” objects: property change notification and ObservableCollection

·        Advanced data binding

o   Value converters

o   Validation rules

o   Simple ways to display errors

·        Resources

o   Basic concepts about resources

o   Creating resources of any .NET type

o   Creating lists in resources

o   Packaging resources in resource dictionaries

·        More on list-oriented controls

o   Navigation with a ListBox

o   Data templates

o   Changing templates on the fly

o   Template selectors

o   Changing the appearance of the selected item

·        Control template basics

·        Styles

·        Basic animation

o   Animating in code

o   Defining an animation as a resource in XAML

·        The VisualStateManager

o   States and state groups

o   Transitions with animations

o   Animating in Blend

·        Transforms

o   Animation of transforms

·        Media in WPF and Silverlight

·        Simple document handling in WPF

o   The document model for rich text

o   FlowDocument

o   The RichTextBox control

·        WPF vs. Silverlight comparison

·        Changes to the development process

o   The role of interaction designers and visual designers

o   Prototyping in WPF and Silverlight

o   Lessons learned from real projects

·        Architectural considerations

o   Navigation patterns

o   Building a navigation shell

o   Layers in the client tier

o   Helpful components for a general architecture

·        Brief overview of additional capabilities (time permitting)

o   Short overview of dependency and attached property internals

o   Ink in WPF

o   A short discussion of 3D in WPF

 

Optional Modules

Depending on which course is being offered and the needs of a particular organization, these optional modules may be included in addition to or instead of some of the material above:

-        RIA Services in Silverlight

-        General data access in Silverlight

-        Detailed training on Expression Blend

-        WPF/Silverlight Internals – dependency properties, routed events, the dispatch system, creation of attached properties, construction of helper objects that expose properties in XAML

-        Interop with Windows Forms

-        Details of Silverlight deployment

Class Materials

Class materials include:

·        A slide notebook

·        Step-by-step exercises (some of which may be done outside class)

·        Samples and code snippets in electronic form

Three day, four day, and five day versions available

If you just want the basics, the three day class covers them. At the end, your developers will be ready to tackle real development.

However, it's impossible to cover everything a developer will find useful in three days. So the class is also available in longer versions that add more content and more exercises. The five day version includes a half-day for prototyping and design around your own problem domain. Some previous training recipients have declared that part to be the most valuable part of the course.

Flat rate pricing

You're more likely to succeed in your first project if your entire team understands the potential in these technologies, including development managers, business analysts, and visual designers. Recognizing that, the fee for the course is the same regardless of the number of attendees. With this course, you don't have to struggle to justify extra budget for extra team members. Let them all in! Many non-developers don't stay for the whole week, but in the first two days, they'll learn the basics in how to think about application of advanced user interface technologies.

If you have at least six students to be trained, you will probably pay less for this course than your other options. If you have eight or more, it can be a real bargain!

More Information

For more information, contact Billy Hollis (Web site inquiries email , 615-333-6555 home office, 615-400-7678 mobile)