4 Day Course
Introduction
This four-day instructor-led course provides students with the knowledge
and skills to develop real-world applications on the Windows 7 operating
system, using managed and native code.
Windows 7 is the latest client operating system release from
Microsoft. Windows 7 offers improvements
in performance and reliability, advanced scenarios for user interaction
including multi-touch support at the operating system level, innovative
hardware changes including sensor support and many other features.
The course is packed with demos, code samples, labs and lab solutions to
provide a deep dive into the majority of new features in Windows 7, and the
primary alternatives for interacting with them from managed code.
Audience Profile
This course is intended for developers with Win32 programming experience
in C++ or an equivalent experience developing Windows applications in a .NET
language.
At Course Completion
After completing this course, students will be able to:
•
Design and implement applications taking
advantage of the Windows 7 taskbar, shell libraries and other UI improvements.
•
Integrate location-based and general sensors
into real-world applications.
•
Augment applications with multi-touch support.
•
Integrate high-end graphics support into native
Windows applications.
•
Design backwards-compatible applications for
Windows 7 and earlier versions of the Windows operating system.
•
Improve application and system reliability and
performance by using Windows 7 background services, instrumentation,
performance and troubleshooting utilities.
Prerequisites
Before attending this course,
students must have:
•
At least
cursory familiarity with Win32 fundamentals.
•
Experience
in Windows C++ programming.
-OR-
•
Experience
in Windows applications development in a .NET language
Course Outline
Module 1: Introduction to Windows 7
This module explains how to use
the various new features of Windows 7, how to prepare for the OS roadmap with
regard to OS versions, business editions, and how the various Windows 7
features are presented throughout the course.
Lessons
•
Windows
Operating System Roadmap
•
Highlights
of Improvements
•
Course
Structure
After completing this module,
students will be able to:
•
Prepare
for the roadmap of Windows operating systems
•
Highlight
the primary new features of Windows 7
Module 2: Win32 Programming Refreshment
This module explains how to use
the Win32 application programming interface (API) to interact with the Windows
operating system, and how to develop applications with better understanding of
fundamental system mechanisms.
Lessons
•
Win32
API Introduction
•
Objects
and Handles
•
Processes
and Threads
•
Synchronization
Mechanisms
•
Windows
and Window Classes
•
Window
Messages
•
Structured
Exception Handling
•
Other
Interfaces to Windows
•
The
Windows Shell
After completing this module,
students will be able to:
•
Enumerate
the main interfaces for interacting with the Windows OS
•
Develop
applications with better understanding of system mechanisms
Module 3: Taskbar
This module explains how to use
the Windows 7 taskbar for delivering applications that light-up on Windows 7,
taking advantage of numerous user productivity features.
Lessons
•
Windows
Taskbar History
•
Taskbar
Design Goals
•
Taskbar
Buttons and Application ID
•
Jump
Lists
•
Overlay
Icons and Progress Bars
•
Custom
Thumbnail and Peek
•
Custom
Switchers (MDI/TDI)
Lab: The Windows 7 Taskbar
•
Jump
List Integration
•
Customizing
Thumbnails
•
Taskbar Progress
and Status
After completing this module,
students will be able to:
•
Develop
compelling applications taking advantage of the Windows 7 taskbar
•
Customize
application jump lists and taskbar buttons
•
Provide
custom thumbnail, peek and window switchers
Module 4: Libraries and Federated Search
This module explains how to use
shell libraries to better organize similar data items, and how to take
advantage of federated search to provide quicker access to information within
an enterprise.
Lessons
•
The New
Windows Explorer
•
Library
Overview
•
Common
File Dialogs
•
Native
and Managed Libraries API
•
Federated
Search
•
Proper
File Formats
Lab: Developing a Command Line Library Management Utility
•
SLUtil
Command Line Utility for Library Management
After completing this module,
students will be able to:
•
Properly
interact with Windows libraries from managed and native code
•
Create
and customize libraries to provide a more intuitive user experience
•
Use
federated search to bring information from various scopes to the users'
fingertips
Module 5: Multi-Touch
This module explains how to use
multi-touch enabled hardware to add the next generation of user interaction to
your applications, and how to choose among the various modes of programmatic
access to multi-touch in Windows 7.
Lessons
•
Overview
of Multi-Touch and its Roadmap
•
Control
Panel Settings
•
Touch
Scenarios (Good, Better, Best)
•
Gesture
and Touch Support
•
Manipulation
and Inertia
•
Windows
Presentation Foundation (WPF)
•
User
Experience Guidelines
After completing this module,
students will be able to:
•
Prepare
for the advent of multi-touch hardware and software
•
Utilize
multi-touch enabled hardware to design amazing user interaction scenarios
•
Choose
the proper investment model (good, better, best) and the appropriate APIs (gesture,
manipulation, inertia, raw touch)
Module 6: Sensors and Location
This module explains how to use
the Windows 7 Sensor and Location Platform to interact with a variety of
physical sensors providing location information, ambient light, temperature and
a variety of other readings.
Lessons
•
The
Sensor and Location Platform
•
Sensor
Architecture in Windows 7
•
Working
with the Sensor API
•
Location
Architecture in Windows 7
•
Working
with the Location API
Lab: Sensor-Enabled Racing Game
•
Adding
Accelerometer Support to a Racing Game
After completing this module,
students will be able to:
•
Describe
scenarios for use of the Windows 7 Sensor and Location Platform
•
Take
advantage of existing sensor hardware and integrate it in Windows 7 applications
in a uniform manner
•
Provide
contextual information based on location readings
Module 7: Scenic Ribbon
This module explains how to use
the Windows 7 Scenic Ribbon to add an Office-like appearance to your
applications, streamlining the user interaction and providing for a cleaner
command-oriented user interface.
Lessons
•
The
Ribbon Landscape
•
Scenic
Ribbon API Overview and Architecture
•
Markup
Syntax Overview
•
Integrating
Scenic Ribbon into an Application
Lab: Integrating Scenic Ribbon
•
Creating
an Empty Ribbon
•
Adding
Controls to the Ribbon
•
Adding
Groups to the Ribbon
After completing this module,
students will be able to:
•
Integrate
the Scenic Ribbon API and controls to existing Win32 applications
•
Choose
among the variety of Ribbon offerings (including WPF, Office and MFC)
•
Design
better user experiences with the Ribbon UI
Module 8: Direct2D and DirectWrite
This module explains how to use
latest advents in graphics hardware and software to deliver compelling graphic
experiences for 2D graphics and text in Windows 7.
Lessons
•
The Windows
7 Graphics Platform
•
Direct2D
•
DirectWrite
Lab: Drawing with Direct2D
•
Draw
Using Direct2D
•
Drawing
and Combining Geometries
•
Drawing
Direct2D on a GDI Surface
Lab: Formatting and Drawing Text Using DirectWrite
•
Drawing
Simple Text
•
Drawing
Multi-Formatted Text
•
Creating
Custom Text Renderers
After completing this module,
students will be able to:
•
Take
advantage of the latest hardware to accelerate 2D-oriented graphics
applications
•
Integrate
Direct2D into GDI applications
•
Deliver
a great experience for drawing customized text with DirectWrite
Module 9: Application Compatibility
This module explains how to
design and implement applications for forward and backwards compatibility with
Windows, and how to troubleshoot common application compatibility scenarios with
existing applications.
Lessons
•
Why
Arent Applications Compatible with Windows?
•
Windows
7 Compatibility Changes
•
Compatibility
Guidelines
•
Compatibility
Diagnostics
•
Windows
7 Logo Requirements
After completing this module,
students will be able to:
•
Troubleshoot
common application compatibility problems
•
Design
applications for forward and backwards compatibility
•
Appreciate
and implement the requirements of the Windows 7 Logo program
Module 10: User Account Control
This module explains how to use
User Account Control to develop more secure applications on Windows 7, and how
to overcome the compatibility problems introduced by User Account Control.
Lessons
•
Why Not
Run as Admin?
•
User
Account Control and The Standard User
•
Removing
Unnecessary Elevation
•
Designing
Applications for UAC
•
UAC
Virtualization
Lab: Refactoring Privileges
•
Adding
an Elevation Manifest
•
Refactoring
Elevation into a Separate Process
After completing this module,
students will be able to:
•
Design
applications with User Account Control in mind
•
Design
applications for the standard user and remove unnecessary elevation
•
Factor
out elevation in mixed-mode applications
•
Troubleshoot
compatibility problems caused by UAC
Module 11: Background Services
This module explains how to
design and implement background services on Windows, and how to minimize the
performance and security impact of background activities on the users
experience.
Lessons
•
Impact
of Background Activities
•
Services
vs. Tasks
•
Service
Startup Types (Auto-Start, Delayed Auto-Start, Trigger-Start)
•
Service
Performance and Security Goals
•
Task
Triggers
Lab: Configuring a Trigger-Start Service
•
Registering
a Service as Trigger-Start
•
Porting
an Auto-Start Service to a Trigger-Start Service
After completing this module,
students will be able to:
•
Port
auto-start or manual-start services to trigger-start services
•
Appreciate
the performance and security impact of background activities on the system
•
Adjust
service security privileges
•
Register
scheduled tasks with triggers and conditions
Module 12: Energy Efficient Applications
This module explains how to
minimize the power consumption impact of applications on the system, and how to
take advantage of the latest Windows 7 features to instrument power consumption
and energy efficiency.
Lessons
•
Why Is
Power Consumption Important?
•
Hardware
and Software Power Savings
•
Coalescing
Timers
•
Power
State Notifications
•
Background
Activities
•
Interfering
with Power Transitions
•
Power
Availability Requests
•
Power
Policies
•
Power
Efficiency Diagnostics
After completing this module,
students will be able to:
•
Use a
variety of methods to minimize the systems power consumption
•
Apply
appropriate power policies to the system
•
Diagnose
the systems power consumption and the root cause for failure to standby
Module 13: Instrumentation and Performance
This module explains how to use
the Windows instrumentation mechanisms to expose instrumentation and
performance information from your application, and how to use external
troubleshooting tools to analyze misbehaving applications or poor system
performance.
Lessons
•
Performance
Counters
•
Event
Tracing for Windows and Event Log
•
Windows
Management Instrumentation
•
Windows
Performance Toolkit
•
Windows
Troubleshooting Platform
Lab: Application Instrumentation
•
Instrumentation
Using Performance Counters
Lab: Performance Analysis
•
First
Steps with xperf (Windows Performance Toolkit)
•
Performance
Analysis of Disk and CPU Utilization
After completing this module,
students will be able to:
•
Expose
instrumentation information using performance counters and event tracing
•
Develop
management and instrumentation solutions using WMI
•
Use the
Windows Performance Toolkit to diagnose performance issues on an application
and system-wide scale
•
Use the
Windows Troubleshooting Packs to streamline diagnosis of simple issues
Additional Reading
To help you prepare for this
class, review the following resources:
•
Welcome
to Windows 7 http://www.microsoft.com/windows/windows-7/
•
Engineering
Windows 7 http://blogs.msdn.com/e7/