On October 22, 2009, Windows 7 will be available, and Windows Server 2008 R2 will be released. Many industry analysts expect a fairly swift uptake of the new OS, thanks to early reviews that state Windows 7 is better than Windows Vista, and a number of customers who have stayed with Windows XP are in need of system refreshes. Regardless of whether Windows 7 rolls out quickly or slowly in your organization, it is important to know how it will impact your applications.
Overall, Windows 7 seems to have the same underpinnings as Windows Vista, but it is tweaked in all of the right places. Many of the improvements in Windows 7 will be available in Windows Vista as well (or already available on Windows Vista), such as PowerShell 2.0, Internet Explorer 8, and .NET 3.5. Also, the driver situation at launch will be much better than it was with Windows Vista.
The big concern for every developer is: What will Windows 7 break in my application? Fortunately, it looks like very few apps will break with the move to Windows 7. From what I can tell, with Windows Vista, Microsoft made a real break from the past in terms of security, and it was that step that broke apps. I spoke briefly with Microsoft's Brian Hitney at the recent Carolina Code Camp, and he agreed with that assessment. In addition, the documentation on MSDN that lists resources to learn about compatibility points to the Windows Vista documentation as well as the Windows 7/Windows Server 2008 R2 documentation, which is further evidence of this scenario.
I have been using Windows 7 for a few weeks, and one thing I noticed right away is that the UAC is a bit less "in your face" than it used to be, which is a pleasant change for applications that require escalated privileges. Be aware that Windows 7 supports high DPI monitors; this means that, unless you make your application "DPI-aware," its GUI could be far too small on a high DPI display. Microsoft has provided useful information on the topic for both .NET and Win32 developers.
Windows Mail, Windows Movie Maker, and Microsoft Agent are not in Windows 7, so if your application counts on these items, you will need to work around this. Check out the Windows 7 and Windows Server 2008 R2 Application Quality Cookbook for full details.
One of the big dangers with leveraging a new OS's features is that you don't want to find yourself in a situation where your application only works on that platform. There are some neat new features in Windows 7 that you can use and not break your application on platforms that lack the features. Those features include the following:
- Progress bars in title windows
- Interactive taskbar "thumbnails." For example, when your hover the mouse over the taskbar entry for Windows Media Player, the window preview is overlaid with basic play controls.
- Jumplists, which allow application functionality to be called directly from the Start menu.
- A new animation framework
- Improved handwriting/ink API including "math recognition"
- Improved touch support
- Federated Search, which allows developers to create feeds the Windows search (and SharePoint) can consume.
Some developers will not mind that their applications will only be compatible with Windows 7. For these developers, some of the cool things they can work with are: the new Ribbon control, which is decoupled from Office, and sensor and location APIs.
Here are additional resources that you may find helpful:
- Windows 7 Developer Guide
- Microsoft Application Verifier
- Microsoft Application Compatibility Toolkit
- Windows API Code Pack for .NET (provides access to Windows 7 and Windows Vista functionality from within .NET)
- Window 7 logo program and Windows Server 2008 logo program
- Bookmark TechRepublic's Windows 7 and Launch Windows 7 focus pages.
If you have experience with development on Windows 7 or Windows Server 2008 R2, we would love to hear about it in the forums.
J.JaDisclosure of Justin's industry affiliations: Justin James has a contract with Spiceworks to write product buying guides. He is also under contract to OpenAmplify, which is owned by Hapax, to write a series of blogs, tutorials, and other articles.
———————————————————————————————————————————-Get weekly development tips in your inbox Keep your developer skills sharp by signing up for TechRepublic's free Web Developer newsletter, delivered each Tuesday. Automatically subscribe today!
Justin James is an OutSystems MVP, architect, and developer with expertise in SaaS applications and enterprise applications.