Dot Net Core no Linux - resolvendo problemas iniciais

Já faz algum tempo, a Microsoft lançou o Dot Net Core (incluindo aí Dot Net e Asp Net Core) com a proposta de tornar seu framework multiplataforma e a estratégia vem sendo dando certo, haja visto o número grande de implementações com a dobradinha Linux + Docker para manter micro serviços Asp Net Core no ar.

Para alguns podem surgir dúvidas sobre valer ou não à pena investir em Linux depois de tanta evolução que tivemos nos últimos anos e o mesmo nunca ter "emplacado" no dektop. O Linux continua viável?

Sim, o Linux está muito bem, obrigado. Tanto que a própria Microsoft vem investindo nele (visto o WSL).

Mas não se iluda: o "ano do Linux no desktop" não chegou e segundo o próprio Linus Torvalds, nem vai.

É importante lembrar que quando falamos sobre Linux não estamos falando de um sistema para usuários finais, embora, a maioria não saiba mas já usa um sistema Linux nos seus dispositivos Android. Estamos falando de uma opção rápida e barata para criar e rodar micro serviços e plataformas que possam ser customizadas com certa facilidade.

Abraçando o Linux

Recentemente comprei um notebook básico para meu uso pessoal. Não vou dar a marca porque não me pagam para fazer propaganda, mas, basta dizer que é um Core i5 com 8G de memória e um SSD de 256G. Tá bom pro que eu preciso fazer fora do meu trabalho.

Pra variar, veio com uma versão do Windows 10 já instalado com todos os bloatwares (você entendeu porque o ano do desktop do Linux nunca vai chegar?) que eu preciso pro meu dia a dia (só que não) e que legal: só preciso informar meu cartão de crédito para ativar o Windows! Na primeira semana de uso apenas acessando a internet e não era pelo Chrome, a CPU deu 100% e o cooler ficou doido a ponto de eu poder grelhar um bife na saída de ar. Absurdo isso! Comprei um notebook não uma Air Fryer!

Decidi ir para o Linux. Na época estava brincando com o Python e o Jupiter Notebooks então pareceu legal como realmente tem sido.

Também quis começar a brincar com o Dot Net Core e então, vamos instalar isto no Ubuntu.

Localizei três links com tutoriais bacanas para instalar Dot Net Core no Linux, mas, só o da Microsoft mesmo resolveu o meu problema. Já volto neste ponto porque no final eu comecei fazendo tudo errado e quero ajudar você que está lendo a não fazer o mesmo. Tentei instalar pelo terminal e por pura prequiça fui ver na aplicação de gerenciamento de software do Ubuntu (imagem) que tinha a instação lá. Vamos então fazer isto pela interface gráfica!

Tudo instalado, vamos selecionar uma pasta e criar o projeto pelo terminal mesmo:

$ mdkir coreTest 
$ cd coreTest 
$ dotnet new console
$ dotnet run 
$

Tudo o que eu consegui como resultado final da execução foi o que está na listagem: uma linha em branco, nada. Tudo estava instalado, nenhuma mensagem de erro e nem resultado do programa.

Algo de errado não estava certo - como dizem as mensagens de erro traduzidas do Dot Net Framework. O que deu errado? Milhares de coisas e uma só causa: comecei errado.

Em um ambiente Linux geralmente se instalam coisas pelo apt-get. Você só vai instalar pela interface gráfica poucas coisas.

Então, deixei de ser preguiçoso (por 5 minutos) e abri o link da Microsoft para a documentação oficial. Fui lendo e cheguei a conclusão que deveria seguir os passos que estavam lá e principalmente, ver quais se aplicavam à minha versão do Ubuntu (no meu caso 20.04).

Após ir executando os comandos uma linha de cada vez - e este passo é importante - em vez de colar tudo e ver no que dava, ao executar o programa criado como exemplo, tudo funcionou corretamente.

Estava curioso para saber se coisas como o Console.ReadLine e o System.Linq estavam presentes e estavam. Isso mesmo: faz tempo que eu não escrevo código.

Se estiver curioso e quiser ver o código, baixe os arquivos no meu Git pessoal.

Foi bem pouco, mas, vamos devagar!

Links

  1. How to install DotNet Core on Ubuntu 18.04
  2. SDK ou Runtime - Microsoft
  3. .NET Core Development on Ubuntu 18.10