XAML

Le langage XAML (Application Markup Language) eXtensible est un langage XML qui est une alternative à la programmation de code pour instancier et initialiser des objets, et organiser ces objets dans des hiérarchies parent-enfant.

XAML permet aux développeurs de définir des interfaces utilisateur dans les applications .NET Multiplateforme App UI (.NET MAUI) à l’aide de balisage plutôt que de code. XAML n’est pas obligatoire dans une application .NET MAUI, mais il est recommandé de développer votre interface utilisateur, car il est souvent plus succinct, plus cohérent visuellement et a une prise en charge des outils. XAML est également adapté à une utilisation avec le modèle Model-View-ViewModel (MVVM), où XAML définit la vue liée au code viewmodel via des liaisons de données XAML.

Dans un fichier XAML, vous pouvez définir des interfaces utilisateur à l’aide de toutes les vues, dispositions et pages MAUI .NET, ainsi que des classes personnalisées. Le fichier XAML peut être compilé ou incorporé dans le package d’application. Dans les deux cas, le code XAML est analysé au moment de la génération pour localiser les objets nommés, et au moment de l’exécution, les objets représentés par le code XAML sont instanciés et initialisés.

XAML présente plusieurs avantages par rapport au code équivalent :

  • XAML est souvent plus succinct et lisible que le code équivalent.
  • La hiérarchie parent-enfant inhérente au code XML permet au code XAML d’imiter avec une plus grande clarté visuelle la hiérarchie parent-enfant des objets d’interface utilisateur.

Il existe également des inconvénients, principalement liés aux limitations intrinsèques aux langages de balisage :

  • XAML ne peut pas contenir de code. Tous les gestionnaires d’événements doivent être définis dans un fichier de code.
  • XAML ne peut pas contenir de boucles pour le traitement répétitif. Toutefois, il existe des contrôles qui affichent des collections de données, telles que ListView et CollectionView.
  • XAML ne peut pas contenir de traitement conditionnel. Toutefois, une liaison de données peut référencer un convertisseur de liaison basé sur du code qui autorise efficacement un traitement conditionnel.
  • Xaml ne peut généralement pas instancier des classes qui ne définissent pas de constructeur sans paramètre, bien que cette restriction puisse parfois être surmontée.
  • Xaml ne peut généralement pas appeler des méthodes, bien que cette restriction puisse parfois être surmontée.

Il n’existe aucun concepteur visuel pour la production de XAML dans les applications .NET MAUI. Tous les xamls doivent être écrits manuellement, mais vous pouvez utiliser le rechargement à chaud XAML pour afficher votre interface utilisateur lorsque vous la modifiez.

XAML est essentiellement XML, mais XAML a certaines fonctionnalités de syntaxe uniques. Voici les plus importants :

  • Éléments de propriété
  • Propriétés jointes
  • Extensions de balisage

Ces fonctionnalités ne sont pas des extensions XML. XAML est entièrement légal XML. Mais ces fonctionnalités de syntaxe XAML utilisent du code XML de manière unique.