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:
NET - Apresentando o padrão Model-View-ViewModel
Xamarin Forms - MVVM - Macoratti.net
NET - O padrão MVVM (Model-View-ViewModel) revisitado
Xamarin Forms - MVVM - A interface ICommand
Padrão de Projeto - Aprendendo o padrão MVVM ...