XAML

A Linguagem de Marcação de Aplicações Extensíveis (XAML) é uma linguagem baseada em XML que é uma alternativa à programação de código para instanciar e inicializar objetos, e organizar esses objetos em hierarquias pai-filho.

O XAML permite aos programadores definir interfaces de utilizador em aplicações .NET Multi-platform App UI (.NET MAUI) usando marcação em vez de código. XAML não é obrigatório numa aplicação .NET MAUI, mas é a abordagem recomendada para desenvolver a sua interface porque é frequentemente mais sucinta, visualmente mais coerente e tem suporte para ferramentas. O XAML é também muito adequado para uso com o padrão Model-View-ViewModel (MVVM), onde o XAML define a vista ligada ao código do viewmodel através de ligações de dados baseadas em XAML.

Dentro de um ficheiro XAML, pode definir interfaces de utilizador usando todas as vistas, layouts e páginas do .NET MAUI, bem como classes personalizadas. O ficheiro XAML pode ser compilado ou incorporado no pacote da aplicação. 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 é frequentemente 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 de utilizador.

Existem também desvantagens, principalmente relacionadas com limitações intrínsecas às linguagens de marcação:

  • O XAML não pode conter código. Todos os gestores de eventos devem estar definidos num ficheiro de código.
  • O XAML não pode conter ciclos para processamento repetitivo. No entanto, existem controlos que exibem coleções de dados, como ListView e CollectionView.
  • O XAML não pode conter processamento condicional. No entanto, uma ligação de dados pode referenciar um conversor de ligação baseado em código que permite efetivamente algum processamento condicional.
  • O XAML geralmente não pode instanciar classes que não definam um construtor sem parâmetros, embora esta restrição possa por vezes ser ultrapassada.
  • O XAML geralmente não pode chamar métodos, embora esta restrição possa por vezes ser ultrapassada.

Não existe um designer visual para produzir XAML em aplicações MAUI .NET. Todo o XAML tem de ser escrito à mão, mas podes usar o recarregamento a quente do XAML para visualizar a interface enquanto a editas.

O XAML é basicamente XML, mas o XAML tem algumas características de sintaxe únicas. As mais importantes são:

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

Estas funcionalidades não são extensões XML. XAML é totalmente legal. Mas estas funcionalidades da sintaxe XAML usam XML de formas únicas.