First go listen to this interview with Robert McLaws of LonghornBlogs fame and then here are some corrections on a few bits of misinformation given about Avalon in the interview:
- Avalon is not a “desktop renderer”: It is an API for designing next generation windows client applications. Part of that has to do with a new graphics and multimedia stack, but that’s not all Avalon is. It also introduces a new: threading model, application model, data-binding model, resource model, eventing model, input and command model, etc. So this is not what I would deem as the rendering technology. The rendering technology is actually DirectX which leads me to the next point…
- No version of Avalon is built on top of GDI+: It is built on top of DirectX. XP, 2003, or Longhorn… doesn’t matter. As such it leverages all the features of the GPU to do all rendering. This includes 2D as well as 3D. In fact, all 2D is actually accomplished using 3D. GDI[+] is still available even in Longhorn, it’s just that Avalon completely bypasses it. Note that you can host WinForms and pure Win32 controls in an Avalon application and, believe it or not, vice versa.
- Avalon != XAML and not a “declaritive markup engine”: This is a common misconception. XAML stands for: Extensible Application Markup Language. It is simply a serialization format that allows you to declaritively define an object graph based on everyone’s favorite syntax: XML. Avalon controls are just one kind of object graph that can be built and, obviously, the most common example right now. However I could just as easily construct a graph of any other type of .NET objects. That said, the XAML serialization engine is part of the Avalon API.
- “Loose” XAML no longer browseable as of latest builds: As of the March CTP you can no longer simply browse to a XAML file. It must be compiled into an application. The main reason for this seems to be that Microsoft does not want to promise delivery of this feature because of all the security holes it could potentially open up. There tends to be a lot of discussion about this in the Avalon newsgroup. Also, “browsing to an application” really has nothing to do with XAML or even Avalon, but rather smart client technology, aka Click Once as mentioned. Windows Forms apps can be run exactly the same way.
- Avalon backported to XP/2003 because: The plan was not always to backport it. The reason it was backported is so that third parties can develop applications built on this great technology and have them work on XP/2003 as well as Longhorn. Obviously not everyone is gonna run out and upgrade to Longhorn “day zero”. That said, some features of Avalon will only be available on Longhorn, not to mention that the new graphics driver model (the LDDM as mentioned) coupled with the Desktop Window Manager (DWM) that come along with Longhorn ensure a vastly better experience when you have multiple Avalon applications running. This is because the old driver model for GPUs does not lend itself to multi-tasking. The current display driver model was basically meant to run GDI[+] or one 3D application as fast as the metal allowed (e.g. Doom 3 or HalfLife-2 full screen). Now that the GPU is a core dependency of the way the OS displays everything on your desktop, it needs to support richer scheduling as well as virtual memory. For more information on what differences there are between platforms, check out this post from Chris Anderson. For info on all the improvements being made to graphics technology in Longhorn, definitely check out this article that was just published over on ExtremeTech.