But before developers start adding new UI elements, they should make sure their program's fundamentals are solid. Although Windows 7 improved the user account control (UAC) function Vista introduced, developers should still make sure their programs are as compatible as possible with UAC. One of Vista's headaches was that any process that modified the system would cause a UAC prompt, annoying users. With Windows 7, processes that users explicitly launch -- by double-clicking an icon, for instance -- won't bring up a UAC prompt. Still, it's important to elevate permissions with UAC correctly for security as well as usability concerns.
Designing programs for the Windows 7 taskbar
Windows 7's most exciting set of new features for developers is in the taskbar, which Microsoft has significantly changed. Instead of each window having its own tab, each program in Windows 7 is given an icon on the taskbar. Hovering the cursor over an icon brings up a preview of that program's windows, while right-clicking on it -- or clicking on it and dragging upwards -- brings up the program's jump lists, a new feature in Windows 7.
Microsoft is also reclaiming the notification area in Windows 7. Only a couple of standard icons will appear on the taskbar by default; the rest will live in a customizable popup box, although users can drag icons to the main bar. For developers, this means that applications that use an icon in the notification area as a quick access point for common functions will no longer be as convenient for users. Programs should use jump lists instead.
Unlike UAC's new behavior or the refined notification area, jump lists are a completely new feature in Windows 7. Jump lists are conceptually similar to per-application Start menus, said Rob Jarrett, senior design engineer on Microsoft's core user experience team, at a session on Windows 7 at PDC. Programs that use Windows' "recent documents" functionality through SHAddToRecentDocs will have their jump lists automatically populated with that list, but developers must explicitly program any additional functionality. Jump lists can contain "nouns," such as recent or common documents, or "verbs," which are commands. For instance, a music player may list the most recently played files as well as play, pause and fast-forward commands.
For many programmers, Windows 7 won't be a major change from Vista. Developers who haven't yet updated their applications to work with UAC should consider doing so soon, but many of the other changes to Microsoft's next operating system are cosmetic. Still, developers should take advantage of this beta to update their program's UI -- after all, looks matter.
This was first published in January 2009