Windows 7 for Developers Katrien De Graeve Developer Evangelist, Microsoft Belgium & Luxembourg
None of us want to see more features in the OS, that's what apps are for. A new OS is the last thing we are waiting for. In my company we haven’t even bothered to test whether our apps work on Vista. None of us want to see more features in the OS, that's what apps are for. A new OS is the last thing we are waiting for.
But... Windows 7 will impact your lives As a consumer As a developer -Community buzz -New features you will want to take advantage of in your apps
Agenda Taskbar and Desktop Windows Explorer and Federated Search Touch capabilities Ribbon Developer desktop And more: Compatibility Security Performance Call to action Resources
Taskbar and Desktop
Design Goals For New Taskbar Single launch surface for frequent programs and destinations Things you use all the time are at your fingertips Manage your windows with confidence Easily controllable Clean, noise-free, simple Revolution New User Experience design guidelines New opportunities for extensibility and stand- out
Jump Lists Mini Start Menu for your program Surface key destinations and tasks Customizable Accessible via right-click and via drag APIs use the name “Destination List”
Thumbnail Toolbars Remote-control for a window Surface key commands Up to seven buttons Accessible from taskbar thumbnail
Custom Switchers Surface custom UI Custom thumbnails for each window Appears in your program’s window list
Overlay Icons Surface important notifications Appears over your program’s icon
Progress Bars Surface important progress Appears in your taskbar button
Demo The desktop and taskbar
Explorer
Windows Explorer
Libraries
Federated Search Consistent experience across providers
Federated Search Your search provider should: Accept URL queries Example: Define rich items Return RSS results The Windows 7 enables this via: XML search connector description Property mapping Example: BookAuthor System.Author Thumbnail and preview URLs Custom view descriptions
Demo Windows Explorer and Libraries
Touch
Multi-touch Is Here! Hardware Multi-touch capable machines in market today, multi-touch appears in a broad set of form factors Software Windows 7,.Net 4.0 Consumers New scenarios, next wave of user experience, high “WOW” factor
Multi-Touch Software Good-Better-Best Windows application can target one of 3 levels of touch integration Good: No specific touch APIs are used but the application UI is appropriately sized and works well with the built-in gestures Better: The gesture APIs are supported to give smooth natural interactions Best: Deep touch focused experiences designed to take advantage of Multi-touch
Demo Touch
Ribbon
Windows (Scenic) Ribbon Proven and very successful UX concept Improve usability and discoverability Increase user productivity Improve developer productivity Based on common architectural Eliminate much of Win32 UI development
Windows Scenic Ribbon In-box with Windows 7, redistribution available to Vista Win32 API, COM-based (targets native developers first) Feature parity (or close) with Microsoft Office 2007 Ribbon Application Menu Quick Access Toolbar Tab Contextual Tab Set Contextual Tab Help Group (aka “Chunk”) Dialog Launcher
Microsoft’s Ribbon Strategy MFCMFCScenicScenicWPFWPF Target: Managed Target: Managed Target: MFC native Target: MFC native Target: Native Target: Native needs.NET 3.5 Win2K or newer Vista or newer Office 2007 & Windows styles Office 2007 & Windows styles 1 Windows visual style Coming soon… Official release in 2009 Available now in Visual Studio 2008 SP1 Coming soon… Ships with Windows 7 Coming soon… Ships with Windows 7 Windows Ribbon - Roadmap
Developer Desktop
Developer desktop Multi Monitors Manage resolution, orientation from Windows WIN+P for quick output management Use in Remote Desktop Sessions! WIN+, WIN- for great display zooming Problem step recorder Windows Troubleshooter Platform
Problem Step Recorder %windir%\system32\psr.exe Allows testers and users to track, step by step, exactly what an application is doing, creating an MHT file with screenshots illustrating the bug repro Creates a zip file containing an.mht Integrated with Watson
VHDs Mount, create and managed VHDs natively Boot from VHD to enable fast resets
Windows SDK (v7) Documentation Headers, compilers, native code Samples
Library APIs Every operation that is exposed by the Shell UI (Windows Explorer) can be performed programmatically The Shell exposes several COM objects and helper functions to work with libraries: Create new library Open an existing library Add or Remove folder from a library Get a folder list from a library Get & Set library options Get & Set the library icon
Vista Bridge Sample Library Vista Bridge Sample Library 1.4 Will be extended to new Windows 7 features Taskbar Windows7.DesktopIntegration class ( Taskbar) It is a sample library not a full product Open source with no support Use at your own risk
And more...
Sensor and Location Windows 7 features a new API for working with sensors and location COM based Works with drivers using the Sensor Class Extension Benefits No need to target vendor-specific APIs or to know hardware specifics Consistent interface for all sensor types Privacy & security
Compatibility - Goals Applications that worked on Windows Vista and Windows Server 2008 continue to work on Windows 7 / Windows Server 2008 R2
So... There is no new “special sauce” that makes software start working on Windows 7 if it didn’t work on Windows Vista If you work on Windows Vista, you probably work on Windows 7, unless…
Compatibility – breaking changes Operating System Versioning Windows 7 is So: Check for features, not versions Use the > key Removed: Removal of Windows Mail Removal of Windows Movie Maker Removal of WPDUSB.SYS Driver for Windows Portable Devices
IE8 changes Data Execution Prevention (NX) now enabled by default Vista – you had to elevate IE to enable Plug-ins that have an issue with DEP may cause the browser to crash Default rendering to Standards mode Could break rendering Set compatibility mode
IE Version Without compatibility mode: Mozilla/4.0 (compatible; MSIE 8.0 ; Windows NT 6.1; WOW64; Trident/4.0; SLCC2;.NET CLR ;.NET CLR ;.NET CLR ; Media Center PC 6.0) With compatibility mode: Mozilla/4.0 (compatible; MSIE 7.0 ; Windows NT 6.1; WOW64; Trident/4.0; SLCC2;.NET CLR ;.NET CLR ;.NET CLR ; Media Center PC 6.0)
File Libraries Default location of common file dialogs: Documents Library File libraries are files (not folders) IFileDialog->GetFolder() + IFileDialog->GetFilename() breaks for library GetFolder() returns a file Remediation Use IFileDialog->GetResult()
Windows Mail Deprecated Replaced with Windows Live Mail – or the mail client of your choice Publicly documented APIs work APIs that display UI break (silently fail) Protocol handlers and file extensions not registered Remediation Remove calls to deprecated APIs Install a mail application
User Account Control
Responsiveness Power Efficient applications Extended operation on battery power Leverage latest energy-efficient hardware Service Control Manager Trigger-starting of system services Windows Troubleshooting Platform
Windows Troubleshooting Built-in troubleshooting for common problems Accessible from the Action Center Extensible %sdkdir%\bin\tspbuilder\builder.exe Implement using PowerShell scripts course-on-authoring-windows-7-troubleshooting- packs/ course-on-authoring-windows-7-troubleshooting- packs/
Trigger-Start Services Introduced in Windows 7 The service should be running only if it has something to do Network-related service without connectivity USB-related service without USB devices File transfer service with firewall port closed Trigger-start services are started when needed Responsible for stopping when idle or done Available triggers (Device interface arrival, Domain Join/Leave, Firewall port open/closed, …)
Call to action Read the application quality cookbook (compatibility)application quality cookbook Make your application Windows 7 compatible (UAC aware, no OS version checking, support multi-user sessions,...) Help your users by providing a troubleshoot pack Check out Windows 7 Beta Platform SDK
Windows 7 Developer Center Windows 7 Application Quality Cookbook Windows 7 Developer Guide Windows 7 Videos on Channel 9 Resources
Resources cont’d Engineering Windows 7 blog Windows 7 Developer blog Windows 7 Desktop Integration (.NET library) WPF Toolkit Boot from VHD 1/28/how-to-boot-from-a-vhd-with-windows- 7.aspx 1/28/how-to-boot-from-a-vhd-with-windows- 7.aspx
Summary Taskbar and Desktop Windows Explorer and Federated Search Touch capabilities Ribbon Developer desktop And more: Compatibility Security Performance Call to action Resources