domingo, 29 de dezembro de 2019

.NET Standard: As implementações do .NET

Olá devs e amigos! .NET Standard é onde começa as implementações. É aqui que existem os padrões e as especificações de API que devem estar dentro da implementação. Abaixo irei listar algumas das implementações mais comuns. Cada implementação tem uma finalidade, podendo ser usada para desenvolvimento de aplicativos mobile, desktop Windows ou mesmo para Linux. Sim, é possível desenvolver multiplataforma com .NET, bastando apenas escolher a implementação mais adequada para a seu projeto.


As implementações mais comuns

.NET Standard é um esforço para possibilitar cenários de desenvolvimento em que o desenvolvedor não precise se preocupar em qual SO seu código será implementado. A ideia é também fornecer bibliotecas específicas para interface do usuário para cada implementação. Abaixo segue um esquema das implementações mais comuns do .NET Standard:

.NET Standard e sua implementações


.NET Framework: Usado para criar aplicativos Windows desktop (console e gráfico) e
aplicativos web ASP.NET rodando sobre o IIS. É a biblioteca padrão da Microsoft. 
  • Não é OpenSource
  • Para Windows
Mono: foi a primeira implementação do .NET Standard para o Linux (me lembro de ter usado ela logo no início). Atualmente é uma implementação multiplataforma, usada para criar aplicativos e jogos.
  • OpenSource
  • Multiplataforma
Xamarin: Usado para criar aplicativos móveis híbridos para iOS e Android, e
também para aplicações desktop para Mac OS.
  • OpenSource
  • iOS, Android, Mac OS
.NET Core: usado para criar aplicativos modo console multiplataforma, e também
para criar aplicativos web ASP.NET Core e serviços para nuvem.
  • OpenSource
  • Windows, Linux, Mac OS
Abaixo, podemos ver a estrutura de uma implementação:

Diagrama de uma implementação .NET Standard


Veja que ela imagem acima, a Base Libraries implementam a especificação do .NET e na camada acima temos os modelos específicos de aplicativos para cada implementação. Nesta imagem fica claro a motivação de se ter uma especificação (.NET Standard) e as implementações (.NET Core, Xamarin...): criar um ecossistema em que a CLR possa ser usada de forma uniforme em todas as implementações eliminando, por exemplo, a compilação condicional, que é muito usado quando temos um software multiplataforma.

Finalizando

O proposito deste artigo é mostrar que com a plataforma .NET você pode desenvolver para vários SOs bastando apenas escolher a implementação correta. Aqui fica a resposta para dúvida sobre qual implementação devo usar se quero desenvolver para Linux, ou MacOS, por exemplo. Abaixo segue alguns links para consulta.

Fontes:

.NET Standard
https://docs.microsoft.com/enus/dotnet/standard/net-standard

.NET Standard - Desmistificando o .NET Core e o .NET Standard
https://docs.microsoft.com/pt-br/archive/msdn-magazine/2017/september/net-standard-demystifying-net-core-and-net-standard

Xamarin
https://dotnet.microsoft.com/apps/xamarin

Mono
https://www.mono-project.com/






0 comentários:

Postar um comentário