You are previewing Professional Windows 7 Development Guide.
O'Reilly logo
Professional Windows 7 Development Guide

Book Description

Everything you need to immediately get the most from Windows 7

This essential and unique book delves into the various elements that Microsoft fixed from Vista and investigates the new features that Microsoft added in response to user requests. Veteran author John Paul Mueller shows you how to work with security policies as well as manage the Windows Firewall in every way conceivable—both of which are topics you won't find anywhere else. In addition, he presents a clear, procedural approach to working with trigger-start services, details how to make the User Account Control part of an application, and shows how to use Group Policy Objects to work with the Windows Firewall. Ultimately, you'll discover how Windows 7 provides practical, usable functionality, just waiting for you to exploit.

Professional Windows 7 Development Guide:

  • Walks you through picking files directly from pinned applications, checking on application status, and more, simply by viewing the Taskbar

  • Discusses the new Ribbon functionality and shows how to use it effectively

  • Examines libraries and looks at how they provide a centralized method of managing data

  • Includes complete Windows PowerShell coverage with all of the Windows 7 updates

  • Offers an in-depth look at 64-bit programming and parallel programming

  • Addresses working with power management

  • Reviews how you can create applications that automatically restart and recover lost data when there is a crash

Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.

wrox.com Programmer Forums

Join our Programmer to Programmer forums to ask and answer programming questions about this book, join discussions on the hottest topics in the industry, and connect with fellow programmers from around the world.

Code Downloads

Take advantage of free code samples from this book, as well as code samples from hundreds of other books, all ready to use.

Read More

Find articles, ebooks, sample chapters, and tables of contents for hundreds of books, and more reference resources on programming topics that matter to you.

Table of Contents

  1. Copyright
  2. ABOUT THE AUTHOR
  3. ABOUT THE TECHNICAL EDITOR
  4. CREDITS
  5. ACKNOWLEDGMENTS
  6. INTRODUCTION
    1. WHO SHOULD READ THIS BOOK
    2. HOW THIS BOOK IS ORGANIZED
    3. WHAT YOU NEED TO USE THIS BOOK
    4. CONVENTIONS USED IN THIS BOOK
    5. SOURCE CODE
    6. ERRATA
    7. P2P.WROX.COM
  7. I. Introducing Windows 7
    1. 1. Windows 7 Improvements
      1. 1.1. IS WINDOWS 7 REALLY JUST VISTA FIXED?
      2. 1.2. CONSIDERING THE MAJOR IMPROVEMENTS FROM A DEVELOPER PERSPECTIVE
        1. 1.2.1. Understanding the User Interface Improvements
        2. 1.2.2. Considering the Security Improvements
        3. 1.2.3. Developing Extended Applications
          1. 1.2.3.1. 64-bit Applications
          2. 1.2.3.2. Parallel Processing
          3. 1.2.3.3. Background Processing
      3. 1.3. CONSIDERING WINDOWS XP MODE
      4. 1.4. DEVELOPING FOR WINDOWS POWERSHELL 2
      5. 1.5. MOVING YOUR APPLICATIONS TO WINDOWS 7
    2. 2. Developing a Windows 7 Strategy
      1. 2.1. DETERMINING THE USER WINDOWS 7 COMFORT LEVEL
        1. 2.1.1. Defining Usage Requirements
        2. 2.1.2. Considering Training Requirements
        3. 2.1.3. Keeping the User Happy
      2. 2.2. CONSIDERING WHETHER TO MOVE
        1. 2.2.1. Testing Issues in Your Application
        2. 2.2.2. Defining the Advantages of Moving to Windows 7
        3. 2.2.3. Working with Windows XP Mode
      3. 2.3. MOVING YOUR APPLICATIONS TO WINDOWS 7
    3. 3. Understanding .NET 4.0
      1. 3.1. UNDERSTANDING WHY YOU NEED .NET 4.0
        1. 3.1.1. Defining Application Compatibility and Deployment
        2. 3.1.2. Considering the New Core Features and Improvements
          1. 3.1.2.1. Using the Performance and Diagnostics Features
          2. 3.1.2.2. Understanding Updated Code Contracts
          3. 3.1.2.3. Ridding Your Application of PIAs
          4. 3.1.2.4. Working with the DLR
          5. 3.1.2.5. Detecting 64-bit Operating Systems
        3. 3.1.3. Working with the Managed Extensibility Framework
        4. 3.1.4. Implementing Parallel Computing
        5. 3.1.5. Considering Networking
        6. 3.1.6. Understanding the Data Improvements
      2. 3.2. OBTAINING AND INSTALLING .NET 4.0
      3. 3.3. CONSIDERING THE WINDOWS 7 EXTENDED FUNCTIONALITY
      4. 3.4. MOVING YOUR APPLICATIONS TO WINDOWS 7
  8. II. Working with the Windows 7 User Interface
    1. 4. Interacting with the Taskbar
      1. 4.1. VIEWING THE NEW TASKBAR IN WINDOWS 7
        1. 4.1.1. Considering the Subtle Features
        2. 4.1.2. Understanding the Importance of Application Settings
      2. 4.2. CONSIDERING THE TASKBAR UPDATES
        1. 4.2.1. Using the Taskbar as an Application Interaction Tool
        2. 4.2.2. An Overview of the New Taskbar Features
          1. 4.2.2.1. Jump Lists
          2. 4.2.2.2. Progress Bars
          3. 4.2.2.3. Custom Switchers
          4. 4.2.2.4. Thumbnail Toolbars
          5. 4.2.2.5. Overlay Icons
      3. 4.3. CREATING THE BASIC TASKBAR APPLICATION
        1. 4.3.1. Obtaining the Windows API Code Pack for Microsoft .NET Framework
        2. 4.3.2. Creating the Solution
        3. 4.3.3. Adding the Jump List Code
        4. 4.3.4. Testing the Code Pack Result
      4. 4.4. USING THE .NET 4.0 APPROACH
        1. 4.4.1. Creating the Solution
        2. 4.4.2. Adding the Code
      5. 4.5. AVOIDING TASKBAR OVERLOAD
      6. 4.6. MOVING YOUR APPLICATIONS TO WINDOWS 7
    2. 5. Advanced Taskbar Techniques
      1. 5.1. USING JUMP LISTS
        1. 5.1.1. Adding Common Categories
          1. 5.1.1.1. Obtaining and Using RegistrationHelper
          2. 5.1.1.2. Configuring the Common Categories Application
          3. 5.1.1.3. Registering the File Extension
          4. 5.1.1.4. Creating the Common Categories Jump List
          5. 5.1.1.5. Adding Files to the Jump List
          6. 5.1.1.6. Handling Recent and Frequent Category Clicks
        2. 5.1.2. Adding Custom Categories
        3. 5.1.3. Performing Custom Tasks
          1. 5.1.3.1. Configuring the Custom Tasks Application
          2. 5.1.3.2. Creating the Custom Tasks Jump List
          3. 5.1.3.3. Managing the Tasks Entries
        4. 5.1.4. Going Places Using a Jump List
      2. 5.2. USING PROGRESS BARS
        1. 5.2.1. Configuring the Progress Bar Application
        2. 5.2.2. Managing the Progress Bar
        3. 5.2.3. Changing States
      3. 5.3. USING THUMBNAIL TOOLBARS
        1. 5.3.1. Defining the Thumbnail Toolbar Application
        2. 5.3.2. Drawing the Button Icon
        3. 5.3.3. Creating the Toolbar and Event Handler
      4. 5.4. USING OVERLAY ICONS
      5. 5.5. COMBINING TASKBAR CONTROLS
      6. 5.6. CREATING A COMPLETE INTERFACE
        1. 5.6.1. Application Interaction Using Jump Lists and Thumbnail Toolbars
        2. 5.6.2. Displaying Status Using Overlay Icons and Progress Bars
      7. 5.7. MOVING YOUR APPLICATIONS TO WINDOWS 7
    3. 6. Working with the Ribbon Interface
      1. 6.1. CONSIDERING THE RIBBON AS A WHOLE
        1. 6.1.1. Precisely What Is the Ribbon?
        2. 6.1.2. Understanding How the Ribbon Can Help Novice Users
        3. 6.1.3. Viewing the Ribbon in Windows
      2. 6.2. VIEWING THE RIBBON IN OFFICE
        1. 6.2.1. Understanding the Office Document Connection
        2. 6.2.2. Considering How Office Technology Extends to Windows 7
      3. 6.3. DEFINING THE RIBBON FUNCTIONALITY IN WINDOWS 7
        1. 6.3.1. An Overview of Ribbon Controls in Windows 7
        2. 6.3.2. Understanding the Control Attributes
      4. 6.4. MOVING YOUR APPLICATIONS TO WINDOWS 7
    4. 7. Creating Custom Ribbon Interface Applications
      1. 7.1. GETTING STARTED WITH THE RIBBON
        1. 7.1.1. Obtaining the Windows 7 SDK
        2. 7.1.2. Obtaining RibbonLib
        3. 7.1.3. Configuring the Application
        4. 7.1.4. Defining a Ribbon Interface
          1. 7.1.4.1. Defining the Initial XML File
          2. 7.1.4.2. Developing a File Menu
          3. 7.1.4.3. Obtaining 32-bit Graphics
          4. 7.1.4.4. Creating a Home Tab
          5. 7.1.4.5. Adding the QAT
          6. 7.1.4.6. Using PreviewRibbon to Test Your Design
        5. 7.1.5. Creating the Application
          1. 7.1.5.1. Implementing IRibbonForm
          2. 7.1.5.2. Defining the Application Framework
          3. 7.1.5.3. Accessing Ribbon Resources
          4. 7.1.5.4. Handling Ribbon Events
      2. 7.2. USING THE RIBBON WITH WPF
        1. 7.2.1. Obtaining Microsoft Ribbon for WPF
        2. 7.2.2. Configuring the WPF Application
        3. 7.2.3. Defining the Ribbon Interface for the WPF Application
        4. 7.2.4. Creating the WPF Application
          1. 7.2.4.1. Handling the Button Events
          2. 7.2.4.2. Handling the QAT
      3. 7.3. MOVING YOUR APPLICATIONS TO WINDOWS 7
    5. 8. Programming for Aero Glass Functionality
      1. 8.1. CONSIDERATIONS FOR DESIGNING APPLICATIONS FOR AERO GLASS
      2. 8.2. WORKING WITH THE WINDOWS 7 COMMON FILE DIALOGS
        1. 8.2.1. Considering the Common File Dialog Controls
        2. 8.2.2. Configuring the Common File Dialogs Example
        3. 8.2.3. Defining a File Open Dialog
        4. 8.2.4. Defining a File Save Dialog
      3. 8.3. WORKING WITH THE WINDOWS 7 TASK DIALOGS
        1. 8.3.1. Using the Task Dialog Effectively
        2. 8.3.2. Configuring the Task Dialog Example
        3. 8.3.3. Defining a Task Dialog
        4. 8.3.4. Making an Automatic Selection
      4. 8.4. PROVIDING EXTENDED LINGUISTIC SERVICES
        1. 8.4.1. Understanding the Role of Extended Linguistic Services
        2. 8.4.2. Configuring the Extended Linguistic Services Example
        3. 8.4.3. Adding Extended Linguistic Services to an Application
      5. 8.5. MOVING YOUR APPLICATIONS TO WINDOWS 7
    6. 9. Working with the Multi-Touch User Interface
      1. 9.1. CONSIDERING WHERE MOST COMPANIES USE MULTI-TOUCH
      2. 9.2. DEFINING THE USER REQUIREMENTS FOR MULTI-TOUCH
      3. 9.3. ADDING MULTI-TOUCH TO YOUR APPLICATION
        1. 9.3.1. Obtaining the Multi-Touch Platform Interop Library
        2. 9.3.2. Configuring the Application
        3. 9.3.3. Adding Multi-Touch Interface Functionality
          1. 9.3.3.1. Creating the Business Logic
          2. 9.3.3.2. Initializing the Multi-Touch Platform
          3. 9.3.3.3. Handling Multi-Touch Events
      4. 9.4. MOVING YOUR APPLICATIONS TO WINDOWS 7
  9. III. Developing Secure Applications
    1. 10. Using Standard NT Security Features in Windows 7
      1. 10.1. CONSIDERING BASIC NT SECURITY FEATURE CHANGES
      2. 10.2. UNDERSTANDING BASIC NT SECURITY
        1. 10.2.1. Working with ACLs
        2. 10.2.2. Understanding the Security Descriptors
        3. 10.2.3. Understanding the ACEs
      3. 10.3. WORKING DIRECTLY WITH WINDOWS NT SECURITY
        1. 10.3.1. Checking User Permissions
          1. 10.3.1.1. Configuring the User Permission Example
          2. 10.3.1.2. Writing the User Permission Code
          3. 10.3.1.3. Using WMI for Permissions Example
        2. 10.3.2. Changing User Permissions
          1. 10.3.2.1. Configuring the User Permission Modification Example
          2. 10.3.2.2. Creating the User Permission Modification Manifest
          3. 10.3.2.3. Writing the User Permission Modification Code
        3. 10.3.3. Auditing User Actions
          1. 10.3.3.1. Configuring the User Audit Example
          2. 10.3.3.2. Configuring the Registry for Audit Monitoring
          3. 10.3.3.3. Writing the User Audit Code
          4. 10.3.3.4. Testing the User Audit Example
        4. 10.3.4. Checking File and Directory Permissions
          1. 10.3.4.1. Configuring the Check Permission Example
          2. 10.3.4.2. Writing the Check Permission Code
        5. 10.3.5. Changing File and Directory Permissions
          1. 10.3.5.1. Configuring the Modify Permission Example
          2. 10.3.5.2. Writing the Modify Permission Code
        6. 10.3.6. Auditing Files and Directories
          1. 10.3.6.1. Configuring the Audit Activity Example
          2. 10.3.6.2. Writing the Audit Activity Code
      4. 10.4. MOVING YOUR APPLICATIONS TO WINDOWS 7
    2. 11. Understanding the User Account Control
      1. 11.1. UNDERSTANDING THE UAC
        1. 11.1.1. Considering the Need for the UAC
        2. 11.1.2. Why It Isn't a Good Idea to Override the UAC
        3. 11.1.3. Developing Applications with Fewer Rights
      2. 11.2. INTERACTING WITH THE UAC
      3. 11.3. ADDING UAC SUPPORT TO YOUR APPLICATION
        1. 11.3.1. Creating a Manifest
          1. 11.3.1.1. Defining the Manifest Application
          2. 11.3.1.2. Adding the Manifest
          3. 11.3.1.3. Creating the Application Code
          4. 11.3.1.4. Compiling the Manifest into the Application
          5. 11.3.1.5. Executing the Application
        2. 11.3.2. Executing as a Separate Process
          1. 11.3.2.1. Defining the Separate Process Application
          2. 11.3.2.2. Creating the Secondary Project
          3. 11.3.2.3. Configuring the Secondary Project
          4. 11.3.2.4. Writing the Primary Application Code
          5. 11.3.2.5. Writing the Secondary Application Code
      4. 11.4. MOVING YOUR APPLICATIONS TO WINDOWS 7
    3. 12. Developing Applications with Enhanced Security
      1. 12.1. CONSIDERING MODERN APPLICATION SECURITY REQUIREMENTS
        1. 12.1.1. Using Traditional NT Security
        2. 12.1.2. Using New NT Security Features
        3. 12.1.3. Working with Zones
        4. 12.1.4. Adding Security Roles
        5. 12.1.5. Adding Permissions
          1. 12.1.5.1. Configuring the CAS Policy Example
          2. 12.1.5.2. Creating a Legacy Security Configuration
          3. 12.1.5.3. Creating the CAS Policy Example Code
        6. 12.1.6. Working with Security Policies
          1. 12.1.6.1. Configuring the AppDomain Example
          2. 12.1.6.2. Creating the AppDomain Example Code
      2. 12.2. DEFINING YOUR APPLICATION'S SECURITY NEEDS
      3. 12.3. CREATING AN APPLICATION WITH ENHANCED SECURITY
        1. 12.3.1. Developing for Zones
          1. 12.3.1.1. Considering Evidence within an Application
          2. 12.3.1.2. Configuring the Check Membership Example
          3. 12.3.1.3. Creating the Check Membership Code
        2. 12.3.2. Developing for Security Roles
          1. 12.3.2.1. Configuring the Security Role Example
          2. 12.3.2.2. Creating the Security Role Example Code
        3. 12.3.3. Developing for Permissions
          1. 12.3.3.1. Configuring the Obtain Permissions Example
          2. 12.3.3.2. Creating the Local Permissions Code
          3. 12.3.3.3. Creating the URL Permissions Code
      4. 12.4. DEVISING AND IMPLEMENTING A SECURITY POLICY
        1. 12.4.1. Configuring the ClickOnce Intranet Example
        2. 12.4.2. Debugging and Installing the ClickOnce Intranet Example
        3. 12.4.3. Configuring the ClickOnce Custom Example
      5. 12.5. AVOIDING TOO MUCH SECURITY
      6. 12.6. MOVING YOUR APPLICATIONS TO WINDOWS 7
    4. 13. Interacting with the Built-In Security Features
      1. 13.1. WORKING WITH THE FIREWALL
        1. 13.1.1. Interacting with the Firewall
        2. 13.1.2. Verifying the Firewall Status
        3. 13.1.3. Modifying a Setting
        4. 13.1.4. Adding and Deleting Ports
        5. 13.1.5. Adding Applications
        6. 13.1.6. Using the GPO Technique
          1. 13.1.6.1. Configuring the Rule Technique Example
          2. 13.1.6.2. Obtaining a List of Rules
          3. 13.1.6.3. Adding a New Application Rule
          4. 13.1.6.4. Removing an Application Rule
      2. 13.2. WORKING WITH AUTOMATIC UPDATES
        1. 13.2.1. Configuring the Automatic Update Example
        2. 13.2.2. Writing the Settings Code
        3. 13.2.3. Writing the Update Code
      3. 13.3. ACCESSING APPLOCKER
        1. 13.3.1. Seeing the AppLocker Entries in the Registry
        2. 13.3.2. Configuring the AppLocker Demo Example
        3. 13.3.3. Reading AppLocker Entries
        4. 13.3.4. Creating an AppLocker Entry
      4. 13.4. MOVING YOUR APPLICATIONS TO WINDOWS 7
  10. IV. Advanced Windows 7 Programming
    1. 14. Working in the Background
      1. 14.1. ADVANTAGES OF WORKING IN THE BACKGROUND
      2. 14.2. DEVELOPING TRIGGER-START SERVICES
        1. 14.2.1. Triggering a Service
        2. 14.2.2. Obtaining the ServiceNative.CS File
        3. 14.2.3. Configuring the TriggerStartService Example
        4. 14.2.4. Writing Code for the TriggerStartService Example
          1. 14.2.4.1. Creating the Trigger
          2. 14.2.4.2. Detecting the Operating System Version
          3. 14.2.4.3. Defining the Service Code
        5. 14.2.5. Testing the TriggerStartService
          1. 14.2.5.1. Configuring Telnet
          2. 14.2.5.2. Installing the Service
          3. 14.2.5.3. Performing the Telnet Test
      3. 14.3. PROVIDING POWER MANAGEMENT
        1. 14.3.1. Configuring the Power Management Example
        2. 14.3.2. Getting the Power Management State
        3. 14.3.3. Detecting a Change in Monitor State
      4. 14.4. IMPLEMENTING APPLICATION RESTART AND RECOVERY
        1. 14.4.1. Configuring the Application Restart Example
        2. 14.4.2. Writing the Application Restart Example Code
      5. 14.5. WORKING WITH THE NETWORK LIST MANAGER
        1. 14.5.1. Configuring the Network List Manager Example
        2. 14.5.2. Writing the Network List Manager Code
      6. 14.6. MOVING YOUR APPLICATIONS TO WINDOWS 7
    2. 15. Using the Windows 7 Libraries
      1. 15.1. WORKING WITH KNOWN FOLDERS
        1. 15.1.1. Configuring the Known Folders Example
        2. 15.1.2. Writing the Known Folders Example Code
      2. 15.2. USING NON-FILESYSTEM CONTAINERS
        1. 15.2.1. Configuring the Non-Filesystem Example
        2. 15.2.2. Writing the Non-Filesystem Example Code
      3. 15.3. CONSIDERING USER-DEFINED COLLECTIONS
        1. 15.3.1. Configuring the User-Defined Collection Example
        2. 15.3.2. Listing Libraries
        3. 15.3.3. Adding Libraries
      4. 15.4. USING THE EXPLORER BROWSER CONTROL
        1. 15.4.1. Adding the Explorer Browser to Your Toolbox
        2. 15.4.2. Configuring the Explorer Browser Example
        3. 15.4.3. Writing the Explorer Browser Example Code
      5. 15.5. MOVING YOUR APPLICATIONS TO WINDOWS 7
    3. 16. Writing 64-Bit Applications for Windows 7
      1. 16.1. CONSIDERING THE ADVANTAGES OF 64-BIT APPLICATIONS
      2. 16.2. UNDERSTANDING THE REQUIREMENTS FOR 64-BIT APPLICATIONS
      3. 16.3. OVERCOMING 64-BIT DEVELOPMENT ISSUES
        1. 16.3.1. Dealing with Programming Issues
        2. 16.3.2. Accessing the Registry in Windows 7
        3. 16.3.3. Hosting Older DLLs
      4. 16.4. WRITING A 64-BIT APPLICATION
        1. 16.4.1. Configuring the Large-Number Example
        2. 16.4.2. Working with the Configuration Manager
        3. 16.4.3. Writing the Large-Number Example Code
        4. 16.4.4. Running the Large-Number Test
      5. 16.5. MOVING YOUR APPLICATIONS TO WINDOWS 7
    4. 17. Using Parallel Programming in Windows 7
      1. 17.1. CONSIDERING THE ADVANTAGES OF PARALLEL PROCESSING
      2. 17.2. UNDERSTANDING THE REQUIREMENTS FOR PARALLEL PROCESSING
        1. 17.2.1. Evaluating the Task Length
        2. 17.2.2. Evaluating the Task Type
        3. 17.2.3. Considering Debugging
        4. 17.2.4. Obtaining Required Resources
        5. 17.2.5. Team Skills
      3. 17.3. WRITING AN APPLICATION THAT RELIES ON PARALLEL PROCESSING
        1. 17.3.1. Understanding the Parallel Class
        2. 17.3.2. Configuring the Parallel Process Example
        3. 17.3.3. Writing the Parallel-Process Example Code
        4. 17.3.4. Debugging the Parallel-Process Example Code
      4. 17.4. MOVING YOUR APPLICATIONS TO WINDOWS 7
    5. 18. Using the Sensor and Location Platform
      1. 18.1. DEFINING THE SENSOR AND LOCATION DEVICES
        1. 18.1.1. An Overview of the Sensor Categories
        2. 18.1.2. Software Devices
      2. 18.2. OBTAINING A LIST OF SENSORS
        1. 18.2.1. Configuring the Get Sensors Example
        2. 18.2.2. Writing the Get Sensors Code
      3. 18.3. OBTAINING SPECIFIC SENSOR INFORMATION
        1. 18.3.1. Understanding the Geosense for Windows Data
        2. 18.3.2. Configuring the Get Location Example
        3. 18.3.3. Initializing the Sensor
        4. 18.3.4. Creating and Handling Sensor Events
        5. 18.3.5. Configuring Geosense for Windows Security
        6. 18.3.6. Viewing Location Sensor Activity
      4. 18.4. DEVELOPING FOR OTHER SENSOR AND LOCATION DEVICES
      5. 18.5. MOVING YOUR APPLICATIONS TO WINDOWS 7
    6. 19. Using Windows XP Mode Effectively
      1. 19.1. CONSIDERING WINDOWS XP MODE
        1. 19.1.1. Check for an Update
        2. 19.1.2. Look for Third-Party Support
        3. 19.1.3. Use the Compatibility Troubleshooter
          1. 19.1.3.1. Using the Recommended Settings
          2. 19.1.3.2. Troubleshooting the Application
        4. 19.1.4. Change the Application Compatibility Settings Directly
        5. 19.1.5. Use the Application Compatibility Toolkit
        6. 19.1.6. Adjust User Account Control
      2. 19.2. TESTING YOUR APPLICATION IN WINDOWS XP MODE
        1. 19.2.1. Obtaining and Installing Windows XP Mode
        2. 19.2.2. Configuring Windows XP Mode
        3. 19.2.3. Using the Application in the Virtual Environment
      3. 19.3. WORKAROUNDS FOR COMMON WINDOWS XP MODE PROBLEMS
        1. 19.3.1. Resource Permission Issues
        2. 19.3.2. Application Refuses to Use a Resource
        3. 19.3.3. Virtual Environment Is Slow
      4. 19.4. MOVING YOUR APPLICATIONS TO WINDOWS 7
  11. V. Working at the Command Line
    1. 20. Working with Windows PowerShell 2.0
      1. 20.1. REPLACING THE COMMAND PROMPT
        1. 20.1.1. Understanding the Need for Windows PowerShell
        2. 20.1.2. Considering Why You Should Use PowerShell
      2. 20.2. UNDERSTANDING POWERSHELL COMMAND BASICS FOR THE DEVELOPER
      3. 20.3. WORKING WITH THE ONLINE HELP
      4. 20.4. UNDERSTANDING THE SHELL PROPERTY SYSTEM
      5. 20.5. MOVING YOUR APPLICATIONS TO WINDOWS 7
    2. 21. Creating Scripts
      1. 21.1. UNDERSTANDING WHEN TO USE SCRIPTS
      2. 21.2. USING THE POWERSHELL ISE
      3. 21.3. WRITING A BASIC SCRIPT
      4. 21.4. PERFORMING SCRIPT TESTING
        1. 21.4.1. Using the PowerShell ISE Debugger
        2. 21.4.2. Running the Script at the PS Prompt
        3. 21.4.3. Defining a Company Policy for Scripts
      5. 21.5. MOVING YOUR APPLICATIONS TO WINDOWS 7
    3. 22. Creating Cmdlets
      1. 22.1. UNDERSTANDING WHEN TO USE CMDLETS
      2. 22.2. CREATING A SHELL EXTENSION WITH THE MAKE-SHELL UTILITY
      3. 22.3. WRITING A BASIC CMDLET
        1. 22.3.1. Creating the Reverse-String.CS Example File
        2. 22.3.2. Writing the Reverse-String.CS Example Code
        3. 22.3.3. Compiling the Cmdlet Executable
        4. 22.3.4. Using the Make-Shell Utility to Create the Shell
        5. 22.3.5. Testing the New Shell
      4. 22.4. MOVING YOUR APPLICATIONS TO WINDOWS 7
    4. 23. Interacting Directly with PowerShell
      1. 23.1. CREATING A CMDLET INTERFACE FOR YOUR APPLICATION
        1. 23.1.1. Using the Built-In Cmdlets
        2. 23.1.2. Using a Custom Cmdlet
      2. 23.2. WORKING WITH SYSTEM EVENTS
      3. 23.3. USING POWERSHELL FOR APPLICATION STATUS INFORMATION
      4. 23.4. USING POWERSHELL TO UPDATE APPLICATION CONFIGURATION
      5. 23.5. PERFORMING TASKS FROM REMOTE LOCATIONS
      6. 23.6. MOVING YOUR APPLICATIONS TO WINDOWS 7