Visão Geral

O Xamarin.Forms geralmente é usado para desenvolver aplicativos multiplataforma nativos. Basicamente, o Xamarin.Forms é uma camada de abstração que permite a interação do código compartilhado com o código da plataforma subjacente do Android, iOS e Windows.

Usando o Xamarin.Forms, um desenvolvedor de aplicativo móvel multiplataforma pode economizar tempo de desenvolvimento escrevendo toda a lógica de negócios em um único idioma. Quase 90% do código necessário para desenvolver um aplicativo é compartilhado entre plataformas, permitindo que você obtenha desempenho nativo e a mesma aparência em cada uma delas.

Como você sabe, a interface do usuário do aplicativo multiplataforma .NET é popularmente conhecida como .NET MAUI. Ele é usado para criar aplicativos multiplataforma nativos com .NET para Android, iOS, macOS e Windows. O .NET MAUI é construído sobre o Xamarin.Forms, evoluindo a plataforma para o próximo nível.

Com o .NET MAUI, a Microsoft inicia uma jornada para criar uma plataforma .NET unificada como uma única classe base para .NET Core e Mono/Xamarin juntos.

Como o .NET MAUI é uma evolução do Xamarin.Forms, eles têm a maioria de seus recursos em comum. É possível obter quase tudo que o Xamarin possui no .NET MAUI, como controles, layouts, Shell, gestures, templates e APIs multiplataforma para recursos de dispositivo.


Não é necessário reescrever os aplicativos Xamarin.Forms para migra-los para o .NET MAUI. No entanto, será preciso fazer algumas alterações de código em cada aplicativo. Da mesma forma, é possível utilizar os recursos de projeto único sem mesclar todos os projetos do Xamarin.Forms em um projeto. Para iniciar a migração, siga os seguintes passos:




Migrando XAML e Códigos Existentes

 O primeiro passo é trazer o XAML e o código-fonte do aplicativo existente no Xamarin.Forms. Abaixo está uma lista de todos os arquivos e pastas que foram migrados.

Seria uma boa ideia adicionar o projeto MAUI a um provedor de controle de versão e verificar regularmente as alterações ao longo da migração. 

Isso facilitará a reversão para alterações anteriores ou a execução de algumas tentativas e erros.


Usando o explorador de arquivos, arraste e solte o conteúdo necessário do projeto existente para a pasta raiz do seu novo projeto MAUI. O conteúdo ficará semelhante à figura abaixo.

Etapas Principais de Migração de Código do Xamarin.Forms



Etapas de Migração do Xamarin Community Toolkit

       



Adicionando o Pacote do SQLite

       



Adicionando o Pacote do Firebase



Migrando Arquivos de Fonte

O registro de fontes foi simplificado no Microsoft MAUI.



Migrando Imagens

O registro de fontes foi simplificado no Microsoft MAUI.


Controles Personalizados

O .NET MAUI Entry é um controle de entrada de texto, que implementa a interface IEntry. No iOS, o EntryHandler mapeia o Entry para o controle nativo UITextField. No Android, o Entry é mapeado para um AppCompatEditText, e no Windows o Entry é mapeado para um TextBox, como é mostrado na figura abaixo:


O mapeador de propriedades do Entry, na classe EntryHandler, mapeia as propriedades de controle multiplataforma para a API de visualização nativa. Isso garante que, quando uma propriedade for definida em um Entry, a exibição nativa seja atualizada conforme necessário.

void ModifyEntry()
    {
        Microsoft.Maui.Handlers.EntryHandler.Mapper.AppendToMapping("MyCustomization", (handler, view) =>
        {
#if ANDROID
            handler.PlatformView.SetBackgroundColor(Colors.Transparent.ToPlatform());
#elif IOS
            handler.PlatformView.BorderStyle = UIKit.UITextBorderStyle.None;
#elif WINDOWS
            handler.PlatformView.FontWeight = Microsoft.UI.Text.FontWeights.Thin;
#endif
        });
    }

Reutilizando um Controle Customizado do Xamarin.Forms