Inicialmente desenvolvido como uma resposta da Microsoft ao Java, a plataforma .NET evoluiu para um ecossistema completo usado por milhões de desenvolvedores no mundo todo. Este artigo apresenta uma visão geral do .NET, incluindo seus principais componentes e como ele funciona internamente, bem como as linguagens que você pode usar com o .NET e os tipos de aplicativos que você pode desenvolver com ele. Há também um breve histórico do .NET e informações sobre a versão mais atual no momento em que este artigo foi escrito.
O que é .NET?
.NET (pronuncia-se "dot net" e às vezes escrito como .Net) é uma plataforma de desenvolvimento de código aberto que consiste em uma estrutura de desenvolvimento de software e um ecossistema de ferramentas, linguagens e tempos de execução. Foi criado pela Microsoft para facilitar o desenvolvimento de aplicativos em plataformas que variam de desktops a dispositivos móveis. Embora o .NET tenha sido originalmente restrito ao sistema operacional e às plataformas Windows proprietários da Microsoft, os aplicativos .NET agora podem ser escritos para a web, macOS, iOS, Android, Linux e muito mais. O .NET também é um padrão formal e está oficialmente disponível como código aberto.
A Microsoft descreve o .NET como "um ambiente de programação consistente orientado a objetos, seja o código do objeto armazenado e executado localmente, executado localmente, mas distribuído pela Internet, ou executado remotamente". A plataforma .NET visa fornecer execução segura de código, entregar melhor desempenho do que as linguagens interpretadas e tornar a experiência do desenvolvedor consistente em uma ampla variedade de aplicativos.
Por que os desenvolvedores usam .NET?
Antes de mergulharmos em como o .NET funciona, é importante saber por que você pode querer usá-lo. A resposta curta é que o .NET fornece uma maneira para desenvolvedores familiarizados com linguagens como C++, Java ou JavaScript escreverem código em escala empresarial que seja portátil entre plataformas. Como é verdade para muitas plataformas de aplicativos modernas, bibliotecas de classes incorporadas à plataforma cuidam do trabalho pesado, como gerenciamento de memória, E/S e até mesmo grande parte da interface do usuário.
Para desenvolvedores corporativos e organizações já investidas no ecossistema da Microsoft, particularmente seus IDEs Visual Studio e Visual Studio Code, o .NET é uma escolha lógica. Ele também tem bibliotecas e modelos de aplicativos personalizados para Windows, Azure e ASP. No final das contas, porém, o .NET é multiplataforma e suporta muitas linguagens e sistemas operacionais. Para desenvolvedores acostumados com JavaScript ou outros ambientes de linguagem de script, o .NET pode parecer menos ágil do que o que você está acostumado. Desenvolvedores corporativos são mais propensos a apreciar as vantagens de uma plataforma completa.
Os três principais componentes do .NET
O .NET existe há mais de 20 anos e evoluiu consideravelmente desde seu lançamento inicial em 2002. Hoje, a plataforma consiste em três componentes principais:
-
A biblioteca de classes base .NET empacota classes e tipos que são úteis para executar tarefas cotidianas, como lidar com strings e primitivos, criar conexões de banco de dados, executar operações de E/S e assim por diante. Às vezes, você verá isso chamado de biblioteca .NET principal, biblioteca de framework ou bibliotecas de tempo de execução.
-
Modelos de aplicativo, às vezes chamados de pilhas de aplicativo, contêm código de encanamento de nível superior para acessar plataformas onde você pode implantar seus aplicativos .NET. Isso inclui modelos para aplicativos Windows, ASP.NET para aplicativos da web, macOS e várias plataformas móveis, e modelos focados em plataformas de nuvem e IA, desenvolvimento de jogos e dispositivos IoT.
-
A infraestrutura comum é a camada base de componentes que permitem que todo o ecossistema seja realmente executado na prática, de compiladores a linguagens e componentes de tempo de execução. Eles são cruciais para entender o que o .NET tem a oferecer, então os veremos com mais detalhes nas próximas seções.
Como o .NET funciona
Os principais componentes do .NET trabalham juntos para tornar o processo de escrita de aplicativos mais fácil. A biblioteca de classes base e os modelos de aplicativos fornecem o código para lidar com a maioria das tarefas básicas de programação, para que você não precise reinventar a roda com cada aplicativo que cria. E a infraestrutura comum cuida de grande parte do trabalho braçal de implantação desses aplicativos.
Código escrito em qualquer uma das linguagens .NET (mais sobre isso na próxima seção) é compilado para uma linguagem de bytecode intermediária chamada Common Intermediate Language, ou CIL. O código CIL não é legível por humanos, mas pode ser portado entre sistemas operacionais e plataformas. O CIL é então compilado novamente pelo Common Language Runtime, ou CLR. As implementações CLR são específicas da plataforma e compilam o código CIL em código legível por máquina que pode ser executado na plataforma que você está usando. Versões diferentes do CLR suportam compilações just-in-time e ahead-of-time.
No processo de criação de código legível por máquina local, o CLR também gerencia funcionalidades de aplicativos de baixo nível, como coleta de lixo e threading. A funcionalidade de baixo nível é crucial para o desempenho do aplicativo, mas geralmente é tediosa para os desenvolvedores lidarem com ela.
Se você trabalhou com a Plataforma Java, tudo isso provavelmente soa familiar, pois o .NET segue o mesmo paradigma. O grande conjunto de bibliotecas de classe, bytecode intermediário e gerenciamento de tempo de execução específico da plataforma são todos recursos de ambas as ofertas. O .NET foi desenvolvido durante o apogeu inicial do Java e foi originalmente posicionado como um concorrente da plataforma empresarial do Java. Além disso, a linguagem Java e C# — a primeira e mais proeminente linguagem .NET — são ambas derivadas de C e são semanticamente semelhantes.
Quais linguagens de programação o .NET usa?
C#, F# e Visual Basic são as linguagens mais utilizadas com .NET:
-
C#: Anunciada com muita fanfarra no lançamento do .NET em 2002, C# é a linguagem de programação .NET mais famosa e amplamente usada. Foi desenvolvida internamente pela Microsoft como parte da iniciativa .NET, e a maioria das classes na biblioteca de classes base do .NET são escritas em C#. A linguagem é orientada a objetos e foi projetada para ser similar o suficiente a C para ser fácil para desenvolvedores de C, C++, Java e JavaScript aprenderem e usarem rapidamente.
-
F#: Uma linguagem de programação funcional que faz parte da família de linguagens de aprendizado de máquina, F# tem raízes em LISP.
-
Visual Basic: Linguagem de programação venerável e fácil de aprender da Microsoft para desenvolver aplicativos cliente-servidor.
Como o .NET é composto de padrões abertos, qualquer um pode escrever uma linguagem que compila para bytecode CIL e pode ser executada pelo CLR. A Wikipedia atualmente lista mais de 20 projetos de linguagem CLI mantidos, e quase todos eles representam ports .NET de linguagens existentes, de Pascal a JavaScript e COBOL — e sim, até Java.
O fato de que essa diversidade de linguagens pode coexistir dentro do .NET é um dos pontos fortes da plataforma. Como todo o código é compilado para bytecode CIL, não importa qual linguagem você usa para escrever seus aplicativos. Você é livre para decidir com base em suas preferências, os pontos fortes e fracos de cada linguagem ou os diferentes aspectos do .NET que você pode acessar com base na linguagem que você usa (eles variam). Embora a maioria da biblioteca de classes base do .NET tenha sido escrita em C#, você pode acessar essas classes a partir de código escrito em outras linguagens CLI. Componentes escritos em diferentes linguagens CLI podem interoperar livremente em um aplicativo .NET.
Histórico do .NET
Até agora, usei ".NET" como um termo genérico para me referir à plataforma, mas o ecossistema .NET é, na verdade, um pouco mais complexo. Como o .NET é um padrão aberto, qualquer um poderia implementar sua própria versão dele. Durante grande parte da história da plataforma, a versão da Microsoft era chamada de .NET Framework. Outra implementação famosa foi o Mono, lançado em 2001. O Mono era uma implementação de código aberto para executar aplicativos .NET no Linux e era controverso na época devido ao ressentimento entre a Microsoft e a comunidade de código aberto. Mais tarde, o Mono formou a base da plataforma Xamarin, que tornou possível construir aplicativos .NET para iOS, Android e macOS, bem como Linux. O Xamarin começou como uma ideia dos fundadores do Mono, mas a empresa que eles fundaram para dar suporte ao projeto foi finalmente adquirida pela Microsoft.
Em 2014, a Microsoft e a comunidade de desenvolvedores estavam buscando consolidar seus esforços em uma implementação .NET reconstruída do zero. O resultado foi o que foi originalmente chamado de .NET Core, uma implementação multiplataforma do padrão .NET que se livrou de parte do lixo acumulado ao longo dos anos e foi lançada como código aberto em 2016. Inicialmente, faltava a gama completa de recursos disponíveis no .NET Framework e, portanto, o .NET Framework, o .NET Core e o Xamarin coexistiram, o que compreensivelmente causou alguma confusão. Em 2017, o colunista do InfoWorld Simon Bisson lutou com a questão de qual implementação deveria ser usada em quais contextos.
Então, em novembro de 2020, a Microsoft descontinuou o .NET Framework e lançou uma nova versão do .NET Core, simplesmente chamada de NET 5, como a principal implementação da plataforma. O NET 5 reuniu muitos componentes do .NET Framework e do Xamarin, mas deixou para trás algumas APIs do .NET Framework. O Xamarin foi finalmente incorporado em versões posteriores do .NET e, em 2022, foi substituído pelo .NET MAUI, que permite que os desenvolvedores criem UIs multiplataforma em C# e XAML a partir de uma única base de código.
Qual versão do .NET eu tenho?
No momento em que este artigo foi escrito, o NET 8 é a versão mais recente da plataforma e o .NET 9.0 está disponível como um release candidate. Veja a página da Microsoft, Como verificar se o .NET já está instalado para mais informações sobre como determinar qual versão do .NET você instalou.