Microsoft has completed Windows 7 and released it for manufacturing with much fanfare. It is a key step in terms of Microsoft's battle with Apple for hearts, minds, and above all sales; but does it matter to the average corporate developer?
There are a couple of ways of looking at the question. Windows 7 has new features, and although it is unlikely that you would want to require Windows 7 for your application at this early stage, you might want the kudos of adding a few enhancements that appear when running on the new operating system.
The other angle is simply this: if some early adopter insists on running your app on Windows 7, against corporate policy, will it still work?
Windows 7 is an unequivocal improvement on Vista and makes XP look distinctly dated and insecure, so it's likely that adoption will be relatively rapid, especially in the consumer market.
The official line is that application compatibility should be good, and my experience bears that out. In particular, if an application runs OK on Vista it will almost certainly be fine on Windows 7 as well. An XP application is more likely to break on Vista, than a Vista application on Windows 7. User Account Control (UAC) is the biggest source of compatibility issues, particularly for applications that assumed the user to be running with local administrator rights. Test your applications, of course; but unless you are writing tricksy things like anti-virus utilities they will most likely work as well on Windows 7 as they did on Vista.
What about enhancements? Some Windows 7 features are worth supporting, because they improve usability. The most obvious example is the taskbar, the heart of the Windows 7 user interface. Taskbar jump lists, which are right-click menus for taskbar icons, can be customised to support tasks specific to your application; and taskbar preview windows can include controls enabling a miniature user interface for the most common actions. This means users can do some of what they need without opening the main application window at all, which can be a great time-saver.
So how hard is it to add Windows 7 features to your application? An interesting question. Despite the popularity of .NET Languages like C# and Visual Basic for business applications, Windows is mainly written in C++, and when it comes to supporting new features that shows. If you are a C++ developer, you can download the latest SDK and get going immediately.
.NET developers have a more difficult set of choices. You can wait for Windows 7 features to be added to the .NET Framework (it could be a while), or roll your own interop code, or use one of Microsoft's .NET libraries, which are as yet incomplete. The last route is the most tempting, though Microsoft has gone out of its way to confuse matters by producing both sample libraries targetting specific areas, like the Windows 7 Taskbar and Libraries .NET Interop Sample Library, as well as an all-embracing Windows API Code Pack which is I think the preferred solution but which is in some respects even less complete.
Still, it should not be too hard to add some Windows 7 bling to your app using one of the .NET offerings. Then again, hasn't the boss started using a Mac at home? Is it better to invest your time in polishing the experience on Windows, or looking into how you might port to web-based and/or cross-platform applications? Like everything else, it depends; but if you work in .NET it is well worth keeping an eye on Silverlight as well as the latest developments with Windows 7.
This official blog post is an overview of the main API changes in Windows 7.
The Windows SDK blog has detailed info and gotchas for bleeding-edge Windows developers.
Listed below are links to blogs that reference this entry: Windows 7: the challenge for developers.
TrackBack URL for this entry: http://www.itjoblog.co.uk/blogadmin/mt-tb.cgi/109