What is it?: WinFX is the application programming interface (API) used in Vista, the forthcoming version of Windows. FX stands for Framework Extension, and WinFX is literally an extension of the .net Framework.
In 2003, when Microsoft unveiled WinFX, the replacement for Win32, analyst firm Gartner warned that developers would need to gain skills in the .net Framework to make use of the new API. Recent announcements concerning Windows Vista, better known by the codename Longhorn, spell the long-term demise of the Win32 programming model, and unmanaged code.
However, Microsoft has committed itself to ensuring that older applications will continue to run, and said all features will also be accessible to Win32 developers. "Existing source code and training skills apply to Windows Vista, whether developing in C++/MFC or VB.net/Windows Forms," it said.
WinFX is designed to be used primarily by .net languages, providing a consistent managed-code programming model. Windows Vista's new approaches to presentation and communications, the Windows Presentation and Communications Foundations (codenamed Avalon and
Indigo respectively) will both be exposed through WinFX.
Where did it originate?
The Win32 APIs (there are approximately 70,000 individual APIs in Win32) superseded Win16 in 1992, with the introduction of Windows NT. WinFX builds on the .net Framework, which was announced and released for public testing in 2000.
What is it for?
The three basic components of WinFX are the .net Framework, and the Avalon and Indigo subsystems. An XML-based markup language, XAML, has been developed for use with Avalon.
Managed code runs under the control of .net's Common Language Runtime, which takes care of burdens such as memory management - concerns that would otherwise have to be addressed by the developers themselves.
What makes it special?
As part of the operating system, WinFX has a closer relationship with low-level system resources than Win32. Developers may continue to develop applications with Win32, but the advantages of WinFX are persuasive, and include developing applications that should run unmodified both on the Windows Vista platform and other .net platforms. Existing .net applications should also be able to run without modification on Vista.
However, Gartner said the benefits of WinFX come at a cost. "While established Win32 applications will continue to run, a new application that takes full advantage of Avalon, Indigo and WinFS will not be backward-portable to platforms other than Longhorn," it said.
How difficult is it to master?
According to Microsoft, those who can already write managed code on the .net Framework will find WinFX "like second nature". Win32 programmers should see this as an opportunity to make the move to .net. Microsoft said, "Existing applications can incorporate WinFX-based functionality very easily."
What systems does it run on?
WinFX will also be made available on Windows XP and Windows Server 2003.
What is coming up?
The Windows Vista client, including WinFX, is due in 2006. Beta versions of the WinFX SDK and the Visual Studio extensions for WinFX can be downloaded from the Microsoft website.
This was first published in August 2005