Walkthrough to Get Your Applications Ready for Windows 7

The release candidate (RC) for Windows 7 is just around the corner. Dates for the Windows 7 RC were announced earlier this week. This blog posting is meant to be a one-stop introduction to next steps for the process of getting your application Windows 7-compatible and then lighting up your application with the new features in Windows 7. This is a real opportunity for your company to lead in your market.

The Microsoft Partner Program has a good list of Windows 7 resources of ISVs including white papers, lists of the editions and features, small business training kits.

For videos about the new Windows 7 features, see Windows 7 Beta videos. You'll find short sneak peeks of about 90 seconds about many of the new features. 

First Order of Business: Compatibility for Windows Client Applications

The first order of business is application compatibility. Generally, if your Windows client application runs under Windows Vista, you're probably compatible. But to be safe, check out the Windows 7 Application Compatibility Guide. The Guide highlights changes that could affect your application. it also points out differences in performance, reliability, and usability, and provides links to detailed white papers and other developer guidance.

Next, test your application. We have labs across the USA to help you test your application. For more information, see Dates Updated for Windows 7 Application Compatibility Labs. And there will be labs set up at TechEd. For more information, see Test Your Application on Windows 7 at TechEd 2009. And you are welcome to use the testing labs in Redmond. You'll have access to all the resources to get your applications ready for Windows 7. Send e-mail to get information on how to get access to the Windows 7 application compatibility labs in Redmond, WA.

Next certify your application as compatible. There are several steps, but once you you complete the steps, you can display the Compatible with Windows 7 logo. Unlike past application certification, Windows 7 logo is a self test. The test tools are currently in pre-release. You'll be able to do some early testing. Basically once you complete the test after the final version is released, you submit your results, and can display the logo. Completing the steps will also qualify your company for partner points in the Microsoft Partner Program. For more information, see Windows 7 Software Logo. Be sure to sign up for the newsletter to receive the invite, codes to activate the logo testing tools, and up-to-date information.

If you'd like to find out more about application compatibility, attend the Windows 7 Virtual Readiness Day.

One final note: you'll want to do a clean install if you are running Windows XP or Windows 7 Beta. For more information, see Delivering a Quality Upgrade Experience.

First Order of Business: Compatibility for Web Applications

The browser that ships on Windows 7 is Internet Explorer 8. And users of Windows XP, Windows Vista, Windows Server 2003 or Windows Server 2008 are getting notified through Automatic Update to update to Internet Explorer 8. So if you haven't done so already, be sure both your Web application and your customer-facing Web site are compatible with Internet Explorer 8.

As a short term measure, you can add a tag to your Web application at the page or site to render your site in IE8 as it does in IE7. For more information, see Introducing IE=EmulateIE7. That's a short term measure though. You'll want to update your Web pages from IE7 to IE8. The Internet Explorer team has pulled together a list of the major things to look for in your pages and how to update them at Site Compatibility and IE8

We've released some great tools to help you see how your page renders across browsers. There are developer tools inside IE8 that outline your HTML, and help you figure out how your cascading style sheets are being applied, debug your JavaScript, and much more. In addition, you can compare how your site renders in various browsers using Expression Web SuperPreview.

And while you are looking at your code, you can also add a tag that will prevent clickjacking your site. For more information, see Prevent Clickjacking on Your Site with a Metatag.

Light up Windows 7

Next, you can light up Windows 7 features in your application. Lighting up your application in Windows 7 gives the users a better experience and shows you are among the development leaders. Many of the features are relatively easy to implement too. Lighting up Windows 7 is about adding to your application, not about rewriting or major revisions. Some of the features can be implemented in just a few lines of code.

So, you'll want to decide what features you want to light up. What features really add value for your users? You can get a complete list of features for your application at Windows 7 Developer Guide.

But I wanted to highlight some of the features and provide some links on where you can get started.

Fast Track to Get Started

Before I dive into the main features for line of business applications, you'll want to get:

  • Latest release of Windows 7. I'll be sure to post links on where you can get Windows 7 released candidate as soon as it is publicly available.
  • Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1: BETA. Once the release candidate is out, the SDK will be revised and improved within a few weeks. Check the Windows Team Blog or this blog for announcements of the availability of the release candidate software developer kit. But you can get the SDK now to get an idea of what it takes to implement the features you're considering.
  • If you are developing on managed code using C# or Visual Basic, get the Windows API Code Pack for the .NET Library. You'll find sample code there to help you get started for Visual Basic, C#, and C++.
  • Resources for help. That includes Windows 7 developer code samples, forums, and events. More details a the end of this blog posting.

So you have the tools. Here's a list of what features you can light up: Windows 7 Touch, Taskbar, Libraries, Sensor and Location, PowerShell, and much more.

Windows 7 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.

Windows 7 Taskbar

You'll notice the Taskbar the first time you open up Windows 7. The Windows 7 engineering team describes the evolution behind the taskbar.

There are several features in the Taskbar for you to light up your application.

  • Jump Lists. A customized jump list lets your user go to the information they need most. You many 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.

Some additonal customizations are:

  • You customized window thumbnail preview and live preview (peek), including the facilities to receive a notification when a preview bitmap is requested by the Desktop Window Manager (DWM), and automatically grab the preview bitmap of a window.
  • You can create thumbnail toolbar buttons and receive notifications when they are clicked.
  • You can control custom window preview bitmaps, setting the Taskbar overlay icon and progress bar.

For more information, see Windows 7 Taskbar .NET Sample Library – an Overview. You'll find an overview, links to MSDN, and links to videos that show you how to implement the features.

Also see Windows 7 Taskbar Developer Resources on MSDN for code samples, videos, and conference presentations.

Windows 7 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 gives users control over their “Documents Library” folder structure. Users define which folders to include in the Documents Library.

As a developer, you can access a user's Library and consume its contents, removing the need maintain your own set of data storage for your application.

For example, your application might have its document type, such as a patient record file, where adding a custom library might assist your users in grouping together all patient records separate from other document types like photos or documents. You might want to save the records to a designated disk in the organization they can be centrally managed. And you'd like to make that storage location obvious to the user.

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.

You can add other features as needed. You can:

  • Manipulate and control the libraries in Windows 7 including create a new library or delete an existing one
  • Add or remove physical locations to a Library
  • Set an icon for each library
  • Enumerate the contents of a given library's physical location (the actual folders) to track down and map all the items in that library

You can also enable your applications to select Libraries and consume Libraries contents. And your applications can stay in sync with Library contents and directly manipulate Libraries. You can have full control over libraries, including creating new libraries.

For more information, see this series of posts on the Windows Team Blog for developers.

For a video to see Windows 7 Libraries in action, see Windows 7: Find and Organize

PowerShell 2.0

You can look at PowerShell in a several ways as an ISV.

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.

You won't be alone; ITPros are already using more than a hundred PowerShell scripts available in The Script Center to managing Exchange Server 2007 and IIS using Windows PowerShell cmdlets for managing IIS 7.0 

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 heirarchical 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.

Client Applications

Additional Windows 7 features

Some other parts of Windows 7 that you'll want to consider:

  • Power Management: If you build Windows Services as part of your application, those background tasks can really eat up power. To help conserve power and make batteries last longer, you can adjust your application to use power more effectively.
  • Windows 7 Sensor and Location: Provides 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.
  • Direct 2D, Direct 3D, DirectX: Deliver high-fidelity graphics and media.
  • Scenic Ribbon: Put ribbon UI into your applications. The ribbon is extensible and adds to a better user experience. 
  • Enhanced installer engine: The enhanced MSI engine makes software deployment easier.
  • Multicore support: Enhances application and device performance.

Resources

For more information, see:

Participate in forums. The Windows Client Forums for software developers on MSDN allow you to connect with the community, ask for technical insight, and seek answers to your questions.

Get Windows 7 through Microsoft Connect, the program provides you access to Windows 7 builds, application testing labs and toolkits to commence your development efforts to help you build innovative solutions for your customers.

Attend the Windows 7 Virtual Readiness Day.

The time is now. Windows 7 public release is just around the corner.