XAML, langage de création d'interfaces graphiques

XAML facilite grandement la création, l'édition, la réutilisation d'interfaces utilisateur graphiques pour les applications locale ou Web.
C'est à Windows ce que XUL est à Firefox, FXML à JavaFX. Le plug-in Silverlight utilise XAML pour décrire les interfaces d'applications Web.

XAML signifie "Extensible Application Markup Language", dont langage à balise d'application extensible. En fait la signification a changé au cours du temps, à l'origine le nom de code de WPF, "Avalon", faisait partie de l'acronyme. C'est un format XML doté d'une sémantique adaptée à la description d'interface utilisateur graphique.
Il a été créé par Microsoft et fonctionne sous environnement .NET.

Futur de XAML

Ce schéma montre le futur de XAML:
A la fois sur l'interface de bureau classique avec le plugin Silverlight dans le navigateur, et dans Metro pour les applications immersives.

Conçu à l'origine pour créer des applications sur la plateforme WPF de Vista, XAML en fait ne s'intégrera réellement dans Windows qu'avec la version 8. Utilisé comme langage d'interface du plugin Silverlight, il conservera ce rôle dans la nouvelle interface Metro à coté de HTML 5.
XAML a en fait des capacités de description d'interface utilisateur beaucoup plus complètes que celles de HTML. Mais ce dernier est lui totalement standard, tandis que le rôle de XAML se limitera aux applications spécifiques à Windows.

XAML décrit les objets de l'interface avec leur présentation

Il est plus simple de réaliser des applications avec XAML qu'avec XUL ou tout autre langage a balises utilisant les CSS, mais il sera ensuite plus difficile de les modifier.

Exemple de code XAML

Afficher: Salut le Monde:

<Page xmlns="">
  <TextBlock>
     Salut, le Monde!
  </TextBlock>
</Page>
          

Dessine un bouton:

<button 
   Background="Gray" 
   FontSize="18pt" 
   Click="OnClick">
     Soumettre
</button>  

Outils et documentation

Langages de programmation AspectJ - Basic - C - CIL - C++ - C++11 - C# - Dart - Eiffel - Go - Java - JavaScript - JavaFX Script - Pascal - PHP - Python - QML - Rexx - Ruby - Scala - Scriptol - Tcl - HTML - XML - XAML - XUL - SQL