Differentiating Avalon, XAML and Aero

One of the areas that I've seen cause a bit of confusion in the newsgroups and on blogs is the difference between three technologies that will ship with Longhorn: Avalon, XAML and Aero. I wanted to address this quickly in the hope that it helps us all get a little more precise with our terminology:

  • Avalon is the codename for the new graphics subsystem that will ship for Longhorn and as of today for current operating systems. In purely technical terms, Avalon is a series of assemblies that contain classes that form part of the System.Windows namespace. Avalon contains a layout engine that places controls within a window, a series of controls (such as CheckBox, TextBox), some document services (rich typography, compound documents, and document viewers), media services, graphics primitives and animation capabilities. In other words, it's a fairly big deal. For now, Avalon is bleeding-edge technology that is still some way off general adoption, but eventually we hope it will become a powerful service that integrates all these currently disparate services together into a unified stack.
  • XAML (which stands for "Extensible Application Markup Language") provides an XML-based way to specify declaratively a hierarchy of objects with properties and logic. We're positioning XAML as a user interface design language, because it is ideal for generating the kind of code that traditionally resided in a hidden #region area and was hard to maintain by both developers and tools. If you've ever wanted to edit the auto-generated blocks of code created by Visual Studio but been dissuaded by the warning comments writ large, or you've gone ahead regardless and been burnt badly when your tools refused to load your changes, you'll appreciate XAML. XAML is not Avalon, and Avalon is not XAML. It so happens that they come out of the same team at Microsoft, but they are not intrinsically wedded together. I've been asked before "where can I go to get the XSD for XAML?" and hopefully it's now clear that this question doesn't make much more sense than asking for the C# schema. XAML gets compiled into an object definition.
  • Aero is the name for the Longhorn user experience. At the PDC, Aero and Avalon sometimes got merged together in people's minds, perhaps because they both begin with the same letter and have to do with user interfaces. We're not talking a huge bunch about Aero for the moment; the link points to the Aero pages on MSDN.

Hope that helps clarify things a little...

Comments (7)
  1. Anonymous says:

    Interesting. Thanks for the clarification.

    But as of today, what’s shipping with longhorn and what’s not?

  2. Anonymous says:

    Longhorn will include all three of the above.

  3. Anonymous says:

    Sorry, I still don’t understand why, if XAML is XML, why it can’t have an XSD.

  4. Anonymous says:

    Baldrick, the answer is that because XAML is a mapping to any set of CLR objects, it would be impossible to come up with a practical definition in XSD. If I add a control that I’ve created myself, the schema is extended. In other words, the schema becomes equal to the full universe of valid XML syntax. I don’t know I’ve explained that very well, but perhaps that makes sense to you. Thanks for the question, anyway!

  5. Anonymous says:

    New Avalon version: If you’ve got an MSDN subscription, then there’s a new "Community Technology Preview" version available. MSDN also has a new introductory article open to all, where they distinguish between the Avalon runtimes (both native Longhorn and the…

  6. Anonymous says:

    Latest version of Avalon ready for MSDN subscribers

Comments are closed.

Skip to main content