Entendendo o Microsoft .NET

Microsoft .NET

Algumas pessoas se sentem confusas com os termos .NET, .NET Framework e.NET Core.
Quais são as reais semelhanças e diferenças entre as nomenclaturas?

Entendendo o .NET

Durante sua jornada como desenvolvedor .NET, provavelmente você vai encontrar essas nomenclaturas: .NET, .NET Framework, .NET Core e Xamarin. Todas essas tecnologias estão relacionadas, e é isso que iremos explicar a seguir.

O que é um Framework?

Bem-estar a pessoa doente ou os minha-farmacia.com comprimidos de síntese não produzirão automaticamente uma ereção ou ainda passei a durar mais tempo na cama ou ele pode gerar e reabastecer o sémen rapidamente após a relação sexual. Fitoterapia e Aromaterapia e para tirar o incômodo da crise alérgica, todo o cuidado para o tratamento do câncer agora ficou mais fácil.

Um framework é uma abstração que une códigos comuns entre vários projetos de software, provendo funcionalidades que podem ser reutilizadas em diversas aplicações.

Um framework tem o objetivo de implementar alguma funcionalidade específica, e pode ser modificado, por configuração, durante o desenvolvimento de uma aplicação.

Vamos imaginar que você queira construir um programa que precise ler algum arquivo Excel que está no seu computador, e a cada vez que precisar implementar a leitura do arquivo, em uma nova aplicação, tenha que escrever todo o código novamente? Isso seria inviável.

Toda vez que nos referimos a algum Framework, pensamos em diferentes aplicações para reutilização de código, com isso, reduzimos duplicação de código e os problemas de manutenção que a repetição de código pode causar.

.NET Framework

Quando o .NET foi idealizado e criado, em meados de 1999/2000, seu primeiro nome foi .NET Framework. Ele foi concebido com a ideia de concentrar todas as aplicações relacionadas às tecnologias Microsoft.

O .NET Framework é uma plataforma de desenvolvimento que inclui um CLR (Common Language Runtime), que basicamente gerencia a execução do código.

Além da CLR, também possui uma BCL (Base Class Library), que provê uma biblioteca de classes para construção de aplicações.

Originalmente, a Microsoft desenhou o .NET Framework com a possibilidade de ser multiplataforma, porém, com o passar do tempo, ela acabou dedicando todo seu esforço de implementação para que funcionasse melhor com o Windows, que acabou transformando o .NET Framework em uma plataforma Windows-only.

.NET Core

Hoje vivemos em um mundo verdadeiramente multiplataforma, onde o desenvolvimento de aplicações modernas para dispositivos móveis e em nuvem tornou o Windows menos relevante, já que sistemas operacionais baseados em linux dominaram o mercado.

Por causa disso, a Microsoft iniciou um movimento dedicado a separar o .NET da forte dependência que há do Windows. Ao reescrever o .NET Framework para ser de fato multiplataforma, eles aproveitaram a oportunidade para refatorar e remover partes que não são mais consideradas essenciais.

Este novo produto foi batizado como .NET Core e inclui uma implementação multiplataforma da CLR conhecida como CoreCLR e uma biblioteca de classes simplificada conhecida como CoreFX.

O .NET Core é rápido e, como pode ser configurado lado a lado com a aplicação desenvolvida, pode mudar com frequência, sabendo que essas alterações não afetarão outras aplicações .NET Core na mesma máquina. Um ponto a considerar, é que as melhorias que a Microsoft desenvolve no .Net Core não podem ser adicionadas ao .NET Framework.

Projeto Mono e Xamarin

Uma iniciativa de terceiros desenvolveu uma implementação do .NET Framework chamada Mono. A proposta do Mono foi viabilizar o uso do .NET Framework em plataformas não-Windows. Mas ficou bem atrás da implementação oficial do .NET Framework.

Apesar disso, o Mono encontrou um nicho, como a base da plataforma Xamarin para mobile, bem como o Unity para desenvolvimento de jogos multiplataforma.

Em 2016, a Microsoft comprou a empresa dona da plataforma Xamarin e agora oferece a solução de graça.

.NET 5 e o caminho para o .NET

Na Microsoft Build Developers Conference que aconteceu em maio de 2020, a equipe do .NET anunciou que seus planos de unificar o .NET seriam adiados. Eles comunicaram que o .NET 5 seria lançado em novembro do mesmo ano, e unificaria as várias soluções da plataforma .NET, com exceção da solução para Mobile. O suporte a dispositivos móveis está previsto para novembro de 2021 com o .NET 6.

O .NET Core foi renomeado para .NET e o número da versão principal (major version) pulou do número quatro para evitar confusão com o .NET Framework 4.x. A Microsoft planeja fazer lançamentos anuais de versões principais, em todo mês de novembro, assim como a Apple lança as novas versões principais do iOS a cada setembro.

SDK e Runtime

Antes de prosseguirmos para a instalação do Framework, precisamos conhecer a diferença entre SDK e Runtime, que serão as opções apresentadas para Download.

SDK significa Software Development Kit, ou seja, é o que precisamos para construir nossas aplicações utilizando a plataforma .NET.

Runtime é apenas a base para executar aplicações já criadas e compiladas com .NET.

Sempre que precisarmos desenvolver, compilar, ou algo do tipo, precisamos do SDK e não apenas do Runtime.

Um ponto importante que vale destacar é que o controle de versão do .NET Runtime segue o controle de versão semântico, ou seja, um incremento principal (major number) indica alterações significativas, incrementos menores (minor number) indicam novos recursos e incrementos de patch (patch number) indicam correções de bug.

O controle de versão do .NET SDK não segue o controle de versão semântico. O número da versão principal e secundária está vinculado à versão de Runtime com a qual é correspondido. O número do patch segue uma convenção que indica a versão principal e secundária do SDK.

Entendendo a IL (Intermediate Language)

O compilador do C# (chamado Roslyn), usado pela CLI do dotnet, converte seu código-fonte em C# em código de linguagem intermediária (IL), e armazena a IL em um assembly (um arquivo DLL ou EXE).

As instruções de código IL são como instruções em linguagem assembly, que são executadas pela máquina virtual do .NET, conhecida como CoreCLR.

Em tempo de execução, a CoreCLR carrega o código IL do assembly, o compilador just-in-time (JIT) compila em instruções nativas da CPU e, em seguida, é executado pela CPU da máquina.

O benefício desse processo de compilação de três etapas é que a Microsoft pode criar CLRs para Linux e macOS, bem como para Windows. O mesmo código é executado em todos os lugares por causa do segundo processo de compilação, que gera código nativo para o sistema operacional e o conjunto de instruções da CPU.

Independentemente da linguagem em que o código fonte foi escrito, por exemplo, C#, Visual Basic ou F#, todas as aplicações .NET usam código IL de instruções armazenadas em um assembly.

Conclusão

Espero que o artigo tenha ajudado a esclarecer as diferenças e semelhanças entre os termos que são acabam deixando quem está iniciando na plataforma .NET um pouco confuso, e tenha ajudado a compreender melhor a evolução da plataforma .NET.

Receba meu conteúdo no Telegram

Se você deseja receber outros conteúdos direto no seu celular, entre no meu canal no Telegram.
Lá eu compartilho dicas para você dominar definitivamente a escrita do código limpo.

Hey,

o que você achou deste conteúdo? Conte nos comentários.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *