O objetivo deste artigo não é fazer você abandonar o Windows ou o Visual Studio, mas sim mostrar que você tem liberdade de escolher o ambiente que mais lhe agrada.
Nos últimos anos a Microsoft vem mudando, e foi essa mudança que me chamou atenção. E assim como eu, gostaria que você desse uma olhada na stack da empresa que mais colaborou em open source em 2018.
Neste artigo mostrarei como usar a tecnologia .NET Core no Ubuntu dentro de um container docker. Usaremos o console para criação de um novo projeto e o vim como editor.
Docker
Se você não tiver docker instalado, acesse o guia de instalação oficial:
Com docker instalado acesse o terminal e digite docker pull ubuntu:18.04
para realizar o download da imagem do ubuntu 18.04.
Agora digite docker run -it -p 5000:5000 -p 5001:5001 ubuntu:18.04 bash
para iniciar o ubuntu 18.04 em um novo container.
Você está visualizando algo como root@a2f71b0266c0:/#
? Se sim, tudo certo até aqui.
Atenção: o número a2f71b0266c0 é o id do container, então no seu ambiente esse Id vai ser diferente, ok?
Para se certificar de que você está no Ubuntu, digite cat /etc/lsb-release
.
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
.NET
Vamos instalar o .NET em nosso ambiente. Primeiro precisamos instalar alguns pacotes essenciais – para isso, digite o comando:
apt update && apt install -y vim wget software-properties-common apt-transport-https
Agora precisamos adicionar o repositório da Microsoft no Linux.
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
É só instalar o .NET.
apt update && apt install -y dotnet-sdk-2.2
Digite dotnet –version
e certifique-se de que a instalação foi realizada com sucesso.
Criar meu primeiro programa .NET
Para esse artigo criarei um programa webapi. Para isso, digite:
dotnet new webapi -lang C# -o dotnet-no-linux -n Dotnet.No.Linux && cd dotnet-no-linux
O comando acima criará um novo programa do tipo Web Api, utilizando a linguagem C#, no diretório dotnet-no-Linux com o namespace Dotnet.No.Linux.
Rodando o programa
Antes de rodar, precisamos fazer uma pequena alteração no arquivo Properties/launchSettings.json para que a nossa máquina consiga acessar o container através da porta 5000 e 5001.
Digite o comando sed -i 's/localhost/0.0.0.0/g' Properties/launchSettings.json
.
Esse comando substituirá tudo que é localhost por 0.0.0.0 no arquivo Properties/launchSettings.json.
Agora podemos rodar o projeto. Digite dotnet run
e acesse https://localhost:5001/api/values.
E o vim nessa história?
Se você iniciou a leitura desse artigo só por causa do vim, chegou o momento.
Vamos acrescentar uma funcionalidade. Que tal fazer um programa que gere números da sorte (quem sabe esses números não possam ser usados?).
O programa receberá via query string um valor inicial, valor final e total de números distintos que devem ser gerados.
Para acrescentar a funcionalidade, digite vim Controllers/ValuesController.cs
.
Para facilitar vamos copiar e colar um código já digitado que pode ser acessado neste link.
Com o arquivo aberto no vim, digite :d1000
e tecle Enter. Este comando deletará 1000 linhas contando a partir do cursor.
Digite :set paste
e aperte a letra A para colar o conteúdo copiado do gist. Agora, se estiver no CMD, basta clicar com botão direito do mouse ou shift+insert se estiver no Linux.
Conteúdo colado, agora basta salvar. Para isso, digite esc
para acessar o modo de comandos do vim e então digite :x
para salvar e sair do vim.
Ao completar esses passos, execute o projeto com o comando donet run
e acesse https://localhost:5001/api/values?inicio=1&fim=60&total=6 para visualizar o resultado.
Caso o programa sorteie os números da Mega Sena, não esqueça de compartilhar comigo, combinado?