Fala galera, beleza? Dando continuidade àquele post sobre Primeiros Passos com ASP.NET 5, chegou a hora de conhecer um pouco do DNVM ou .NET Version Manager.
O que é o DNVM?
Entender o DNVM é algo bastante simples (pois a ferramenta em si é bastante simples). Hoje como o .NET é capaz de rodar como runtime em ambientes Windows, OSX e Linux é bastante comum que tenhamos diferentes versões do runtime em uma mesma máquina. Isso pode acontecer por diversas razões. O DNVM é uma ferramenta simples que nos permite , instalar/remover, atualizar e claro utilizar versões do Runtime .NET de forma horizontal, ou seja, podemos ter diferentes versões coexistindo lado-a-lado sem que uma interfira no funcionamento ou existência da outra.
Isso tudo é feito de uma maneira bem simples pois o que o DNVM faz é colocar no seu PATH – de forma temporária ou para uma sessão – qual é a versão do runtime (DNX ou .NET Execution Environment) que deve ser utilizada.
Open Source
Como eu já disse anteriormente sobre o VS Code e o ASP.NET, o DNVM também é Open Source. Para sermos ainda mais simplistas o DNVM é composto de um único arquivo (para cada plataforma) com alguns scripts executados em linha de comando. Confira os script aqui no Repositório do DNVM.
Instalando o DNVM
A instalação do DNVM é também é simples em todas as plataformas, embora mude um pouco em cada uma, no final teremos praticamente a mesma ferramenta rodando em cada uma delas, e isso é muito bom pois gera consistência.
Instalando DNVM no Windows
Quando instalamos o ASP.NET 5 no Windows ganhamos o DNVM. Mais simples impossível. Confira aqui direto como instalar o DNVM no Windows.
Instalando DNVM no OSX (Mac)
A instalação no Mac é simples também, uma linha de comando e tudo estará pronto (nada que o pessoal que usa OSX não esteja acostumado):
curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
Confira aqui como instalar o DNVM no Mac (OSX).
Instalando DNVM no Linux
No Linux o processo é bastante parecido com o Mac. As diferenças que serão encontradas estão em como instalar as dependências para o Runtime do .NET (DNX), então confira aqui como instalar o DNVM no Linux.
Usando o DNVM
Agora que o DNVM já está instalado em sua máquina já é possível utiliza-lo. A primeira coisa que faremos é abrir um terminal (ou Powershell se você estiver no Windows) e executar:
dnvm -v
Se tudo estiver funcionando você deve ver um output parecido com:
➜ ~ dnvm -v
1.0.0-rc2-15546
Usando o help do DNVM
Para verificarmos quais os comandos disponíveis vamos digitar.
dnvm --help
ou
dnvm -h
Além de verificar os comandos disponíveis temos as listas de parâmetros que cada um deles aceita, suas descrições, obrigatoriedades, etc, como vemos no exemplo abaixo:
(na imagem acima eu utilizei | grep less
para que eu pudesse paginar a ajuda 😛 )
Listando os Runtimes instalados com DNVM
Para verificarmos quais os runtimes .NET estão instalados basta digitarmos:
dnvm list
Que no meu caso dá o seguinte output:
Instalando um Runtime .NET com DNVM
Se você não possui nenhum runtime instalado basta executar o comando:
dnvm upgrade
Isto deverá instalar o Runtime mais atual.
Para instalar um runtime específico você pode utilizar o comando:
dnvm install <versão>
Por exemplo instalando a versão beta-8 do .NET Core:
dnvm install 1.0.0-beta8
Assim você terá esta versão instalada:
Mudando entre versões com DNVM
A grande vantagem de ter um gerenciador de versões é poder trocar entre elas quando for necessário. Com o DNVM fazemos isso utilizando o comando use
:
dnvm use 1.0.0-beta8
Repare que quando utilizamos o comando use
o DNVM nos informa que está adicionando uma versão específica ao PATH. E se executarmos o comando list
veremos que oa versão ativa é a que acabamos de informar ao use
.
Configurando a versão padrão do .NET com DNVM
Para marcar uma versão como padrão (default) usando o DNVM basta utilizar o parâmetro -p ou -persistent com o comando use:
dnvm use 1.0.0-rc1-update1 -p
Finalizando
Esta foi uma introdução mas que mostra bem o funcionamento, a idéia e algumas das principais funcionalidades do DNVM. Ter versões diferentes de um Runtime rodando na mesma máquina, de forma independente, é algo que algumas tecnologias já utilizavam e isso faz bastante sentido quando você trabalha com diferentes projetos que pode ou não estar com versões diferentes do Runtime, mantendo cada um deles isolados e independentes (já que o Runtime está isolado também).
Lembrando que o DNVM é apenas uma ferramenta que faz uso de todo poder do .NET como foi reescrito. Se você tiver alguma dúvida basta dar uma pequena fuçada no código fonte dos scripts aqui no Repositório do DNVM no Github 😉
Quaisquer dúvidas mandem nos comentários. Abraços!
Vinicius Quaiato