Condividi tramite


XAML

Il linguaggio XAML (Application Markup Language) eXtensible è un linguaggio basato su XML che rappresenta un'alternativa alla programmazione del codice per la creazione di istanze e l'inizializzazione degli oggetti e l'organizzazione di tali oggetti nelle gerarchie padre-figlio.

XAML consente agli sviluppatori di definire interfacce utente nelle app .NET Multipiattaforma (.NET MAUI) usando markup anziché codice. XAML non è necessario in un'app MAUI .NET, ma è l'approccio consigliato per lo sviluppo dell'interfaccia utente perché è spesso più conciso, più coerente visivamente e include il supporto degli strumenti. XAML è adatto anche per l'uso con il modello Model-View-ViewModel (MVVM), in cui XAML definisce la visualizzazione collegata al codice del modello di visualizzazione tramite data binding basati su XAML.

All'interno di un file XAML è possibile definire interfacce utente usando tutte le visualizzazioni, i layout e le pagine MAUI .NET, nonché classi personalizzate. Il file XAML può essere compilato o incorporato nel pacchetto dell'app. In entrambi i casi, il codice XAML viene analizzato in fase di compilazione per individuare gli oggetti denominati e in fase di esecuzione gli oggetti rappresentati dal codice XAML vengono create e inizializzate.

XAML offre diversi vantaggi rispetto al codice equivalente:

  • XAML è spesso più conciso e leggibile rispetto al codice equivalente.
  • La gerarchia padre-figlio intrinseca in XML consente a XAML di simulare con maggiore chiarezza visiva la gerarchia padre-figlio di oggetti dell'interfaccia utente.

Esistono anche svantaggi, principalmente correlati alle limitazioni intrinseche dei linguaggi di markup:

  • XAML non può contenere codice. Tutti i gestori eventi devono essere definiti in un file di codice.
  • XAML non può contenere cicli per l'elaborazione ripetitiva. Esistono tuttavia controlli che visualizzano raccolte di dati, ad esempio ListView e CollectionView.
  • XAML non può contenere l'elaborazione condizionale. Tuttavia, un data binding può fare riferimento a un convertitore di binding basato su codice che consente in modo efficace un'elaborazione condizionale.
  • XAML in genere non può creare istanze di classi che non definiscono un costruttore senza parametri, anche se questa restrizione può talvolta essere superata.
  • XAML in genere non può chiamare metodi, anche se questa restrizione può talvolta essere superata.

Non esiste alcuna finestra di progettazione visiva per la produzione di CODICE XAML nelle app MAUI .NET. Tutto il codice XAML deve essere scritto a mano, ma puoi usare il ricaricamento rapido XAML per visualizzare l'interfaccia utente durante la modifica.

XAML è fondamentalmente XML, ma XAML include alcune funzionalità di sintassi univoche. Le più importanti sono le seguenti:

  • Elementi della proprietà
  • Proprietà associate
  • Estensioni di markup

Queste funzionalità non sono estensioni XML. XAML è completamente xml legale. Tuttavia, queste funzionalità della sintassi XAML usano XML in modi univoci.