.Net, ASP, Framework, Core, C#, Blazor, Razor: O que é tudo isso?
Tags: beginners, csharp, dotnet
Published: 2022-08-30 20:41:55

Calma! Não precisa se desesperar porque todos esses termos parecem confusos. Não é segredo para ninguém que o ecossistema da Microsoft tem algumas nomenclaturas complicadas, que as vezes confundem até quem já está na área a um tempo.

Talvez essa imagem traga uma luz para que possamos começar nossa conversa:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xljzs705qog1ruqsmlwn.png)

Começando pelo mais fácil, o C# é uma das linguagens criadas pela Microsoft para o seu ecossistema de desenvolvimento. Essa linguagem tem uma longa história que cabe melhor em um outro post. Outros exemplos são o VB.NET e o F#, não tão utilizadas quanto o C#. Todas essas linguagens compartilham as mesmas bibliotecas, o que torna tudo muito robusto, e nos leva a falar sobre o .NET!

O .NET é a plataforma de desenvolvimento da Microsoft, ela é mantida de forma Open Source no [GitHub](https://github.com/dotnet/core/blob/main/Documentation/core-repos.md). Como vimos na imagem ela inclui o runtime, os compiladores, as linguagens, e as bibliotecas que usamos para desenvolver. A grande sacada dela é essa unificação. 

A confusão começa com as atualizações ao .NET:

Lançado em 2002 como .NET Framework, a plataforma atendia somente por esse nome até 2016. Quando foi lançado o .NET Core. A diferença entre os dois? A princípio o Framework atendia somente os sistemas Windows. Visando aumentar suas capacidades, o .NET Core expandia o Framework para outros sistemas operacionais. Não houve uma substituição a princípio, assim os usuários encontravam as duas plataformas no mercado ao mesmo tempo, em várias versões. Enquanto o .NET Framework estava na versão 4.7 por exemplo, tinhamos a versão 2.0 do .NET Core, e misturar os dois em um projeto não era algo muito simples. Levando a Microsoft a definir a .NET Standard como uma **especificação** para que sua biblioteca fosse compativél com ambos.

Essa confusão de versões, apesar de ainda estar presente hoje pela presença de sistemas legados, foi resolvida no final de 2020, quando foi lançado o .NET 5, dessa vez sem adições ao nome. 
O .NET 5 é a nova versão do .NET Core, mas talvez para passar a ideia de que o .NET Framework não foi simplesmente descontinuado, utilizou-se a versão 5, pulando a versão 4 (e retirando o Core do nome) de forma que se passa a impressão que ele é uma atualização do Framework. De qualquer forma, agora temos uma plataforma única que recebe uma grande atualização todos os anos adicionando cada vez ainda mais ferramentas, que atende simplesmente pelo nome de .NET (obrigado Microsoft).


Agora falemos de coisas que estão dentro do .NET: Blazor, Razor, ASP.NET, MAUI, Xamarin, WinForms...

Dessa vez começando por talvez o mais complicado, o ASP.NET sofre dos mesmo problemas de nomenclatura que o .NET, temos ASP.NET e ASP.NET Core, que é simplesmente uma nova versão lançada após o .NET Core existir e tentou aproximar as nomenclaturas. Porém, como se continuou a lançar novas versões do .NET Framework após a introdução do .NET Core, as primeiras versões do ASP.NET Core funcionavam tanto com o .NET Core quanto com essas novas versões do .NET Framework... Não entraremos aqui dentro do ASP com ASP.NET MVC e ASP.NET WebApi, saiba apenas que hoje tudo funciona junto (quase) sem problemas no ASP.NET Core, no .NET (Ufa!)

O Blazor é um framework que permite a criação de páginas web interativas utilizando C# e Razor (sintaxe usada para adicionar o C# ao HTML) ao invés de Javascript. Basicamente, ambos o Blazor e o Razor se juntam para fornecer ao desenvolvedor uma forma de utilizar o C# no front-end. É importante não confundir com o Razor Pages, que é uma opção diferente ao ASP.NET Core MVC, utilizando rotas baseadas em páginas ao invés de controllers e views.
Exemplo de C# com Razor (créditos ao [Macoratti](https://www.macoratti.net/11/02/asp_rzr1.htm)):
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rbvfpzcf6njwte90n0ok.png)
 

Xamarin e Windows Forms também são ferramentas para criação de interfaces, focadas em Mobile e Desktop (Windows, duh!).

Buscando outra vez atingir outros sistemas operacionais e seguindo outras tecnologias de desenvolvimento multi-plataforma que tem aparecido no mercado, a Microsoft lançou o MAUI (Multi-Platform App UI) como ferramenta onde um só código escrito em C# e XAML pelo desenvolvedor é compilado para rodar em iOS, Android, Windows e Mac, além de Linux e Web (junto ao Blazor). Ainda bem que não resolveram chamar de Xamarin Core.


Essa foi uma visão geral dos principais nomes da plataforma de desenvolvimento da Microsoft, espero que tenha sido esclarecedor!