Tag Archives: core

#01 – Xamarin.Forms – Apresenta – .Net Lib Standard

Chapter : 1

Saga MM {Modo Mobile}

Aprenda um pouco sobre uma nova estratégia de compartilhamento de código, o modo de desenvolvimento .NET Standard.

Conheça agora a .NET Standard um conjunto de APIs que todas as plataformas .NET devem implementar. Vamos lá:

Definição

.NET Standard

Um conjunto de “API padrão” em vez de uma plataforma. Ou seja, “não pensado” nas plataformas, e sim no padrão (1.3, 1.6, …), resultando em código “funcionando” nas plataformas que os suportam.

Disponível nativamente no VStudio(15.5).

PCL

Libs que visam um conjunto de plataformas (carregam “conjunto comum reduzido de APIs” destas plataformas), resultando, desenvolvimento PCL tendo como alvo as plataformas X, Y, Z, etc.

.NET Core

Ambiente de runtime baseado na plataforma .NET, tendo em conformidade a definição da API .NET Standard.

Não confundir o .NET Core com outra versão do framework .NET.

A estratégia .NET Standard

A Standard é uma especificação formal das APIs .NET projetadas para estarem disponíveis para todos os runtimes .NET. Esta nova estratégia visa estabelecer maior uniformidade para o ecossistema .NET.

O ECMA 335 continua estabelecendo uniformidade para o comportamento de tempo de execução do .NET, mas não há especificações semelhantes para as bibliotecas de classe base .NET (BCL) para as implementações da biblioteca .NET.

Esta estratégia deve ser pensada como uma biblioteca única com uma API uniforme para todas as plataformas .NET. Resultando em, criação de uma biblioteca única e utilização em qualquer runtime suporte .NET Standard Plataform.

Em resumo, agora é possível desenvolver com strategy .NET Standard, ampliando as opções de desenvolvimento do ambiente Forms.

Uma .Net Core(biblioteca de classes) tem como base o .Net Standard. Para implementar uma lib portátil no .Net FW, .Net Core e Xamarin, vá de lib .Net Standard.

Dessa forma, .Net Core, .NET FW e o Xamarin agora implementam o .Net Standard (versão 2.0). Podendo, portanto, serem conhecidos como sabores do .Net Standard.

Antes tínhamos este cenário bastante fragmentado:

fw_standard

.NET Standard

xam_basico_netstandard3

A implementação da lib Standard permite compartilhar código entre os diferentes sabores .NET.

A .NET Standard é um conjunto de APIs que todas as plataformas .NET devem implementar. Isso une as plataformas .NET e evita a fragmentação futura.

Esta nova estratégia resolve o problema de compartilhamento de código para desenvolvedores .NET em todas as plataformas trazendo todas as APIs em todos os ambientes que precisamos: apps, desktop, serviços em nuvem.

Stantard 2.0

Implementada pelo .NET FW, .NET Core e Xamarin. Para o Core, isso acrescenta muitas das APIs existentes que foram solicitadas.

Inclui um limite de compatibilidade para os binários do .NETFW, aumentando o conjunto de libs com as quais podemos fazer referência em nossas libs .NET Standard.

Lembre-se: quanto maior a versão Standard mais APIs ficam disponíveis, e quanto menor a versão mais plataformas são atingidas.

Criação de projeto Forms

Existiam duas opções de compartilhamento de código entre plataformas:

  • Shared Project
  • Portable Class Library (PCL)

xam_basico_netstandard

Agora no Visual Studio (15.5) a opção (PCL) foi substituída por .NET Standard:

xam_basico_netstandard2

Qual o Alvo?

Outro bônus é que agora podemos definir as plataformas(alvo) do projeto.

Package Reference

Agora todos os novos templates de projetos multiplataforma utilizam o PackageReference, um novo modo de gerenciar pacotes NuGet direto no .csproj. Ou seja, agora só precisamos definir NuGets de nível superior que o app irá consumir e não precisamos mais lidar com as dependências que nosso pacotes fazem referência.

<ItemGroup>

<PackageReference Include = “Xamarin.Forms” Version = “2.4.0.282” />

</ ItemGroup>

Para gerenciar pacotes, podemos continuar recorrendo o NuGet Package Manager ou editando diretamente o .csproj para adicionar.

Mais detalhes

Next stop Hello World Forms. Disambarke on the left.

Ok! Um pouco sobre Standard Library.

Missão cumprida!