.NET com Linux: uma gambiarra?
Desde o lançamento do .NET Core em 2014 como alternativa para o .NET Framework, as aplicações que rodam no ecossistema .NET deixaram de ser exclusividade de plataformas Windows, podendo ser desenvolvidas e executadas em macOS ou Linux.
Entretanto, empresas e desenvolvedores que trabalham com .NET notam uma facilidade muito maior em deixar o .NET no ambiente da Microsoft, mesmo aqueles que não são muito fãs do Windows. O fato de não ter uma versão do Visual Studio (não confundir com Visual Studio Code) e de ser bem mais fácil instalar bibliotecas e dependências de forma geral. Além do SQL Server que também conta com gerenciadores exclusivos do WIndows.
Para quem não larga mão do Linux para uso pessoal e não acha que compensa criar um dual boot ou usar máquina virtual só para continuar nos estudos de .NET, trago aqui algumas alternativas que me ajudaram como um usuário de Linux a integrar o sistema do "pinguim" ao framework da Microsoft.
Utilizando o JetBrains Rider
https://www.jetbrains.com/pt-br/rider/
Vale a pena conhecer. Uma IDE completa para desenvolvimento .NET C#, vem com instalador de pacotes NuGet, ecossistema completo para desenvolvimento com ASP.NET, Blazor, Razor, suporte para JavaScript e Typescript (para projetos fullstack).
Não deixa nada a desejar em comparação com Visual Studio. Possui versão gratuita para uso não comercial.
Vantagens:
- Várias ferramentas integradas: instalador de pacote com poucos cliques, debugador, integração com Github/Gitlab e versionamento do próprio .NET. Não necessita de instalar diversas extensões ou plugins.
- Assistente de código inteligente: o assistente de código da JetBrains é conhecido pela sua eficiência antes mesmo do boom dos Copilot ou Tabnines da vida. Ainda é uma mão na roda para quem quer praticidade na hora de codar.
- Curva de Aprendizado: se você já usou outras IDEs da JetBrains como PyCharm ou IntellijIdea, vai encontrar uma interface e configurações muito semelhantes ao Rider.
Desvantagens:
- Pesado: se você possui um computador mais modesto, pode ser que não seja a melhor opção, o Rider assim com o Visual Studio, por ser uma IDE completa e robusta, utiliza muito recurso computacional para executar o código.
- Comunidade pequena: Talvez seja mais dificil encontrar tutoriais ou troubleshooting do Rider por ser bem menos utilizado que o Visual Studio (ferramenta da própria Microsoft).
Utilizando VSCode
Uma alternativa mais leve, porém que vai demandar mais experiência como terminais, é rodar o C# no próprio VSCode. O VSCode que outrora não servia muito bem para desenvolvimento com .NET por ser simples demais, hoje conta com extensões e ferramentas que também não deixam a desejar.
Farei o tutorial para distribuições Debian, caso utilize Arch ou Fedora, recomendo procurar na documentação oficial da Microsoft: https://learn.microsoft.com/pt-br/dotnet/core/install/linux
Primeiro, precisamos abrir o terminal para fazer a instalação do SDK (ferramentas para o desenvolvimento .NET) e do runtime .NET (plataforma para executar aplicações .NET). Na documentação oficial da Microsoft, para distribuições debian, o tutorial te leva a instalar a sdk e o runtime através dos comandos:
sudo apt-get update
sudo apt-get install -y dotnet-sdk-9.0
sudo apt-get install -y aspnetcore-runtime-9.0
Contudo, eu particularmente tive muitos problemas seguindo este tutorial. Pesquisando mais, vi que há um repositório nativo que funciona melhor e instala ambos SDK e runtime em um comando só:
sudo apt udpate
sudo apt install -y dotnet9
Feito isso, recomendo também instalar o Dev Kit do C# para o VSCode:
https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit
Agora já podemos criar uma aplicação dotnet pela linha de comando facilmente. Primeiro crie a pasta e acesse o diretório pelo terminal:
mkdir app-csharp
cd app-csharp
Próximo passo, vamos criar uma aplicação de console como exemplo:
dotnet new console
E voilá! Agora é só rodar o famoso Hello World.
dotnet run
Espero ter ajudado com este artigo, e qualquer dúvida podem colocar nos comentários, até mais!