BT

Uma prévia do Avalonia: a ferramenta de UI cross-platform para .Net

| por Jonathan Allen Seguir 553 Seguidores , traduzido por Eduardo Kuwakino Seguir 1 Seguidores em 13 abr 2018. Tempo estimado de leitura: 2 minutos |

A falta de uma ferramenta UI cross-platform é uma lacuna geralmente citada no ecossistema do .Net Core. Mesmo com tentativas no passado como o Silverlight e o Xamarin Forms, nenhum projeto conseguiu se tornar uma opção cross-platform completa baseda em XAML. O Avalonia tenta ocupar este espaço com planos de suportar Windows, Linus (GTK), MacOS, Android e iOS.

Embora a principal inspiração seja o Windows Presentation Foundation (WPF), essa não é uma parte direta dele. Algumas mudanças chaves estão sendo feitas no design, por exemplo, como os estilos funcionam. No Avalonia, estilos são mais como CSS, com classes de estilo e seletores permitindo cascata e sobreposição. Um contraste com o funcionamento de estilos no WPF que só permite um estilo único por controle. Com isso o Avalonia pode reduzir a necessidade de duplicar estilos.

Ao invés de gatilhos, o Avalonia usa pseudo-classes como o ":pointerover" para o efeito hover. Outras pseudo-classes incluem: :focus, :disabled, :pressed para botões, :checked para checkboxes, etc.

Os estilos do Avalonia podem ser ligados a uma StyledProperty. Isso é análogo à DependencyProperty do WPF, com o mesmo padrão básico. Propriedades anexas (attached) também são suportadas. Essas propriedades são úteis com controles de layout como, por exemplo, uma grid necessitando saber onde seus filhos devem ser posicionados

Uma funcionalidade interessante da sintaxe de data binding do Avalonia é o suporte a operações assíncronas. Por exemplo, o Avalonia pode ligar os resultados de uma Task<T> ou uma operação IObservable<T>, o que não é suportado em outras ferramentas de UI baseadas em XAML.

Enquanto muito progresso está sendo feito, apenas três desenvolvedores estão fazendo a maior parte do trabalho e por isso estão chamando a comunidade open source para participar como puder. De acordo com Jeremy Koritzinsky, as áreas que mais necessitam ajuda são:

Documentação

Na maioria documentação conceitual, tutoriais e guias how-to.

Demo Apps

Construir tutorials como os do WPF em Avalonia destacando as diferenças entre eles.

Especialistas XAML

Nos ajudar com construções XAML mais avançadas, como os layouts condicionais e adaptativos (da mesma forma como o Xamarin.Forms e seu layout adaptativo).

Controles comuns faltantes

DataGrid: sabemos que precisamos, mas é uma tonelada de código que não temos tempo de portar agora (toda implementação WPF ou UWP se aproximam da LOC assim como todo o Avalonia).

Especialistas em Gráficos 2D

Especificamente para layout de texto e renderização apropriada em nosso subsistemas de renderização sem DirectX. Usamos o Skia em plataforma diferentes do Windows. Estas plataformas precisam de uma engine para layout de texto.

Extensão para o Visual Studio

Atualizar nossa extensão para nosso novo design, com intellisense XAML.

O Avalonia está sendo desenvolvido no GitHub sob a licença MIT.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT