|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Windows 7 Developer Support
Windows 7 is the new version of the most popular OS in the planet. It was designed to be to be totally compatible with the existent software ecosystem of Windows Vista including but not limited to drivers, applications and hardware. Microsoft recognizes that is essential that existing applications continue to execute on Windows 7, hence there is a minor but important change is in the OS versioning. The internal build number that Windows 7 reports when you call the GetVersionEx WINAPI function call is 6.1. This is of vital importance for installers and drivers. Since they rely on the integer portion of the OS version (6 in this case) to determine whether to install/execute or not. If they get a different number such as 7 for instance it is highly possible that those applications do not get installed which will harden compatibility for the applications already adapted and developed for Windows Vista. For this reason the internal number reported has only been incremented in the decimal part. Of course that the OS versioning is of great help to troubleshoot compatibility issues, but it is important to have always present that every code must be tested against the target OS. That is because there are other technical aspects that may cause compatibility issues either on the code itself or on its installer. There is more besides keeping backward compatibility; another core intention of Windows 7 is to provide richer application experiences by improving user interactions. That is why Windows 7 adds touch, gestures, object manipulation and inertia APIs to provide more natural and intuitive environments. The Windows multi-touch APIs are a set of native Win32 C++ functions as well as native COM interfaces. The community has developed some .NET interop libraries to use multi-touch from managed code either on WinForms or on WPF. But officially WPF 4.0 that will ship with .NET 4.0 will support multi-touch out of the box. The .NET Framework 3.5 SP1 is now a component of the Windows 7 operating system. This new set of managed interfaces represents an incremental release of the managed classes specially Windows Presentation Foundation (WPF), Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF). Additionally Windows 7 supports PowerShell 2.0 which has evolved to become a complete .NET managed scripting language both on the interactive shell and on the GUI. Both are installed by default. Windows 7 features many new and improved unmanaged APIs, so the C/C++/COM developers will find many native interfaces. Some of them have .NET interop libraries being developed by the community, others will expose strongly type objects on the .NET Framework 4.0 and for the remaining ones you should build your custom managed wrappers. Among them, the most promising ones are: Windows Filtering Platform: The architecture has been improved to increase the level of filtering and to provide capabilities to other non-IP protocols. Service Control Manager: Provides a trigger-start capability to start windows services when a specific event occurs on the system. There are predefined triggers and a new API that enable a service to register for specific custom trigger events. Packaging APIs: For managing documents formats compatible with the standard OPC (Open Packaging Conventions), Windows 7 supports all the OPC file formats including the ones from Microsoft as well as formats from third parties. This way a developer can create its own file format using OPC. These APIs existed in Windows Vista but in managed code via the .NET Framework. Windows 7 features the unmanaged counterpart. |