Estou começando, como diferenciar C#, .NET, .NET Core, .NET Framework, .NET MVC ?

Marcio Nizzola
6 min readAug 16, 2021

--

É muito comum que logo no início haja uma certa confusão sobre esses nomes, afinal muitas vezes vemos publicações que mencionam um ou outro, e fica aquela dúvida, então vamos lá.

O que é C# ?

Para começar, C# foi criada pela Microsoft

O C# (leia-se C-Sharp), é uma linguagem de programação orientada a objetos, que foi desenvolvida pela Microsoft tendo iniciado em 1999, e tinha seu nome inicial como “Cool”, sendo depois rebatizada de C#, ela tem uma sintaxe muito parecida com o Pascal, não por acaso, pois seu criador foi, Anders Hejlsberg o criador da linguagem Delphi, que contratado pela Microsoft formou uma equipe de programadores para desenvolver uma nova linguagem de programação.

Após o renome da linguagem, a Microsoft submeteu-a à ECMA (European Computer Manufacturers Association), associação cujo objetivo é a padronização de sistemas de informação. Em 2001, a ECMA aprovou o C# e a linguagem recebeu a especificação ECMA-334. Mais tarde, em 2003, tornou-se padrão também da ISO, recebendo a especificação de ISO/IEC 23270.

O C# surgiu com a finalidade de possibilitar a criação de soluções executáveis sobre a plataforma .NET Framework, com o intuito de flexibilizar o desenvolvimento de aplicativos. Dessa maneira, o desenvolvedor não cria soluções para um dispositivo eletrônico específico, e sim para a plataforma .NET Framework.

Muitos dizem que o C# foi criado para ser uma resposta da Microsoft ao Java, pois lá atrás houve uma briga jurídica entre a MS e a SUN detentora dos direitos do Java, que impediu o uso de suas bibliotecas pela Microsoft.

Embora a linguagem C# seja considerada muito semelhante ao Java, existem também varias diferenças:

  • Java não tem a função de implementar propriedades nem sobrecarga de operadores, o C# tem esta função.
  • Java não tem a função de implementar um modo inseguro que pode ser utilizado para manipulação de ponteiros e aritmética sem checagem. Esta função é característica do C#
  • Java possui as exceções checadas, enquanto as exceções em C# não são checadas (assim como em C++)
  • Enquanto Java utiliza comentários Javadoc para gerar documentação automática, O C# Utiliza o XML.
  • C# tem suporte à indexadores, e o Java não.

O C# nasceu como uma linguagem proprietária, porém a Microsoft por volta de 2014 iniciou a mudança que revolucionou a linguagem, tornando seu código “open-source” e assim possibilitando à toda a comunidade acesso e possibilidade de melhorarem seu código.

Com isto a maior revolução da linguagem ocorreu e a sua aceitação no mercado somente cresceu desde então.

Então como funciona isso ?

A compilação em C# é processada em uma Intermediate Language (IL) que está em conformidade com a especificação CLI. O código IL e seus recursos, tais como bitmaps e strings, são armazenados no disco rígido em um arquivo executável chamado de Assembly. No momento da execução de um programa em C#, o Assembly é carregado para o CLR. Uma vez aprovado os requisitos de segurança, o CLR executa a compilação Just in Time (JIT) para converter o código IL em linguagem de baixo nível.

O que é .NET então ?

A plataforma .NET teve suas bibliotecas inicialmente feitas em Simple Managed C (SMC), porém esta limitou muito o trabalho na plataforma. Aí entra o C#, esta linguagem seria criada para desprender a plataforma .NET de outras linguagens, pois o código das linguagens já existentes limitava o desenvolvimento da plataforma.

Para a codificação de sistemas baseados em .NET Framework, a Microsoft lançou o Visual Studio. Esta ferramenta é uma IDE (Integrated Development Environment) que conta com um editor de código, compilador, com modelos de projetos de exemplos, designers e assistente de códigos.

A idéia da plataforma .NET era permitir que utilizássemos várias linguagens numa plataforma única, podemos utilizar: VB.NET, C++ , J# e F# além de outras.

evolução da plataforma .NET

Ok, então o que é .NET Framework ?

É importante entender que .Net Framework e .Net Core não são duas estruturas separadas com seus próprios ciclos de vida e objetivos, mas sim uma extensão da outra. .Net Core tem como objetivo estender sua estrutura anterior e oferecer soluções para os mesmos problemas (desktop, web, móvel, nativo da nuvem e muito mais).

Então qual a diferença do .NET Core ?

.NET Framework teve seus dias de glória, mas foi ficando carregada e obsoleta, o .NET Core foi lançado em 2016, mas foi fruto de um trabalho de desenvolvimento novo, que iria andar em paralelo com a versão atual, mas com uma nova arquitetura, open-source e modular.

Como novidade ele permitiu o desenvolvimento em Windows, Linux e MacOS. A Microsoft percebeu que não poderia ficar presa ao ambiente Windows, mas seria quase impossível reutilizar o até então .NET Framework.

E o mais bacana de tudo isso, ele é Open-Source !

e o que é então .NET Standard ?

O .NET Standard, atualmente na versão 2.1, surge para ser um meio termo entre as duas versões, ele é uma interface que define a lista de APIs que uma determinada função do .NET deve suportar. Sendo assim, uma biblioteca escrita utilizando o .NET Standard pode ser suportada tanto por aplicações utilizando o .NET Core quanto o .NET Framework. Ele foi criado para que esse compartilhamento seja muito mais fácil e uniforme no ecossistema do .NET. No entanto, vale lembrar, que com o advento do .NET 5, que será universal, a utilização dele se torna desnecessária em muitos cenários. A imagem abaixo exemplifica de maneira clara como ele funciona.

tá bom, daí surge um tal de .NET MVC, o que é isso ?

ASP.NET MVC é basicamente um framework, faz uso de um padrão de design, o MVC. É esse Framework, com todos os seus recursos, o grande responsável pela criação de excelentes aplicações web utilizando o padrão MVC.

O MVC Framework foi uma grande sacada da Microsoft: a ideia era construir uma plataforma que seria mais confiável que o Web Forms em cima do núcleo do ASP.NET já existente.

Além disso, suas views utilizam Razor que é uma view engine ou motor de view, que traz mais algumas funcionalidades para a plataforma.

É uma ótima alternativa para criarmos aplicações Web quando não queremos investir num front-end como Angular ou React.

e agora? somente por que agora ficou só .NET 5? Cadê o Core !

Com o lançamento da versão 5 do .Net, a palavra Core foi retirada, pois entende-se que o momento de convivência entre as duas tecnologias ficou no passado e agora .NET 5 é a unificação de todas as plataformas.

Ok, e onde isto vai parar ? acessando a documentação do roadmap da Microsoft para a tecnologia .NET, temos o quadro abaixo, que mostra que teremos novas versões saindo ano após ano.

Espero assim ter tirado algumas dúvidas comuns para quem está começando.

Referências:

Microsoft cria fundação para promover software de código aberto | Tecnoblog

C# — C Sharp — Linguagem de Programação — InfoEscola

Quais são as diferenças entre .NET Core e .NET Framework — Luby Software do seu jeito

--

--

Marcio Nizzola
Marcio Nizzola

Written by Marcio Nizzola

Microsoft MVP | Software Architect na CI&T | Prof. da Etec Itu | Membro Fundador da Comunidade Itu Developers.