WinFX API Primer

Just the facts, ma'am.

There's so many technologies floating out of Microsoft these days that it's really difficult to fixate on what is and isn't important.  This series of guides is designed to provide you with a nuts and bolts overview of what developers should be paying attention to in Windows Vista.

Since 1994, Microsoft has been pushing a single overall API known as Win32.  Starting with Windows Vista, the new API is WinFX.  That doesn't mean Win32 is going away, it's still there. But WinFX is going to be the one that Microsoft is going to focus most of its attention on for most developers.

.NET

.NET is a rich sets of APIs Microsoft has been making available as a separate download for some time.  .NET 1.1 is the current official release but 2.0 is in beta.  While some will cringe at the comparison, .NET is kind of a much much better implementation of Microsoft's old MFC libraries.  The problem today with .NET is that it requires a separate download.  But in Windows Vista, it'll be part of the OS.  We've used .NET internally and it is very nice.  When used with C# or VB.net, you can create things much faster and much cleaner.  The main downside is that it's managed code which isn't really bad for most developers but if you want to get more low level, you still need Win32.  But very few people write code that wouldn't be better handled by .NET.  If you're a software developer, start learning more about .NET.

AVALON

This is officially called Windows Presentation Foundation.  It's the new graphics subsystem in Windows Vista.  In some ways, it is similar to the various GDI implementations but has a very rich API.  Its functions can be accessed from .NET languages such as C# but it also includes a mark-up language for making visual applications very easily called XAML.  If you plan to create programs that are visual in nature, learn about AVALON.

INDIGO

This is officially called the Windows Communication Foundation.  I can tell you from experience that writing network aware applications can be a real pain in the butt.  INDIGO makes it much easier to create network programs.  If you write code that talks to other computers (over a LAN or the Net) you'll want to learn about INDIGO.

These APIs put together are called WinFX.  The other technologies in Windows Vista are interesting but for most developers, these are the key 3 that you will want to keep an eye on. 

From a developer's point of view, Windows Vista is going to be nice because WinFX is part of the OS.  On Windows XP, we don't tend to make use of .NET, even though it is so nice, because we don't want to require our users to have to download extra "stuff".  Developers who know these technologies will have a significant productivity advantage in developing software for Vista over those who stick to Win32 for general application development.

10,375 views 9 replies
Reply #1 Top
Extremely good fast overview with brillant graphical illustration understandable to nondevelopers, wow they almost copied Stardocks tool name WindowFX. This aspect of Vista also sounds like a technical improvement. Switching OSes for home users might take a while yet not only be hard to avoid but also be rewarding in the long run. More time and money. Thats life. Technically an improvement. Their marketing, oh well. Shame ur not doing that for them.
Reply #2 Top
How is WinFX implemented? Is it a new subsystem like Win32 or is it running on top of Win32?
Reply #3 Top
From what I've read, WinFX is a subsystem like Win32 (it's meant to replace it, though as Brad said, Win32 will remain, just not expanded/supported much from now on)
Reply #4 Top
Zoomba, where did you read this?

So WinFX is more or less a complete NT subsystem implementing the same API (plus new extensions and features) as .NET implements on top of Win32?

Is .NET to WinFX like Cygnus to Interix? (Apart from the binary compatibility in the first case.)
Reply #5 Top

.NET is part of the WinFX API.

Reply #6 Top
Yes, that is clear. But is WinFX a subsystem implementing this API or merely an extension of .NET?

Cygwin and Interix both implement the POSIX API for Windows, but Interix (or ather "Windows Services for UNIX") is a subsystem and Cygwin works on top of Win32 (like Wine does in the opposite direction, I wonder if Wine runs on Interix).



Reply #7 Top
http://www.computerweekly.com/Articles/2005/08/30/211567/WinFXshowsnetmanagedcodeisthefutureforMSdevelopers.htm

WinFX is the replacement to Win32, which implies (to me) that it will operate at the same level that Win32 did. WinFX is going to integrate .NET into the subsystem, instead of having it run on top of it like it did in Win32, making everything theoretically more effecient.

The image in brad's post accurately shows the relation of .NET to WinFX. .NET is becoming a function within the new WinFX API
Reply #8 Top
I think you are right. If Microsoft plan to eventually phase out Win32 (or at least to make that possible), they would probably replace it with another subsystem, like Win32 replaced the OS/2 subsystem (that happened before the first release, although the OS/2 subsystem was with us until Windows 2000 inclusive).
Reply #9 Top
I figure that since all of Microsoft's big applications (Office!) are Win32, Win32 won't go away for a long time. Perhaps it might be replaced by a Win32 runtime for WinFX though.