C# Desenvolvimento Vídeo aulas Xamarin

Xamarin Forms – Diferença entre .NET Standard e Shared Projects

xamarin Modulo 1

O post Xamarin Forms – Diferença entre .NET Standard e Shared Projects aborda os diferentes métodos de compartilhamento de código entre projetos criados utilizando o Xamarin Forms e demonstra os benefícios e desvantagens de cada um desses métodos.

Xamarin Forms – Diferença entre .NET Standard e Shared Projects

Existem dois métodos que podem ser utilizados na hora de se criar uma solução mobile (cross platform) utilizando o Xamarin Forms: .NET Standard Libraries e Shared Projects.

Shared Projects

Basicamente ao criarmos uma solução Shared, toda a lógica de negócio e interface deve ser implementadas no projeto shared (compartilhado), isto é, você praticamente programa apenas no projeto shared.

A grande vantagem de um projeto Shared é a centralização de códigos específicos de cada plataforma no próprio projeto Shared. A separação dos códigos em cada plataforma deve ser feita através de diretivas de compilação como por exemplo:

#if __ANDROID__
// codigo que roda só no android
#endif
#if __IOS__
// codigo que roda só no ios
#endif

Um grande problema é que você só consegue ver erros no código do Android se compilar o projeto para Android. A mesma coisa acontece para as outras plataformas.

Outra característica de um projeto Shared é que ele não gera uma biblioteca. Todo o código Shared é acoplado no executável de cada plataforma.

Benefícios

  • Permite que você compartilhe código entre vários projetos.
  • Código compartilhado pode ser ramificado com base na plataforma usando diretivas de compilador (por exemplo. usando o #if __ANDROID__ , conforme discutido em de criando aplicativos de plataforma cruzada documento).
  • Projetos de aplicativos podem incluir referências específicas da plataforma que o código compartilhado pode utilizar (como o uso de Community.CsharpSqlite.WP7 na amostra Tasky para Windows Phone).

Standard Libraries

Ao utilizarmos o Standard Libraries não é necessário inserir diretivas do compilador para alternar o código, você implementa diretamente nos projetos de cada plataforma, o que for específico das mesmas e referência essa implementação no projeto shared. Vou dar um exemplo utilizando o projeto Wallpaper que criei utilizando o modo Standard Libraries.

O projeto Wallpaper é um aplicativo que troca o papel de parede do celular com base na imagem selecionada pelo usuário. Para que a ação de trocar o papel de parede funciona-se foi necessário implementar nas plataformas as ações relacionadas a alterar o papel de parede do celular e efetuar no projeto shared a chamada dessas ações por meio de uma interface.

Benefícios

  • Permite que você compartilhe código entre vários projetos.
  • Operações de refatoração sempre atualizam referências de todos os afetados.
  • Uma área de superfície maior do .NET Base classe Library (BCL) está disponível que os perfis PCL.

Para conhecer mais sobre o assunto acesse: Visão geral do código do compartilhamento

Acesse nosso canal no YouTube para visualizar outros vídeos sobre programação, como por exemplo Python, Java e Desenvolvimento de sistemas comerciais utilizando a linguagem C#. Participe do nosso grupo de estudos no Facebook acessando o link.

Danilo Filitto

Sou Mestre em Ciência da Computação pela Universidade Estadual de Maringá – UEM, Pós-Graduado em Redes de Computadores e Comunicação de Dados pela Universidade do Estado do Paraná – UEL, Bacharel em Ciência da Computação pela Universidade do Oeste Paulista – UNOESTE.
Atuo na área acadêmica como professor desde 2006. Além de professor sou desenvolvedor de jogos, palestrante e mantenedor dos sites dfilitto e Make Indie Games.

Assinar Blog por Email

Digite seu endereço de email para assinar este blog e receber notificações de novas publicações por email.

Junte-se a 831 outros assinantes







Você gosta de jogar?