AutoMaapper E Xamarin

Crie menos código com AutoMapper no Xamarin

Fala galera, beleza?

Vim aqui para escrever sobre um recurso, bastante interessante e muito utilizado, especialmente por mim, em projetos mobile ou não.

Estou falando de DTO (Data Transfer Object). Este “famigerado” objeto/pattern que utilizamos para deslocar nossos objetos “de um lado para o outro” e mantermos a coerência e o emprego da boa prática da orientação a objetos e respeitando os nossos domínios e outras camadas.

Quando temos domínios diferentes entre a API e a aplicação, uma coisa que fazemos muito é criar o famoso “de x para y” para poder utilizar apenas o que queremos no modelo que precisamos.

Existencialmente para .NET existem alguns componentes que facilitam o trabalho deste encapsulamento, assim digamos. Dois dos meus favoritos são o AutoMapper e o FastMapper, vamos ver?

Em comparativos o FastMapper possui uma performance superior ao AutoMapper, mas até onde escrevo este post ainda não existe versão compatível com PCL, desta forma ainda é incompatível com o Xamarin (se você descobrir uma forma, nos avise!)

Já o AutoMapper funciona! Então vamos lá!

Primeiramente inicie um projeto Xamarin Forms. Em seguida vamos configurar o mínimo de organização em nosso projeto.

Vamos criar a seguinte estrutura de pastas e arquivos

Projeto AutoMapper e Xamarin

Vejam que temos na estrutura:

– Uma pasta DTO, onde está a nossa classe PessoaDto, responsável por fazer a ponte entre nosso Model e alguma outra camada (View no nosso caso).

– Uma pasta Models, onde está a nossa classe Pessoa, responsável por representar o nosso domínio da aplicação.

– Uma pasta Pages, onde está a nossa Content Page, responsável por ser nossa View de Apresentação.

– Uma pasta ViewModels, onde está a classe PessoaViewModel, responsável por encapsular as funcionalidades pertinentes aos membros do nosso domínio através do encapsulamento dado com

PessoaDto.

– Classe Bootstrapper, responsável por encapsular as configurações do AutoMapper.

Como muito visto aqui em nosso blog, temos alguns artigos e vídeos que tratam bem de assuntos sobre Views, Models e ViewModels, então deixaremos este assunto para este post, então vamos focar no AutoMapper.

Após isto você precisa adicionar o AutoMapper no seu projeto PCL (somente nele) através da instalação de um Packge pelo Nuget, como mostrado a seguir

Instalando AutoMapper em um projeto Xamarin

Como dito anteriormente o nosso arquivo de configuração é o Bootstrapper.cs, vejamos o que temos dentro desta classe.

Isto mesmo, essencialmente temos um De-Para indicando ao AutoMapper qual classe mapeia para qual classe. No exemplo pode parecer meio confuso, pois existe um “referênciamento cíclico”. Bom isto pode ser visto de maneira um pouco ortodoxa, mas acredite existe situação para isto.

Focando exatamente na linha 10 do nosso código, podemos entender que dizemos para o AutoMapper que mapeie a classe PessoaDto, para a classe Pessoa. Importante que os membros destas classes que são objetos do De-Para, sejam idênticos em suas naturezas e nomes, como as nossas são abaixo

 

Havendo está configuração estamos a somente mais um passo de fazer nosso App funcionar perfeitamente. Precisamos agora dizer para o nosso dispositivo que inicie o AutoMapper e junto a nossa classe de configuração para isto junto ao Init do Xamarin Forms (atenção para cada uma das plataformas) iniciaremos a nossa classe Bootstrap (aqui demonstro no iOS, portanto no nosso

AppDelegate.cs)

Atenção para as linhas 16 e 17, elas levantam uma instância na nossa classe e em seguida disparam o método AutoMapperInit(), responsável por configurar o mapeamento em memória no nosso App.

A partir deste ponto podemos comprovar que dada a criação de um objeto PessoaDto, com uma simples instrução do AutoMapper podemos convertê-lo em nosso objeto Pessoa, como demonstrado abaixo

RECEBENDO O OBJETO PESSOADTO DA VIEW (CONTENT PAGE VIA BINDING)

Recebendo DTO pelo Xamarin

OBJETO TRANSFERIDO PARA PESSOA

AutoMapper convertendo DTO para Model no Xamarin

Então é isto pessoal, espero que vocês tenham curtido o post e que lhes seja útil em seus desenvolvimentos.

O Projeto se encontra no GitHub, não esqueça de curtir nossa Fanpage, deixar um comentário e avaliar o post 😀

Até a próxima!

Crie menos código com AutoMapper no Xamarin 4.78/5 (95.56%) 9 votos

Rodrigo Amaro

Desenvolvedor, apaixonado por tecnologia. Gosta de fazer um pouco de tudo, acredita que pode fazer a diferença no mundo através da tecnologia.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

%d blogueiros gostam disto: