WinFX API Primer

Just the facts, ma'am.

Sunday, September 11, 2005 by Frogboy | Discussion: PDC 2005

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.

SATYROBE
Reply #1 Monday, September 12, 2005 2:36 AM
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.
Leauki
Reply #2 Monday, September 12, 2005 3:17 AM
How is WinFX implemented? Is it a new subsystem like Win32 or is it running on top of Win32?
Zoomba
Reply #3 Monday, September 12, 2005 10:09 AM
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)
Leauki
Reply #4 Monday, September 12, 2005 11:16 AM
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.)
Frogboy
Reply #5 Tuesday, September 13, 2005 9:33 AM

.NET is part of the WinFX API.

Leauki
Reply #6 Tuesday, September 13, 2005 10:06 AM
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).



Zoomba
Reply #7 Tuesday, September 13, 2005 12:42 PM
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
Leauki
Reply #8 Tuesday, September 13, 2005 2:38 PM
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).
Leauki
Reply #9 Wednesday, September 14, 2005 6:18 AM
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.

Please login to comment and/or vote for this skin.

Welcome Guest! Please take the time to register with us.
There are many great features available to you once you register, including:

  • Richer content, access to many features that are disabled for guests like commenting on the forums and downloading skins.
  • Access to a great community, with a massive database of many, many areas of interest.
  • Access to contests & subscription offers like exclusive emails.
  • It's simple, and FREE!



web-wc01