Quero Saber: A historia do .NET
Introdução
O .NET é um conjunto de frameworks, ou seja, um conjunto de bibliotecas que nos fornecem um alicerce para a construção de aplicações de qualquer tamanho e para diversas plataformas. Em resumo o .NET traz resolvido diversos desafios que você enfrentaria durante o desenvolvimento, agrupados em um único pacote. Dessa forma, você pode focar em escrever somente os casos específicos para a sua aplicação e delegar itens como escrita de arquivos e acesso a dados ao .NET. Então podemos dizer que escrevemos aplicações que rodam sobre o .NET, que também é comumente conhecido como: .NET Framework ou .NET Core .
O .NET é distribuído em 2 tipos de pacotes, a SDK (software development kit), que contém um runtime e outros itens para você compilar suas aplicaações e somente o runtime. Então, se você quer desenvolver uma aplicação rode em cima do .NET você vai ter que instalar o SDK, mas se quiser apenas executar uma aplicação já compilada com .NET, você vai precisar apenas do seu runtime. Tá pensando que já falamos o bastante, está totalmente enganado. Essa foi só a introdução. Esse Artigo tem muito mais informações para você.
.NET tipos de linguagem
O .NET suporta diferentes tipos de linguagem, como: C# (fala-se "cê-charpi"), F#, VB.NET e até COBOL.NET, porém é comum utilizarmos o termo Desenvolvedor .NET, que na maioria das vezes remete à linguagem C#, outro termo comum de vermos é desenvolvedor(a) ASP.NET, mas não se engane, o ASP.NET é uma tecnologia da Microsoft com foco em desenvolvimento de aplicações Web.
Então, resumindo para você não se perder, o .NET Framework é o conjunto de bibliotecas que suporta diversos tipos de linguagem de programação, o C# (C-Sharp) é uma linguagem de Programação suportada pelo .NET, e o ASP.Net é uma tecnologia da Microsoft para criação de aplicações Web. Sendo assim, você é um programador(a) C-Sharp, mas vale falar que desenvolvedor(a) .NET ou ASP.NET na entrevista de emprego.
Evolução do .NET
O .NET, surgiu em meados de 99 e 2000 idealizado, implementado e mantido pela Microsoft desde então, o que o torna um Framework vastamente utilizado e maduro. Durante seu início, tanto o C# quanto o ASPT.NET, sucessor do ASP, foram introduzidos pela Microsoft e esta começava a sua missão de levar desenvolvedores desktop para Web.
Apenas a título de curiosidade, o criador do Delphi Anders Hejlsberg, um dos principais concorrentes da Microsoft na época, foi contratado pela Microsoft anos antes desse período e acabaria criando as linguagens C Sharp (C#) e futuramente Typescript dentro da empresa. Nascia, então, a primeira versão do .NET, mas precisamente em 15/01/2002, batizado de .NET Framework 1, que causaria uma revolução no meio, diga-se no mundo, do desenvolvimento da Microsoft, que recebeu a sua primeira grande atualização, já em 2003 com o .NET Framework 1.1.
Nesse período ainda muito se especulava sobre o futuro do .NET. Em outubro de 2005, chegava sua nova e turbinada versão 2.0. Com muitas melhorias e a inclusão dos famosos "generics". É importante lembrar que nessa época, a Microsoft trabalhava como conceito de Service Pack, então era comum ver versões, como; .NET Framework 2.0 SP 2.
Em novembro de 2006 era lançado a versão 3.0 do .NET Framework, chegando com o recurso WCF para a comunicação e distribuição de serviços e o revolucionário WPF (Windows Presentation Foudation, que era uma abordagem mais moderna ao desenvolvimento tradicional com Windows Forms. Aliás, o WPF, continua até hoje com sua linguagem de marcação, o XML, e é utilizado não apenas em aplicações Windows, como também aplicações móveis com Xamarim.
Após esse período, tivemos o lançamento do .NET framework 3.5 em novembro de 2007, o 4.0 em abril de 2010 e o 4.5 em agosto de 2012. Desde então, o .NET Framework seguiu na versão 4 x, recebendo atualizações da versão 4.6, 4.7 e 4.8.
O mundo do desenvolvimento de software passou por diversas mudanças durante o período de ascensão do .NET Framework e duas características de forte mudança foram o tempo de release e o OSS (Open Source Software). Nesse período, a computação na nuvem ou cloud computing também se popularizou e a Microsoft chegou a esse mercado com a Azure, considerado atualmente o maior jogador do mercado e uma das principais fontes de renda da empresa. Para atuar no mercado de computação na nuvem, a Microsoft precisou fornecer um bom suporte para usuários de Linux, afinal, a maior parte das máquinas que rodam lá hoje são Linux. Junto a isso, para popularizar o .NET entre desenvolvedores que não estavam necessariamente no Windows, a Microsoft tinha uma árdua tarefa, fazer o .NET ser multiplataforma.
Em 2015, começaram as batalhas rumo ao mundo aberto. E como você deve imaginar migrar um Framework utilizado por milhões de sistemas, não é uma tarefa fácil, nesse ponto da história a Microsoft tomou a decisão de reescrever o .NET por completo de uma forma nova, moderna e com suporte ao Windows, Mac e Linux. Mas aí então surge o .NET Core (core que inglês significa núcleo), que deu origem a primeira versão do novo .NET, que continha apenas o essencial para alguns tipos de aplicações rodarem multiplataforma.
A Microsoft então passou a ter dois .NET, o .NET Framework que rodava apenas no Windows e o .NET Core que rodava em Windows, Mac e Linux. A diferença era que o .NET Core ainda não tinha tudo o que o .NET Framework tinha. Imagina só esperar migrar tudo o que o .NET Framework tinha para depois lançar a primeira versão do .NET Core com suporte a Mac e Linux? Ia demorar!
Enquanto o .NET Framework continuou recebendo atualizações na sua versão 4.x o .NET Core foi evoluindo, recebendo mais e mais APIs do .NET Framework a cada versão.
Só pra você ter uma noção do quão sensível as
coisas são nesse mundo de SDK e no suporte a aplicações que já usam esse
Framework, a Microsoft teve que disponibilizar uma padronização que garantia
que os componentes que você escrevia utilizando o .NET, eram compatíveis com
ambos os Frameworks, essa padronização ficou conhecida como .NET Standard,
também chamado de surface API ou API superficial. Hoje não contém
implementações, é apenas um contrato que define uma interseção entre o .NET
Framework e o .NET Core.
Recapitulando, .NET Framework é a
primeira versão do .NET, roda apenas em Windows, que vem desde meados do ano de
2000. O .NET Core é a versão lançado em paralelo ao .NET Framework em meados de
2016, que trouxe suporte ao Linux e ao Mac e o .NET Standard é uma Surface API
que garante que os componentes que você escreve utilizando .NET rodem tanto no .NET
Framework, quanto no .NET Core.
Porém o .NET Core foi recebendo
cada vez mais atualizações, chegando ao ponto de estar tão bom quanto o .NET
Framework. Este último ainda existe e recebeu atualizações em 2020, mas exceto
algumas API´s bem ligadas, O .NET Core já conseguia fazer tudo o que o .NET
Framework fazia.
Então, em novembro de 2020, nascia o .NET 5.
Isso mesmo, sem core e sem Framework no nome, marcando a unificação entre o .NET
Framework e o .NET Core. No entanto, é importante notar que, mesmo com a
unificação dos dois Frameworks, o .NET Standard ainda existe e faz parte de um
objetivo maior, além de garantir a execução dos seus componentes no .NET, ele
também garante que seus componentes rodem em outros Frameworks compatíveis com o Mono,
amplamente usado no Xamarim.
O .NET 6 é a versão mais recente do .NET até o
momento por ser um ambiente de desenvolvimento ágil, moderno, rápido e
totalmente multiplataforma. Junto ao .NET 5, a Microsoft também anunciou o seu
plano de release do Framework, ficando as versões de longo suporte ou LTS (Long Term Support) para os
anos ímpares. Então, todo ano, em novembro, tem release nova do .NET, sendo que
em anos ímpares com versões LTS. Ou seja, em 2021 tivemos o .NET 6 LTS, em 2022
teremos o .NET 7 e em 2023, o .NET 8 que será LTS e assim por diante.
Com o .NET 5 a Microsoft deu o ponta pé inicial ao que eles chamam de One.NET, uma plataforma única para você
entregar diferentes aplicações. A ideia inicial do One.NET é que você consiga
não apenas compartilhar seu código entre back-end, front-end e mobile. Mas
também, faça isso dentro de um único ecossistema. Então teremos de um futuro a
possibilidade de criar API´s, Apps web e Apps mobile cross-platform com um
único SDK. Imagina você com mesmo code base, conseguir distribuir seu App para
browsers, Windows, Mac, Linux, Android e IOS. Futuramente, novas plataformas
poderão ser adicionadas, como o Xbox, por exemplo, o que torna o .NET cada vez
mais incrível. Porém, essa transição ainda esta no início e provavelmente não
vai se concretizar no .NET 7. Prevista para novembro de 2022, já que são muitos
detalhes para serem pensados.
Junto a essa visão, um grande
passo foi dado e ele se chama MAUI (Multi Application User Interface), que é a
possibilidade de criar interfaces modernos e bonitas para qualquer plataforma
suportada pelo .NET. Dessa forma, nas próximas versões, veremos a transição do Xamarim
para o MAUI, já que hoje ele é a porta de entrada nas interfaces no mundo
Microsoft.
Em resumo, o objetivo do MAUI é que vocês escrevam uma única interface atualmente em XAML (A eXtensible Application Markup Language (XAML), uma linguagem baseada em XML que é uma alternativa ao código de programação para instanciar e inicializar objetos e organizar esses objetos em hierarquias pai-filho, e ele se encarrega de renderiza-lo no dispositivo, seja um browser, um desktop, Windows, Mac ou Linux ou mesmo no Android e IOS. O MAUI tem planos de suportar sintaxe declarativa e dispensar o uso do XML.
O .NET é um Framework robusto e maduro que nos permite criar aplicações para diferentes dispositivos e
plataformas. Guerreiro de longa data, o .NET tem uma das comunidades mais
antigas sobre o desenvolvimento de software. É realmente difícil passar por uma
situação com ele que ainda não tenha na internet. Além disso, todos esses anos
de vida permitiram ao .NET ser muito bem testado, documentado e,
principalmente, utilizado em diversos softwares. Então, se você procura um
lugar ao sol como desenvolvedor ou se quer algo maduro estável e com um bom
suporte, o .NET é a cara ideal para você.