I have had some requests lately for details on the path to Windows 7 compatibility and how to light up key features. So I thought it would be timely to put out a new post on my new blog (www.murraygordon.com) about how to get your applications compatible with Windows 7. Here goes…
This is the 2nd post in the series.
Windows 7 offers you several ways to differentiate your products from your competitors. Depending on the scenario you focus on with your product, you might choose Scenic Ribbon, Taskbar, Federated Search, Multi-touch, Libraries, others. You can get a complete list of new features at Windows 7 Developer Guide. For a video that gives you an overview of the features from a developer point of view, see Windows 7 Introduction – New Features for Developers.
To help you decide what features apply to your software, we’ve put together a table of scenarios, features, and customer value. See Top 10 Scenarios; ISVs Add Customer Value with Windows 7 Features to help you decide what features will help get your customers the most value.
Training Kit for Developers
To get you ready quickly, download the Windows 7 Developer Training Kit. The kit includes presentations, hands-on labs, and demos on Taskbar, Libraries, Multi-touch, Sensor and Location Platform, Ribbon, Background Processes, Services, and Tasks, Windows 7 Instrumentation and Performance, and more. Download the kit for the release candidate from Windows 7 RC Training Kit for Developers.
API Code Pack for Managed Code Developers
If you develop in managed code (C# or VB), you’ll want the Windows API Code Pack for Microsoft .NET Framework (formerly VistaBridge) which is a source code library that provides access to the new Windows 7 features from managed code. These features are not available to developers today in the .NET Framework. Download the free code pack and check out this video of the Code Pack in Action.
Taskbar and Jump Lists
You’ll notice the Taskbar the first time you open up Windows 7. A customized jump list lets your user go to the information they need most. The users of your application need not want to display the most recent documents saved; you may want to show the latest customers or the highest ranked items when the user clicks on your taskbar icon. You can manipulate custom destinations, user tasks, the Recent and Frequent lists, and items removed by the user by using the Taskbar and Jump Lists API.
For a video on how to implement, see Windows 7 Feature: Taskbar and Jump Lists. For a blog post that includes code and video, see Windows Task Bar in 10 Minutes. For conference presentations, see Windows 7 taskbar: Developer Resources on MSDN. For step by step in depth code samples, see the three-part blog postings, Developing for the Windows 7 Taskbar.
Libraries
Libraries are user-defined collections of content. Libraries extend the idea of known folders to make it easy for users to save files in a consistent way. Content can be stored all over the PC and network. Libraries give users control over their “Documents Library” folder structure. Users define which folders to include in the Documents Library.
To get started, use the common save dialog box for your applications. This will automatically display libraries to your users. To use the new Common Dialog, you’ll need to use the newer Vista or Windows 7 API in the System.Windows.Forms.FileDialog namespace. It’s like a half dozen line of code described in Light Up with Windows 7 Libraries.
For more information, see Windows 7 Programming Guide – Libraries or Windows 7 Libraries – Managed Code.
Federated Search
Windows 7 supports searching for documents beyond the user’s own PC. Developers and IT professionals can enable their search engines, document repositories, web applications, and proprietary data stores to be searched from Windows 7 without needing to write and deploy client code. This enables end users to search their corporate intranet or the web as easily as they can search for their local files—all from within the same familiar Windows interface.
You can build a basic web service that leverages the Windows OpenSearch provider for federated search. Federated search enables users to search remote data sources from within Windows Explorer and to interact with that remote data from within Windows Explorer. See Windows 7 Federated Search Provider Implementer’s Guide.
To see show how to code your own federated search tool so that end users of your product can download and install it to customize their Windows 7 interface, see Windows 7 Feature: Federated Search video on MSDEV.
Windows 7 Ribbon
Windows 7 features the Ribbon interface from Office 2007 throughout the operating system, enabling improved user interface development on the platform. This means that developers can eliminate much of the drudgery of Win32 UI development and deliver a rich, graphical, animated, and highly familiar user interface by using markup based UI and a small, high-performance, native code runtime.
You can put ribbon UI into your applications. The ribbon is extensible and adds to a better user experience. For more information, see Windows Ribbon Framework: Developer Resources.
To see a demonstration and code examples for leveraging the new Windows Ribbon feature in applications to provide a clean, user-friendly, and modern-looking user interface, see Windows 7 Feature: The Windows 7 Ribbon video on MSDEV.
Multi-Touch
Touch is probably the biggest crowd pleaser for demos and functionality. It offers some real innovation for your application. And the feature will get you thinking about how your application can be more exciting to your users. To take advantage of Touch, you are going to need a PC that supports multiple touch points.
The current API is native (unmanaged code) and in the near future Windows Presentation Foundation (WPF) 4 will include full support of Multi-Touch in Windows 7.
You can get started today seeing more about the possibilities. The Windows 7 SDK includes a few demos for reference, including detailed samples showcasing Multi-Touch gestures support, manipulation, and inertia for both WinForms and WPF.
For an overview, see Enabling Multi-Touch in the Windows 7 Beta. For code samples and hands on labs, see Windows Touch: Developer Resources. You can get a good idea of how powerful the features are for Touch in a video Windows Media Center on Windows 7 with Touch.
Sensor and Location Platform
Sensor and Location Platform provide a standard way to integrate sensor and location devices with Windows 7, and provides a standard programming model for applications to take advantage of these devices. You’ll want to use the sensor and location APIs for your application to take advantage of the current conditions. If your application takes advantage of GPS, this API is right for you.
For more information, see Windows 7 Sensor and Location .NET Interop Sample Library. For a sample application including code, see Location-Aware Navigation Application. The application uses Windows 7 Location Platform to retrieve user’s location and enables her to see her move on the Virtual Earth Map.
Powershell 2
Using PowerShell in your development efforts and to empower your users to customize the functionality and leverage your application in new ways. For example, PowerShell can be used to automate your application and configuration.
Give PowerShell scripters access the functionality of your application by creating custom CmdLets. You can also build PowerShell scripts to help automate testing your application.
If you expose your hierarchical data that the user will need to access, you might need to write your own Windows PowerShell provider, as described in How to Create a Windows PowerShell Provider.
Fire cmdlets from user interfaces to allow users to customize actions during installation and configuration.
High-Fidelity Graphics with DirectX
Windows application developers have long used DirectX to provide high-quality, hardware-accelerated, 3D graphics.
Windows 7 puts even more graphics capability into the hands of application developers. Through a new set of DirectX APIs, Win32 developers can take advantage of the latest innovations in GPUs to add fast, scalable, high-quality, 2D and 3D graphics, text, and images to their applications. On the latest LCD displays, DirectX APIs can display desktop and window content using color depth greater than 8 bits per color component.
These enhanced graphics capabilities are provided by the following COM-based APIs:
- Direct 2D for drawing 2D graphics.
- DirectWrite for arranging and rendering text.
- Windows Imaging Component for processing and displaying images.
- Direct 3D 10 for drawing 3D graphics.
- DirectX Graphics Infrastructure (DXGI) for managing devices and GPU resources, and providing interoperability between DirectX and GDI.
For an early look at how WPF in .NET Framework 4 will support graphics, see .NET Framework 4 – Windows Presentation Foundation Graphics and Multimedia.
Device Stage
Device Stage provides a new way for users to interact with eligible devices in Windows 7. It includes a visual interface that makes it easy for customers to find and use applications and services for their devices. Device Stage also provides a multifunction version of AutoPlay for certain eligible devices. Device makers that develop device experiences for Device Stage use a new set of XML schemas to specify rich branding and customization of the interface, including defining custom tasks to install software and links to services. Device makers can update their custom Device Stage experiences by submitting updates to Microsoft for distribution across the Internet to PCs running Windows 7.
To better understand how to create a device metadata package for Devices and Printers, review the white paper Device Metadata Package for Devices and Printers: Resource Roadmap
The Microsoft Device Experience Development Kit provides information and material you need to know to develop Device Stage experiences for eligible devices. The current release is available here.Installer
Windows Installer has been updated to increase developer efficiency by reducing the amount of custom code required to create an installation package and create true per-user software installations.
- Multiple Package Transaction allows developers to create a single transaction from multiple packages, using a “chainer” to dynamically include packages in the transaction. If one or more of the packages do not install as expected, simply roll back the installation.
- Embedded UI Handler makes custom UIs easier to integrate by embedding a custom user interface handler in the Windows Installer package.
- Embedded Multiple Package Chainer allows developers to enable installation events across multiple packages. For example, they can enable install-on-demand events, repair events, and uninstall events across multiple packages.
For more information, see Enhanced installer engine.
Other features
- Instrumentation and Performance. To see how you can use the built-in Windows 7 instrumentation to monitor your application, and provides code examples of some of the things you can do to improve you application’s performance, see Windows 7 Feature: Instrumentation and Performance on MSDEV.
- Background Services and Tasks. You can make background services and tasks run on demand, which is more efficient and improves overall system performance. The session includes code examples. See Windows 7 Feature: Background Service and Tasks video on MSDEV.
- Energy Efficiency. To use the energy efficiency diagnostic tool, and provides examples with code of how to tune your application to use power more efficiently and thus prolong battery life for laptops or other mobile devices, see Windows 7 Feature: Energy Efficiency video on MSDEV.
Hope this helps in your efforts to get compatible and light up Windows 7.
This post completes the multi-part series.
Thanks for checking out this post!