Xamarin.Forms Noções básicas de XAML

O XAML (eXtensible Application Markup Language) é uma linguagem baseada em XML criada pela Microsoft como uma alternativa ao código de programação para instanciar e inicializar objetos e organizar esses objetos em hierarquias pai-filho. O XAML foi adaptado a várias tecnologias dentro da estrutura .NET, mas encontrou sua maior utilidade na definição do layout das interfaces do usuário no Windows Presentation Foundation (WPF), no Silverlight, no Tempo de Execução do Windows e na Plataforma Universal do Windows (UWP).

O XAML permite que os desenvolvedores definam interfaces do usuário em Xamarin.Forms aplicativos usando marcação em vez de código. O XAML nunca é necessário em um Xamarin.Forms programa, mas geralmente é mais sucinto e visualmente mais coerente do que o código equivalente e potencialmente utilizável com ferramentas. O XAML é adequado para uso com a popular arquitetura de aplicativo MVVM (Model-View-ViewModel): o XAML define o View vinculado ao código ViewModel por meio de associações de dados baseadas em XAML.

Em um arquivo XAML, o Xamarin.Forms desenvolvedor pode definir interfaces do usuário usando todos os Xamarin.Forms modos de exibição, layouts e páginas, bem como classes personalizadas. O arquivo XAML pode ser compilado ou inserido no executável. De qualquer forma, as informações XAML são analisadas em tempo de compilação para localizar objetos nomeados e novamente em tempo de execução para instanciar e inicializar objetos e estabelecer links entre esses objetos e o código de programação.

O XAML tem várias vantagens sobre o 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 de objetos de interface do usuário.
  • O XAML pode ser facilmente escrito à mão por programadores, mas também se presta a ser manipulável e gerado por ferramentas de design visual.

Também existem desvantagens, principalmente relacionadas a limitações intrínsecas às linguagens de marcação:

  • O XAML não pode conter código. Todos os manipuladores de eventos devem ser definidos em um arquivo de código.
  • O XAML não pode conter loops para processamento repetitivo. (No entanto, vários Xamarin.Forms objetos visuais - principalmente ListView - podem gerar vários filhos com base nos objetos em sua ItemsSource coleção.)
  • O XAML não pode conter processamento condicional (no entanto, uma associação de dados pode fazer referência a um conversor de associação baseado em código que permite efetivamente algum processamento condicional.)
  • O XAML geralmente não pode instanciar classes que não definem um construtor sem parâmetros. (No entanto, às vezes há uma maneira de contornar essa restrição.)
  • O XAML geralmente não pode chamar métodos. (Novamente, essa restrição às vezes pode ser superada.)

Ainda não há um designer visual para gerar XAML em Xamarin.Forms aplicativos. Todo o XAML deve ser escrito à mão, mas você pode usar a Recarga Dinâmica XAML no Visual Studio 2019 ou no Visual Studio para Mac para exibir seus designs de tela à medida que os edita. Mesmo os desenvolvedores com muita experiência em XAML sabem que a experimentação é recompensadora.

O XAML é basicamente XML, mas o 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. Eles são discutidos em detalhes nos artigos abaixo, que concluem com uma introdução ao uso de XAML para implementar o MVVM.

Requisitos

Este artigo pressupõe uma familiaridade de trabalho com Xamarin.Formso . Este artigo também pressupõe alguma familiaridade com XML, incluindo a compreensão do uso de declarações de namespace XML e os termos elemento, marca e atributo.

Quando você estiver familiarizado com Xamarin.Forms o e XML, comece a ler a Parte 1. Introdução ao XAML.

Encontre mais vídeos sobre o Xamarin no Channel 9 e no YouTube.