Class Outline:

Description:
In this course, experienced developers who know the basics of Windows Forms development gain more advanced Windows Client design and development skills. WinForms and WPF programming models, as well as relative strengths and when to use each technology, are covered.

Course Outline:

Module 1: Windows Client Application Design
The goal of this module is to ensure that students understand how varying business requirements influence the design decisions when planning a Windows Client application. Students will learn how design requirements, specifications, and business goals affect the choice between WPF and Windows Forms when updating (or planning a new) Windows Client application.

Module 2: Introduction to Visual Studio 2010 and WPF Version 4The goal of this module is to introduce students to the new features that Visual Studio 2010 and WPF version 4 provide

Lessons
• What’s New in Visual Studio 2010?
• What’s New in WPF Version 4
Lab : Guided Tour of Visual Studio 2010 and XAML
• Guided tour of Visual Studio 2010
• Guided tour of XAML Editor
After completing this module, students will be able to:
• Use new features in Visual Studio 2010
• Use new features in WPF version 4

Module 3: Designing and Developing a User Interface
The goal of this module is to teach the student how to design and build a UI that provides the expected end-user experience and UI functionality, and retains that experience/functionality in various end-user environments, as well as when the application window resizes.

Lessons
• Defining Page Layout
• Using Content Controls
• Using Item Controls
• Sharing Logical Resources in a Window
Lab : Building a User Interface
• Choosing User Interface Controls
• Laying out the User Interface
• Creating and Using Resource Dictionaries
After completing this module, students will be able to:
• Define page layout
• Use content controls
• Use item controls
• Share resources within a window or user control

Module 4: Taking Control of the User Interface
The goal of this module is to enable students to create a consistent and manageable user interface.

Module 5: Testing, Unit Testing, and Debugging
The goal of this module is to help students to develop good habits in regard to testing as well as enabling students to debug their applications. Students will also learn about advanced exception handling pertaining directly to Windows Client application scenarios

Module 6: Simple Data Binding and Validation
The goal of this module is to teach the student how to implement simple data binding and data validation in order to manage data in a data source (CRUD). In addition to learning how to bind a value to a UI element, the student should learn best practices concerning when to use the various implementations of data binding and how to connect to a data source with LINQ.

Module 7: Data Binding to Collections
The goal of this module is to enable the student to implement more advanced data binding scenarios, picking up where the previous module on data binding left off. The student will learn how to bind to ListView, GridView, DataGrid, and other collection classes.
Lessons
• Binding to Collections of Objects
• Using Collection Views
• Creating Master-Detail User Interfaces
• Using Data Templates
• Presenting Design Time Data Collections
Lab : Data Binding to Collections
• Binding to Collections of Data
• Using Collection Views
• Creating Master-Detail User Interfaces
• Using Data Templates
After completing this module, students will be able to:
• Bind to a collection of objects
• Sort, filter, and group collections by using collection views
• Create master-detail user interfaces
• Customize data display by using data templates
• Present data collections at design time

Module 9: Integrating Localization and User Assistance Features
The goal of this module is to teach students how to implement localization, user assistance, and accessibility features within an application.
Lessons
• Localization and Globalization
• Implementing User Assistance Features
• Providing User Accessibility Features
Lab : Localizing a WPF Application
• Preparing for Localization for the LocBAML Approach
• Localizing Resources by Using LocBAML
• Preparing for Localization by Using Strongly Typed Resources
• Localizing Resources by Using Strongly Typed Resources
• Choosing a Localization Approach
After completing this module, students will be able to:
• Describe WPF localization and globalization features
• Implement localized WPF applications
• Implement user assistance features
• Provide user accessibility features

Module 10: WPF 2D Graphics, Multimedia, and Printing
The goal of this module is to teach the students the basics of graphics in WPF. The module will also provide an overview of multimedia (audio and video).

Module 11: Control Customization
The goal of this module is to teach students how to customize controls and introduce students to custom controls.

Lessons
• Overview of Control Authoring
• Creating User Controls
• Creating Custom Controls
• Managing Control Appearance by Using Visual States
• Integrating WPF and Windows Forms
Lab : Building a User Control
• Identify the Approach Control Type
• Creating a User Control in WPF
• Adding a WPF Control to a Windows Forms Application
After completing this module, students will be able to:
• Explain scenarios and options for creating new controls
• Create user controls
• Create custom controls
• Integrate WPF and WinForms controls

Module 12: Attached Properties and Behaviors in WPF
The goal of this module is to teach the students how to implement application behaviors based on user actions or application events by using attached properties and Expression Blend behaviors.

Module 13: Animations in WPF
The goal of this module is to teach the student how to implement animations and to teach students how to develop data visualization within their applications in a manner that enables the application user to drill down into data visually. Students should also learn when animations should be used and why.