O fato de essa diversidade de linguagens poder coexistir dentro do .NET é um dos pontos fortes da plataforma. Como todo o código é compilado no bytecode CIL, não importa qual linguagem você usa para escrever seus aplicativos. Você é livre para decidir com base em suas preferências, nos pontos fortes e fracos de cada linguagem ou nos diferentes aspectos do .NET que você pode acessar com base na linguagem que você usa (eles variam). Embora a maior parte 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ória 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 pessoa poderia implementar sua própria versão dele. Durante grande parte da história da plataforma, a versão da Microsoft foi chamada de .NET Framework. Outra implementação famosa foi o Mono, lançado em 2001. Mono era uma implementação de código aberto para executar aplicativos .NET no Linux e foi controverso na época devido ao desentendimento entre a Microsoft e a comunidade de código aberto. Mais tarde, o Mono formou a base da plataforma Xamarin, que possibilitou a construção de aplicativos .NET para iOS, Android e macOS, além de Linux. O Xamarin começou como ideia dos fundadores do Mono, mas a empresa que eles fundaram para apoiar o projeto foi finalmente adquirida pela Microsoft.

Em 2014, a Microsoft e a comunidade de desenvolvedores procuravam 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 eliminou parte do lixo acumulado ao longo dos anos e foi lançado como código aberto em 2016. Inicialmente, faltava-lhe toda a gama de recursos. 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 da InfoWorld, Simon Bisson, debateu-se com a questão de qual implementação deveria ser usada em quais contextos.