The last couple days of the PDC were spent single-tracking through the Windows Presentation Foundation (WPF, formerly known as Avalon) and Microsoft Expression sessions. Later in the evening on Thursday, I spent a good chunk of time with Ian Ellison-Taylor and other folks from the Microsoft WPF team at the "Ask the Experts" session. My thanks to Ian for spending so much time discussing the history, direction and some specifics of WPF and XAML.
The Case for XAML
The eXtensible Application Markup Language (XAML) is an XML-based file format used for defining classes, and arbitrary data and events associated with those classes. WPF uses XAML extensively to define UX elements, including shapes, animations, bitmaps, event handlers, resources, styles, templates, controls and others. I originally sold XAML short, thinking it to be the equivalent of HTML for WPF forms applications. It's much larger than that.
XAML has rapidly become An Important Spec for developers to know and understand. Not only is it the UX spec for WPF, but it, and its subsets, are used by Office 12 for file stores, in XPS for documents and printing, and by third parties for their own file formats. If you need a persistent data format for your application, definitely look at XAML to see if it fits your needs.
XAML in WPF
In WPF, XAML can be compared and contrasted with SVG and other standards. While I am not intimately familiar with SVG, I have been told that they are similar, but that XAML is much larger, even when taken only in its WPF context.
Just about everything in WPF can be represented either via code, or via XAML. While code may be a fun way to get into it at first, the more project-friendly approach is to define your UI - your View - using XAML, and concentrate the code on the logic. This provides a clear separation of duties, and allows for sincorporating pecialized UX designers into your team.
In WPF, XAML is used to define UX classes, positioning, styles, animation, video, graphics etc. If it is in the UX, it can likely be expressed via a node or attribute in the XAML schema.
I'll post more on XAML and WPF as I move forward with both. In the mean time, here are a few useful XAML links: