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.