XAML

A linguagem XAML (eXtensible Application Markup Language) é uma linguagem baseada em XML que é uma alternativa ao código de programação para instanciar e inicializar objetos e organizar esses objetos em hierarquias pai-filho.

O XAML permite que os desenvolvedores definam interfaces de usuário em aplicativos .NET Multi-platform App UI (.NET MAUI) usando marcação em vez de código. O XAML não é necessário em um aplicativo .NET MAUI, mas é a abordagem recomendada para desenvolver sua interface do usuário porque geralmente é mais sucinto, mais coerente visualmente e tem suporte a ferramentas. O XAML também é adequado para uso com o padrão MVVM (Model-View-ViewModel), em que o XAML define a exibição vinculada ao código viewmodel por meio de associações de dados baseadas em XAML.

Em um arquivo XAML, você pode definir interfaces de usuário usando todos os modos de exibição, layouts e páginas do .NET MAUI, bem como classes personalizadas. O arquivo XAML pode ser compilado ou incorporado no pacote do aplicativo. De qualquer forma, o XAML é analisado em tempo de compilação para localizar objetos nomeados e, em tempo de execução, os objetos representados pelo XAML são instanciados e inicializados.

O XAML tem várias vantagens em relação ao código equivalente:

  • O XAML geralmente é mais sucinto e legível do que o código equivalente.
  • A hierarquia pai-filho inerente ao XML permite que o XAML imite com maior clareza visual a hierarquia pai-filho dos objetos da interface do usuário.

Há também desvantagens, principalmente relacionadas a limitações que são intrínsecas às linguagens de marcação:

  • XAML não pode conter código. Todos os manipuladores de eventos devem ser definidos em um arquivo de código.
  • XAML não pode conter loops para processamento repetitivo. No entanto, há controles que exibem coleções de dados, como ListView e CollectionView.
  • XAML não pode conter processamento condicional. No entanto, uma vinculação de dados pode fazer referência a um conversor de vinculação baseado em código que efetivamente permite algum processamento condicional.
  • O XAML geralmente não pode instanciar classes que não definem um construtor sem parâmetros, embora essa restrição às vezes possa ser superada.
  • O XAML geralmente não pode chamar métodos, embora essa restrição às vezes possa ser superada.

Não há nenhum designer visual para produzir XAML em aplicativos .NET MAUI. Todos os XAML devem ser escritos à mão, mas você pode usar o hot reload de XAML para exibir sua interface do usuário enquanto a edita.

XAML é basicamente XML, mas XAML tem alguns recursos de sintaxe exclusivos. O mais importante é:

  • Elementos de propriedade
  • Propriedades anexadas
  • Extensões de marcação

Esses recursos não são extensões XML. XAML é XML totalmente legal. Mas esses recursos de sintaxe XAML usam XML de maneiras exclusivas.