Entendendo as versões do .NET: .NET Core, .NET Standard, .NET Framework e muito mais.
Navegar pelo ecossistema .NET pode ser confuso com termos como .NET, .NET SDK, .NET Core, .NET Standard e .NET Framework. Cada um deles desempenha um papel único no ambiente de desenvolvimento C# usando o Visual Studio 2022, e entender suas diferenças é crucial para escolher a estrutura de destino correta para o seu projeto.
Este artigo, baseado no vídeo de Tim Corey sobre " Versões do .NET explicadas - .NET, .NET Core, .NET Standard, .NET Framework e mais ", tem como objetivo simplificar esses termos e fornecer orientações claras sobre qual usar e quando.
Por que o .NET Core precisava existir?
O .NET Framework, frequentemente referido simplesmente como .NET, tem sido um elemento fundamental no desenvolvimento de software e em ambientes de execução para desktop por mais de duas décadas. No entanto, suas limitações tornaram necessária a criação do .NET Core. Tim Corey destaca vários motivos importantes:
-
Correções e soluções alternativas : Ao longo do tempo, o .NET Framework acumulou inúmeras correções e soluções alternativas, o que o tornou significativamente mais lento (1:35).
-
Dependência do Windows : O .NET Framework está profundamente integrado ao Windows, o que dificulta seu uso em outras plataformas. Essa dependência dificultou o desenvolvimento multiplataforma (2:03).
-
Design monolítico : O .NET Framework foi projetado para incluir tudo em um único pacote, o que, embora conveniente, resultou em um sistema inchado e menos eficiente (2:25).
- Concepção desatualizada : Desenvolvido há mais de 20 anos, o .NET Framework não foi projetado com o uso moderno da internet e de dispositivos móveis em mente (3:20).
A estrutura das aplicações .NET
Para entender os benefícios do .NET Core, é importante compreender como uma aplicação .NET é estruturada.

Como explica Tim Corey:
-
Código-fonte C# : Seu código C# é primeiro compilado em código de Linguagem Intermediária (IL) (5:49).
- Common Language Runtime (CLR) : O código IL é então executado pelo CLR. O .NET Framework e o .NET Core têm CLRs diferentes, mas processam o código IL de forma semelhante, permitindo que grande parte do seu código-fonte permaneça igual em ambas as plataformas (6:42).
Vantagens do .NET Core em relação ao .NET Framework
O .NET Core Runtime é uma estrutura de desenvolvimento criada para solucionar as deficiências do .NET Framework. Tim Corey destaca seus principais benefícios:
-
Compatibilidade entre plataformas : Ao contrário do .NET Framework, o .NET Core foi projetado para ser executado em várias plataformas, incluindo Windows, Mac, Linux, Android, iOS, Xbox, IoT e muito mais.
-
Desempenho : O .NET Core oferece melhorias significativas de desempenho. Ele elimina as correções legadas e oferece suporte às práticas modernas de hardware e software, tornando-o mais rápido que o .NET Framework.
-
Modularidade : O .NET Core é modular, permitindo que os desenvolvedores incluam apenas os componentes necessários, reduzindo a sobrecarga e melhorando a eficiência.
-
Recursos modernos : O .NET Core vem com recursos modernos prontos para uso, como injeção de dependência e registro de logs integrados, que promovem as melhores práticas de desenvolvimento.
-
Código aberto : O .NET Core é de código aberto, incentivando contribuições da comunidade e transparência no desenvolvimento.
-
Em conformidade com os padrões da indústria : O .NET Core segue os padrões da indústria, garantindo compatibilidade e integração com tecnologias modernas, diferentemente do .NET Framework, que é limitado a ambientes Windows.
- Fácil de atualizar : A atualização do .NET Core geralmente é simples, muitas vezes exigindo apenas alterações nos números de versão e atualização dos pacotes NuGet . A parte do processo de atualização da Microsoft foi simplificada, com menos alterações que causam incompatibilidade em comparação com o .NET Framework, que historicamente envolvia atualizações mais complexas e problemáticas.
.NET Standard
Tim explica que o .NET Standard é uma especificação que define um conjunto de APIs que todas as plataformas .NET devem implementar e não é apenas um ambiente de execução. Ele fornece uma API uniforme que garante a compatibilidade do código entre diferentes implementações do .NET . Isso significa que você pode escrever bibliotecas que funcionam tanto no .NET Core quanto no .NET Framework. Aos 33:35, Tim discute todas as versões do .NET Standard até a versão mais recente. O resumo é apresentado abaixo na captura de tela:

Análise detalhada das versões do .NET
Linha do tempo do .NET Framework
O .NET Framework existe desde o início dos anos 2000 e está intimamente integrado ao Windows. É adequado para criar aplicativos para desktop e web do Windows, mas é limitado em termos de recursos multiplataforma.
.NET Framework 1.0 (janeiro de 2002)
Tim Corey descreve o lançamento inicial do .NET Framework 1.0 como revolucionário, introduzindo o conceito de uma linguagem intermediária comum que permitia que várias linguagens de programação trabalhassem juntas (40:07). Essa versão fundamental preparou o terreno para o desenvolvimento futuro, oferecendo uma plataforma unificada para várias linguagens.
.NET Framework 2.0 (outubro de 2005)
Lançado três anos depois, o .NET Framework 2.0 trouxe melhorias significativas e novos recursos, continuando o crescimento da plataforma (41:40). Esta versão destacou-se pelas suas funcionalidades linguísticas melhoradas e pelo suporte a uma gama mais ampla de aplicações.
Principais atualizações:
-
Novembro de 2006 : O .NET Framework 3.0 foi introduzido (41:43).
-
Novembro de 2007 : O .NET Framework 3.5, um marco significativo, foi lançado (41:49).
-
Abril de 2010 : O .NET Framework 4.0, a última versão principal, foi lançado (42:13).
-
Agosto de 2012 : O .NET Framework 4.5 foi lançado (42:50).
- Abril de 2019 : O .NET Framework 4.8, a versão secundária final, foi lançado (47:17).
Versões do .NET Core
.NET Core 1.0 (junho de 2016)
Tim Corey se refere ao .NET Core 1.0 como uma prova de conceito com funcionalidade limitada, destinada a demonstrar o potencial do .NET Core (43:32). Essa versão inicial lançou as bases, mas não foi amplamente adotada devido às suas funcionalidades limitadas.
.NET Core 2.0 (agosto de 2017)
Lançado como uma atualização mais rica em recursos, o .NET Core 2.0 incluiu avanços importantes, particularmente no desenvolvimento de aplicativos da web (45:23). No entanto, não era uma versão LTS, e Tim destaca que ela continha alterações incompatíveis que levaram ao lançamento posterior de uma versão mais estável.
.NET Core 2.1 (maio de 2018)
O .NET Core 2.1 era uma versão LTS (Suporte de Longo Prazo), que Tim destaca como crucial para empresas que precisam de estabilidade e suporte prolongado (45:42). Foi uma atualização significativa que tornou o .NET Core mais adequado para uso em produção.
.NET Core 3.0 (setembro de 2019)
O .NET Core 3.0 introduziu suporte para aplicações de desktop, incluindo WinForms e WPF, expandindo seu uso além de aplicações web (53:04). Esta versão tornou o .NET Core uma plataforma mais abrangente, atraindo empresas para migrar do .NET Framework.
.NET Core 3.1 (dezembro de 2019)
Baseado no 3.0, o .NET Core 3.1 foi outra versão LTS, fornecendo suporte contínuo e estabilidade para aplicativos de desktop e web (53:16). Tim explica que esta versão marcou um ponto em que o .NET Core passou a ser considerado completo em termos de funcionalidades e confiável para uso empresarial.
.NET 5 e além
.NET 5.0 (novembro de 2020)
Com o lançamento do .NET 5, a Microsoft removeu o "Core" do nome para simplificar a marca (58:03). Tim explica que essa mudança teve como objetivo reduzir a confusão entre o .NET Framework e o .NET Core. O .NET 5 representou um passo importante na unificação do ecossistema .NET sob um único nome.
.NET 6.0 (novembro de 2021)
O .NET 6 continuou o ciclo de lançamento anual introduzido com o .NET 5 (59:56). Tim observa que cada nova versão, incluindo o .NET 6, faz parte de um ritmo de atualização anual, permitindo melhorias regulares e a adição de recursos.
.NET 7.0 (novembro de 2022)
O .NET 7 seguiu o padrão de lançamento anual, aprimorando ainda mais a plataforma com pequenas atualizações e melhorias (59:56). Tim discute em detalhes como esta versão, juntamente com suas antecessoras, reflete o compromisso da Microsoft com o desenvolvimento contínuo e a inovação no ecossistema .NET .

Entendendo as versões do .NET e o ciclo de vida de suporte
Tim Corey fornece uma explicação detalhada das versões do .NET e seu ciclo de vida de suporte em (1:01:27). Segue um resumo dos principais pontos discutidos:
Ciclo de vida do suporte: STS vs. LTS
Tim Corey explica a diferença entre dois tipos de janelas de suporte: Suporte de Prazo Padrão (STS) e Suporte de Longo Prazo (LTS) .
-
STS (Standard Term Support) : Oferece um período de suporte de 18 meses. Por exemplo, o .NET 5, lançado em novembro de 2020, teve suporte até maio de 2022. O .NET 7, lançado em novembro de 2022, tem um período de suporte semelhante, de 18 meses, que termina em maio de 2024.
- LTS (Suporte de Longo Prazo) : Oferece um período de suporte mais longo, de 3 anos. O .NET 6, lançado em novembro de 2021, tem suporte até novembro de 2024. O .NET 8, com lançamento previsto para novembro de 2023, será a próxima versão LTS, oferecendo suporte até novembro de 2026.
Tim destaca que, embora os desenvolvedores de aplicativos que trabalham em ritmo acelerado possam preferir as versões STS para acessar os recursos mais recentes, as empresas geralmente priorizam as versões LTS devido à sua estabilidade e suporte prolongado.
Caminho de atualização e versões lançadas
Tim Corey descreve o caminho de atualização para versões do .NET :
-
Da transição do .NET 5 para o .NET 6 : Há um ano de sobreposição em que ambas as versões são suportadas.
-
Da versão .NET 6 para a .NET 8 : Você terá um ano inteiro para atualizar do .NET 6 para o .NET 8 antes do fim do suporte ao .NET 6.
- Atualizações futuras : Seguindo esse padrão, o .NET 8 (atualmente a versão mais recente) terá suporte até o lançamento do .NET 10, dando a você tempo suficiente para atualizar.
Tim enfatiza que esse ciclo de lançamento previsível permite que as empresas planejem suas atualizações com confiança.

Estratégia de suporte da Microsoft
Tim discute a abordagem da Microsoft em relação ao suporte e desenvolvimento:
-
Custo e complexidade : Estender o suporte para versões mais antigas pode ser caro e complexo devido à necessidade de manter atualizações de segurança em várias versões. É por isso que a Microsoft adotou uma estratégia de suporte mais previsível e gerenciável.
- Framework Modular : O .NET Core e a abordagem modular do .NET permitem atualizações rápidas de recursos e um ciclo de suporte mais gerenciável.
Escolhendo entre .NET Framework e .NET Core
Tim Corey dá conselhos sobre quando usar diferentes versões do .NET :
-
.NET Framework : Utilize-o para projetos existentes ou para dar suporte a sistemas operacionais mais antigos, como o Windows XP.
- .NET Core (agora .NET) : Para novos projetos, comece com a versão mais recente do .NET. A atualização de versões antigas do .NET Framework para o .NET pode oferecer melhorias significativas de desempenho.
ASP.NET vs. ASP.NET Core
Tim explica as diferenças entre ASP.NET e ASP.NET Core:
-
ASP.NET : Construído sobre o .NET Framework e compatível com Web Forms, MVC e Web API. O Web Forms, em particular, não está incluído no ASP.NET Core.
- ASP.NET Core : Uma estrutura modular para criar aplicações web em .NET Core. Inclui Razor Pages, MVC, API, Blazor Server e Blazor WebAssembly. O ASP.NET Core foi projetado para ser mais flexível e moderno em comparação com seu antecessor.
Tim, em 1:21:00, esclarece que o ASP.NET Core continua a dar suporte ao desenvolvimento web com novos recursos e maior modularidade, enquanto o ASP.NET (Framework) é mais tradicional e limitado a versões mais antigas do .NET .
Conclusão
Tim Corey oferece um guia claro e perspicaz para navegar no ecossistema .NET , desde o contexto histórico do .NET Framework até os recursos modernos do .NET Core e além. Seu vídeo explica a evolução das versões do .NET , a necessidade do .NET Core e os benefícios da modularidade e da compatibilidade entre plataformas. Seja para escolher entre o .NET Framework e o .NET Core ou para entender o ciclo de suporte das diversas versões do .NET , as explicações de Tim oferecem um roteiro valioso para tomar decisões de desenvolvimento bem fundamentadas.
Para discussões mais aprofundadas e exemplos práticos de programação, não deixe de visitar o canal do Tim Corey no YouTube, IAmTimCorey .

