Learning Goals
This course covers in depth the Windows Presentation Foundation (WPF) and Silverlight
3 and version 4, how to build the next generation of rich windows applications and Rich Internet
Applications (RIA). You will learn to use MS Visual Studio 2008/2010, MS Expression
Blend and MS Expression Media Encoder.
Target Audience
This in-depth course is meant for experienced .NET developers, who want to learn
how to build rich windows applications and Rich Internet Applications (RIA).
Prerequisites
Participants of this course need to have a solid understanding of the .NET platform
and have built .NET applications using either C# or VB.NET.
Course Outline - Part 1: Overview
Introducing WPF and Silverlight
What is user experience?
WPF architecture in .NET 3.5/4.0
Supported platforms.
Introduction to Silverlight
The Silverlight runtime model.
Silverlight as WPF "Light".
Comparing Silverlight versions.
Silverlight Architecture.
Introducing XAML
What is XAML?
XAML vs.Code.
Looking at XAML basic syntax.
Understanding XAML promoted and attached properties.
Nesting controls.
The Content property.
Extending XAML through markup extensions.
Understanding CLR and Xml namespace mapping.
Mapping multiple namespaces.
Naming elements.
Using events.
XAML code generation.
Loading and saving XAML.
Developer and designer collaboration for WPF
Designer/Developer productivity.
WPF programming cycle.
The Visual Studio Designer.
MS Expression Blend.
Using MS Expression Media Encoder.
WPF Controls
Class Hierarchy.
Tweaking the UI with transforms.
WPF shapes, such as Rectangle and Ellipse.
Using images and videos in your WPF application.
Brushes, pens, colors.
Using a VisualBrush to build a reflection effect.
The power of composability.
Content controls, Container controls, Header controls, Item controls.
Using Menus and Tabs.
Range controls, Using Text controls, Using InkCanvas.
Introduction to WPF Layout
Look at WPF layout capabilities.
Absolute layout using Canvas.
Using StackPanel, WrapPanel and DockPanel.
The do-it-all panel: Grid.
Tweaking using panel attached properties.
Reusability with WPF Resources
Re-using objects through resources.
Resource inheritance.
Static resources.
Dynamic resources.
Resources and code-behind Merging Resource Dictionaries.
Using binary resources.
Principles of WPF Styles, Triggers and Templates
Why we need style(s).
WPF look-less controls.
Example: Restyling a ListBox.
Intro to templates.
Introduction to WPF Data Binding
The need for data binding.
Binding in code and markup.
Introduction to simple data binding.
Introduction to complex data binding.
Introduction to Animation and 3 Dimensional
Simple animations.
Mapping a 3D world to 2D using ViewPort3D.
Lights, camera, action! 3D transformations
Course Outline - Part 2: Deep Dive
Building your own Controls
Dependency and attached properties.
Routed events – bubbling and tunneling.
Building a custom control.
Using Drawings.
Building a custom panel.
Measuring and Layout.
Building custom controls with Silverlight 3.
Advanced Layout
Using GridSplitters.
Sharing row and column sizes.
Tweaking using panel attached properties.
Building a custom layout control.
Measuring and Layout.
Using Blend.
Using the Ribbon control
Building Styles, Triggers and Templates
Basing styles on other styles.
Applying styles to controls.
Selecting styles dynamically.
Making controls dynamic through triggers.
Logical vs.
Visual tree.
Using templates.
Using the Visual State Manager.
Implementing WPF Data Binding
Simple data binding.
Converting data for data binding.
How to validate data.
Source and DataContext.
Complex data binding.
Using the DataGrid control
Data templates.
Dynamically choosing the data template.
Master-detail data binding.
Filtering, sorting and grouping data.
Binding to Xml.
Binding to a DataSet.
Hierarchical data binding.
Debugging data binding.
Building animations with Blend
Building animation timelines.
Key Frame animations.
Animations in triggers and templates.
Building animations in code and with Blend.
Advanced text layout
Inline and Block elements.
List and Table.
FlowDocument.
Document viewers.
Adding Commands to your WPF applications
Using Command and CommandBinding instances, built-in Commands.
CommandGestures.
Using DataBinding with commands.
Deploying your WPF applications
Using XCOPY deployment.
Using Click-Once.
Deploying your WPF application with XBAP.
Pages and Navigation.
Using Loose XAML.
Comprehending and extending XAML
Building classes with XAML support.
Type converters.
The Content property.
Building your own markup extension.
Mapping multiple namespaces.
Naming elements.
Loading and saving XAML.
Interoperability between WPF and Windows Forms
Using WPF controls in Windows Forms applications.
Using Windows Forms controls in your WPF application.
Using WPF controls
Using WPF controls.
Opacity masks.
Introduction to the MVVM pattern
What is the MVVM pattern?
Using WPF commands instead of event handling
Defining the model
Adding the ViewModel
Binding the View to the ViewModel
Building Silverlight applications with .NET
The Silverlight .NET runtime.
Using managed code with Silverlight.
The difference with WPF.
File management.
Using isolated storage for caching.
Web Services and Silverlight apps
Introducing WCF.
Using web services in Silverlight.
Using WebClient.
Using LINQ to Xml.
Generating a Web Service proxy.
Using REST with Silverlight.
Building RIA Services with Silverlight
Interaction between Silverlight and the browser
Catching HTML events and using the HTML DOM from managed code: Handling HTML
event in managed code.
Calling managed code from JavaScript.
Taking Silverlight out-of-browser.
Communication between 2 Silverlight clients.
Silverlight Network API.
Integrating Silverlight with ASP.NET AJAX
Hosting the Silverlight application on your ASP.NET web site.
AJAX with Silverlight.
Dynamic XAML.
|