Windows 7

Microsoft Windows 7 Training for Developers
(Microsoft Training Course: 50218) - 4 days - £2100 exc VAT

> Target Audience
This course provides students with the knowledge and skills to develop real-world applications on the Windows 7 operating system, using managed and native code. It is intended for developers with Win32 programming experience in C++ or an equivalent experience developing Windows applications in a .NET language.
> Course outline
  1. Introduction to Windows 7
  2. Win32 Programming Refreshment
  3. Taskbar
  4. Libraries and Federated Search
  5. Multi-Touch
  6. Sensors and Location
  7. Scenic Ribbon
  8. Direct2D and DirectWrite
  9. Application Compatibility
  10. User Account Control
  11. Background Services
  12. Energy Efficient Applications
  13. Instrumentation and Performance

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 and editions, and how the various Windows 7 features are presented throughout the course.
  • Windows Operating System Roadmap
  • Highlights of Improvements
  • Course Structure
  • 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.
  • 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
  • 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.
  • 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
  • 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.
  • 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
  • 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.
  • 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
  • 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.
  • 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
  • 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.
  • The Ribbon Landscape
  • Scenic Ribbon API Overview and Architecture
  • Markup Syntax Overview
  • Integrating Scenic Ribbon into an Application
  • Lab: Integrating Scenic Ribbon
  • 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.
  • The Windows 7 Graphics Platform
  • Direct2D
  • DirectWrite
  • Lab: Drawing with Direct2D
  • Lab: Formatting and Drawing Text Using DirectWrite
  • 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.
  • Why Aren’t Applications Compatible with Windows?
  • Windows 7 Compatibility Changes
  • Compatibility Guidelines
  • Compatibility Diagnostics
  • Windows 7 Logo Requirements
  • 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.
  • Why Not Run as Admin?
  • User Account Control and “The Standard User”
  • Removing Unnecessary Elevation
  • Designing Applications for UAC
  • UAC Virtualization
  • Lab: Refactoring Privileges
  • 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 user’s experience.
  • 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
  • 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.
  • 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
  • Use a variety of methods to minimize the system’s power consumption.
  • Apply appropriate power policies to the system.
  • Diagnose the system’s 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.
  • Performance Counters
  • Event Tracing for Windows and Event Log
  • Windows Management Instrumentation
  • Windows Performance Toolkit
  • Windows Troubleshooting Platform
  • Lab: Application Instrumentation
  • Lab: Performance Analysis
  • 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.
> Pre-Requisites
Before attending this course, students must have the following pre-requisites:
  • Working knowledge of Win32 fundamentals.
  • Experience in Windows C++ programming OR experience in Windows applications development in a .NET language.
> Purpose
After completing the 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.