XAML

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article sur l'informatique doit être recyclé ().

Une réorganisation et une clarification du contenu paraissent nécessaires. Améliorez-le, discutez des points à améliorer ou précisez les sections à recycler en utilisant {{section à recycler}}.

XAML est un langage déclaratif développé pour les besoins des systèmes d'exploitation de Microsoft, Windows Vista, Windows 7 et Windows 8 et qui permet la description de données structurées. Prononcé Xammel, ces initiales correspondent à eXtensible Application Markup Language. Il s'agit d'un dialecte XML.

Ce langage créé initialement pour la déclaration d'interface riches dans WPF avec .NET Framework 3.0 (initialement appelé WinFX), a été intégré ensuite dans les développements connexes de Microsoft à savoir WCF et WF qui sont aussi utilisables avec ce langage. C'est maintenant un abus de considérer XAML comme un langage lié à la fabrication d'interface. Il est devenu un dialecte XML permettant l'instanciation à l'exécution d'objets issus des plateformes .NET Framework 3.0 et ultérieures.

Basé sur le langage XML, il facilite le travail du développeur et permet d'écrire une application client Windows aussi aisément qu'une application web. L'idée est en effet de séparer la déclaration des objets d'un programme du code sous-jacent comme cela est déjà le cas dans les applications Web de type ASP.NET.

Dans le cas de XAML pour WPF, le développement de l'interface utilisateur étant confié à des designers, Microsoft propose à ceux-ci le logiciel Expression Blend pour manipuler cette interface. XAML inclut également des fonctionnalités pour manipuler des objets en trois dimensions, de manière analogue à X3D.

XUL et UIML sont d'autres exemples de langages de description d'interfaces graphiques qui sont des dialectes XML.

Transaction Authority

XAML est également une spécification de développement pour des services web qui tire son nom du protocole XA (Transaction Authority) qui a donné Transaction Authority Markup Language.

Les spécifications XAML permettent en effet à une transaction web de gérer l'intégrité transactionnelle (ce qui faisait défaut jusqu'ici aux développements B2B). Avec XAML il devient possible de gérer le two-phase commit qui permet la mise à jour contrôlée de plusieurs bases de données réparties (par exemple entre plusieurs partenaires).

La transaction XAML « attend » de recevoir l'acquittement (le commit) des différents serveurs sollicités et en cas de problème avec l'un d'eux, est en mesure de demander aux autres serveurs de « défaire » les mises à jour partielles effectuées afin de maintenir l'intégrité des données.

Exemple

Voici un exemple de code d'une petite application Windows qui affiche « Hello World! » :

<Canvas ID="root" xmlns="http://schemas.microsoft.com/2003/xaml" xmlns:def="Definition">
 <TextBlock>Hello World!</TextBlock>
</Canvas>

Comme dans le développement Web, du code permettant de gérer des évènements (clic, double-clic, entrée de texte, etc.) peut être inséré :

  • soit directement dans la page à l'aide d'un tag spécial def:Code,
  • soit dans un fichier séparé écrit dans un langage supporté par l'environnement.

Le code peut être écrit en C# ou Visual Basic .NET. Une des caractéristiques les plus appréciées du développement en XAML, présente en fait depuis l'arrivée de .NET, est justement de pouvoir séparer cette partie visible par l'utilisateur (environnement graphique) du code en lui-même. Le fichier séparé est alors appelé code-behind file.

Bibliographie

  • Benoît Prieur, WPF : développez des applications structurées (MVVM, XAML...), Éditions ENI, , 342 p. (ISBN 2-409-00853-4, OCLC 1004225149)Voir et modifier les données sur Wikidata

Voir aussi

Liens externes

  • Xaml.fr Le site français de XAML.
  • (en) MSDN : XAML Overview
  • (en) ondotnet.com : Inside XAML
  • icône décorative Portail de Microsoft
  • icône décorative Portail de la programmation informatique