The Active Network
ActiveWin: Reviews Active Network | New Reviews | Old Reviews | Interviews |Mailing List | Forums 
 

Amazon.com

  *  


Product: Windows 7
Company: Microsoft
Website: http://www.microsoft.com
MSRP:
See Pricing  Purchase at Amazon.com
Review By: Andre Da Costa

with Byron Hinson, Robert Stein & Fernando Fhualpa contributing

Windows 7 Developer Support

Table Of Contents (70 Pages)
1: Introduction & Executive Summary
2: Pricing, Editions & System
Requirements
3:
Installation, Setup & Upgrading
4: Initial Impressions
5: Daily Usage
6: Connectivity & Networking
7: Windows Internet Explorer 8
8: IE 8 - Developer, Compatibility & Security
9: Accessories (Search, Applets, etc.)

10: Windows Media Player 12 & Media Center
11: Enterprise & Security Improvements
12: Windows Virtual XP Mode
13: Device Stage & Printing
14: Remote Assistance - Easy Connect
15: Customizing Windows 7
16: Maintenance & Power Management
17: Gaming & Desktop Graphics Performance
18: USB Transfer Tests

19: Desktop & Personalization
20: Support Tools
21: System Restore & Recovery Options
22: Tablet PC & Windows Touch
23: Windows Update & Other Enhancements
24: Windows 7 Developer Support
25: Competition
26: Conclusion & Online Resources

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 PowerS­hell 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.

Windows Troubleshooting Platform:  It is essentially a platform built around PowerShell to provide scripts to help you troubleshoot and resolve problems. The Windows Troubleshooting Toolkit enables developers to author Powershell scripts.

XPS APIs: Windows 7 provides unmanaged APIs to work with XPS. Previously in Windows Vista only managed developers benefited from XPS. As XPS is a core component of the new Windows Print Platform it become a need to provide unmanaged APIs to integrate it with cameras, printers and any other document peripherial device that still handle most of their logic in unmanaged code.

Platform Scenic: Composed by the Sce­nic Animation and Scenic Ribbon APIs. Scenic Animation makes possible to develop and maintain animations on the UI to providing a smooth experience. Scenic Ribbon also known as Windows Ribbon is the Office 2007 ribbon UI available on the OS via a set of unmanaged COM interfaces referred as the Windows Ribbon Framework. The idea of adding the ribbon UI to the OS is to have an alternative to the standard presentation model of Windows applications.

Libraries APIs: It is a new COM based API that enables developers to organize content by using the library abstraction rather than the folders. There is a .NET interop library available for managed developers.

Taskbar APIs: It is a new COM API to support progress, thumbnails and local actions on the taskbar icons without full window restoration of executing applications. There is a .NET interop library available for managed developers.

Direct2D y DirectWrite: Direct2D is the successor of GDI and GDI plus. It is a library itself that encapsulates the DirectX 10 API to render graphics in 2D.  DirectWrite is the ideal companion for Direct2D; its main advantage is that it allows to render high quality text via graphic acceleration.

Direct3D11: This is a new release of the world class COM API to render 3D graphics. It mainly features support for the next generation of GPUs and support for multi-core CPUs.

Media Foundation: Improves media support in Windows 7 by including support for codecs for H.264 video, ACC audio and MPEG-4 as well as improvements to the Media Foundation unmanaged APIs.

Sensor and Location Platform: Provides new and unified COM APIs for sensory inputs and location. There is a .NET interop library that provides strongly type objects to work against this API.

Windows Biometrics Framework: It is a set of native Win32 C functions API which enable applications to use fingerprint devices to enroll, identify, and verify user identities.

Windows Web Services: This new API enables to develop SOAP web services using native code with a service model very similar to the one of WCF, which accelerates the learning curve and integration between both. This is a C raw API; it is not a COM API.

At the system level the OS features something called the User Mode Scheduler to manage thread execution on user space. The new scheduler allows an application to control and throttle resources without going to the kernel which frees the kernel from unnecessary blocks. This also avoid falling back to other mechanisms used in the past such as fibers or lightweight threads in which the application was responsible of implementing its own scheduling policy to coordinate the execution of fibers. User Mode Scheduling moves decisions about how to use resources closer to applications where the compiler or runtime has intimate knowledge of what code and metadata do. Although there is a Win32 native API to manage the User Mode Scheduler it is advised to develop against it with the ConcRT (Concurrency Runtime, a programming framework for C++), since the Win32 API may change dramatically on next Windows releases.

Going even deeper Win­dows 7 includes Windows Driver Framework 1.9(composed by User Mode Driver Framework 1.9 and Kernel Mode Driver Framework 1.9). The important thing is that this minor release (in Vista was 1.7) of this unmanaged driver framework provides supports for mouti-touch, biometrics, and sensors driver models.

Although Windows 7 is promoted as Windows Vista neatly developed or as a Windows Vista R2, it is much more. The system provides the platform infrastructure APIs native to offer the creation of the next generation of applications with graphic acceleration and that make use of the whole potential of multi core processors. It is just a matter of time for the current applications that use the legacy APIs like GDI or GDI+ to move to Direct2D and start administering it execution with the new user mode scheduler. The OS really adds some evolutionary changes but are definitely a major benefit to developers out there who target software for Windows.

 

Fernando Javier Hualpa is an Argentinean software developer who is constantly looking for new technologies to review and test. He has been a member of the Microsoft Technical Beta Testers program since year 2000. His passions are developer tools and managed code and lately he has started studying the Windows Kernel in order to develop drivers. You can learn more about his interest at the following blogs: http://bloggingabout.net/blogs/fernando and http://geeks.ms/blogs/fhualpa where you will find his appreciations on the latest Microsoft ideas and trends.
 

 « Windows Update & Other Enhancements Competition »

 

  *  
  *   *