O que é o .NET MAUI ?


Neste artigo vou apresentar o .NET MAUI - .NET Multi-platform App UI.

O .NET Multi-platform App UI (.NET MAUI) é um framework multiplataforma para a criação de aplicativos móveis e desktop nativos com C# e XAML.(https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui)

Nota: Em novembro de 2021, quando eu escrevi este artigo, a documentação do .NET MAUI ainda estava sendo escrita.

Usando o .NET MAUI, você desenvolve aplicativos que podem ser executados no Android, iOS, macOS e Windows a partir de uma única base de código compartilhada.

O .NET MAUI é de código aberto, e, é a evolução do Xamarin.Forms, estendido de cenários móveis a desktops, com controles de IU reconstruídos do zero para desempenho e extensibilidade.

Se você já usou o Xamarin.Forms para construir interfaces de usuário multiplataforma, você notará muitas semelhanças com o .NET MAUI. No entanto, também existem algumas diferenças. Usando o .NET MAUI, você pode criar aplicativos multiplataforma usando um único projeto, mas pode adicionar código-fonte e recursos específicos da plataforma, se necessário. Um dos principais objetivos do .NET MAUI é permitir que você implemente o máximo possível da lógica do aplicativo e do layout da interface do usuário em uma única base de código.

O .NET MAUI é voltado para desenvolvedores que querem:

Como o .NET MAUI funciona ?

O .NET MAUI unifica Android, iOS, macOS e as APIs do Windows em uma única API que permite uma experiência de desenvolvedor "escreva uma vez, execute em qualquer lugar", enquanto fornece acesso a todos os aspectos de cada plataforma nativa.

O .NET 6 fornece uma série de frameworks específicos de plataforma para a criação de aplicativos:  .NET para Android, .NET para iOS, .NET para macOS e  uma biblioteca de IU do Windows (WinUI). Todos esses frameworks têm acesso à mesma Base Class Library  (BCL) do .NET 6, e, esta biblioteca abstrai os detalhes da plataforma subjacente de seu código.

A BCL depende do runtime .NET para fornecer o ambiente de execução para seu código. Para Android, iOS e macOS, o ambiente é implementado pelo Mono, uma implementação do runtime .NET. No Windows, o WinRT desempenha a mesma função, exceto que é otimizado para a plataforma Windows.

Enquanto a BCL permite que aplicativos executados em plataformas diferentes compartilhem lógica de negócios comum, as várias plataformas têm maneiras diferentes de definir a interface do usuário para um aplicativo e fornecem modelos variados para especificar como os elementos de uma interface do usuário se comunicam e interoperam.

Você pode criar a IU para cada plataforma separadamente usando o framework específico da plataforma apropriada (.NET para Android, .NET para iOS, .NET para macOS ou WinUI), mas essa abordagem exige que você mantenha uma base de código para cada família individual de dispositivos.

Desta forma, o  .NET MAUI fornece um framework único para construir interfaces de usuário para aplicativos móveis e de desktop. O diagrama a seguir mostra uma visão de alto nível da arquitetura de um aplicativo .NET MAUI:

Em um aplicativo .NET MAUI, você escreve código que interage principalmente com a API .NET MAUI (1).

O .NET MAUI então consome diretamente as APIs da plataforma nativa(3). Além disso, o código do aplicativo pode acessar diretamente as APIs da plataforma(2), se necessário.

Os aplicativos .NET MAUI podem ser criados no PC ou Mac e compilados em pacotes de aplicativos nativos:

O que o .NET MAU fornece ?

O .NET MAUI fornece uma coleção de controles que podem ser usados ​​para exibir dados, iniciar ações, indicar atividades, exibir coleções, selecionar dados e muito mais. Além de uma coleção de controles, o .NET MAUI também oferece:

Além disso o .NET MAUI fornece APIs multiplataforma para recursos de dispositivos nativos que incluem as seguintes funcionalidades :

Os aplicativos .NET MAUI normalmente consistem em um único projeto que pode ser direcionado ao Android, iOS, macOS e Windows. Isso oferece os seguintes benefícios:

O NET MAUI inclui suporte para .NET hot reload, que permite que você modifique seu código-fonte gerenciado enquanto o aplicativo está em execução, sem a necessidade de pausar manualmente ou atingir um ponto de interrupção. Em seguida, suas edições de código podem ser aplicadas ao aplicativo em execução sem recompilação.

.NET MAUI inclui suporte para recarregamento a quente XAML, o que permite que você salve seus arquivos XAML e veja as alterações refletidas em seu aplicativo em execução sem recompilação. Além disso, seu estado de navegação e dados serão mantidos, permitindo que você itere rapidamente em sua IU sem perder seu lugar no aplicativo.

O lançamento do .NET MAUI foi postergado para o primeiro semestre de 2022 mas você pode acompanhar o desenvolvimento e fazer o testes usando o .NET MAUI Preview 10 que foi integrado a versão preview 17.1 do Visual Studio 2022.

Se quiser conferir e acompanhar o desenvolvimento do .NET MAUI acesse : https://github.com/dotnet/maui.

"Quanto lhe for possível, não deixe de fazer o bem a quem dele precisa"
Provérbios 3:27

Referências:


José Carlos Macoratti