5 Comandos Essenciais do CLI .NET Que Todo Desenvolvedor Deveria Saber
A maioria dos desenvolvedores C# passa todo o seu fluxo de trabalho dentro de um IDE, clicando em botões para compilar, lançar e testar suas aplicações. Isso funciona até não funcionar. Pipelines de automação, servidores remotos e ambientes containerizados não têm interface gráfica, e conhecer alguns comandos de terminal mantém sua produtividade nessas situações sem precisar de um mouse.
Em seu vídeo "5 Comandos Essenciais do .NET CLI que Todo Desenvolvedor Deveria Saber", Tim Corey passa pelos cinco comandos dotnet que cobrem a maior parte do desenvolvimento do dia a dia: build, run, watch, clean, e publish. Cada um recebe uma demonstração prática, mostrando não apenas a sintaxe, mas também quando e por que você usaria. Quer você esteja confortável com o terminal ou raramente abra um, vale a pena memorizá-los.
Verificando Seu Ambiente com dotnet --info
[0:31 - 1:25] Antes de executar qualquer comando de projeto, Tim começa verificando o ambiente de desenvolvimento. O comando dotnet por si só confirma que o CLI está instalado e acessível no seu caminho, mas dotnet --info vai além:
dotnet --info
dotnet --info
Isso imprime todas as versões do SDK e runtime instaladas no seu computador, junto com os detalhes do sistema operacional e a arquitetura ativa. Tim demonstra isso no .NET 10, mas o comando funciona identicamente em qualquer versão. Saber o que você tem instalado é especialmente útil ao depurar incompatibilidades de versão ou verificar se um servidor CI espelha sua configuração local.
Comando 1: dotnet build
[2:16 - 3:44] O primeiro comando compila seu projeto sem lançá-lo:
dotnet build
dotnet build
Executar isso no diretório do projeto lê o arquivo .csproj, resolve dependências e produz a saída compilada no diretório bin. Tim destaca que a compilação é uma etapa distinta, separada da execução. Essa separação importa quando você deseja verificar se seu código compila sem erros antes de enviá-lo a um repositório ou transferi-lo para um servidor de build.
O .NET SDK lida com a resolução de dependências durante o processo de build, baixando pacotes NuGet ausentes e garantindo que todos os assemblies referenciados estejam presentes. Se algo falhar neste estágio, as mensagens de erro apontam diretamente para o problema, seja uma referência ausente, um erro de sintaxe ou uma incompatibilidade de framework de destino. Detectar esses problemas antes de executar a aplicação economiza tempo no ciclo de desenvolvimento geral.
Comando 2: dotnet run
[3:44 - 5:42] Enquanto build para na compilação, run dá o próximo passo e lança a aplicação:
dotnet run
dotnet run
Isso compila o projeto (se necessário) e então executa a saída resultante. Para uma aplicação console, isso significa executá-la no terminal. Para um projeto web, o servidor Kestrel incorporado inicia e o app se torna disponível em uma URL local.
Tim demonstra isso com uma aplicação web, navegando até o site em execução em um navegador para confirmar que tudo carrega corretamente. A principal distinção entre build e run é que run produz um resultado ao vivo e interativo. Durante o desenvolvimento ativo, este é o comando que você usará mais frequentemente para testar mudanças e ver seu efeito.
Comando 3: dotnet watch
[5:42 - 7:06] Parar a aplicação, fazer uma alteração e reiniciá-la rapidamente se torna tedioso. O comando watch elimina esse ciclo:
dotnet watch
dotnet watch
Isso envolve o processo de execução em um observador de arquivos. Quando você salva uma alteração em qualquer arquivo de origem, o CLI detecta a modificação e recompila e atualiza a aplicação automaticamente. Para aplicações web construídas com ASP.NET Core, alterações em arquivos Razor, CSS e código C# aparecem no navegador sem uma reinicialização manual.
Tim mostra o comportamento de hot reload em ação: editando uma página, salvando e vendo a atualização refletida imediatamente. Este ciclo de feedback rápido é valioso durante trabalhos de UI, onde pequenos ajustes acontecem constantemente. Em vez de passar por parar-editar-reconstruir-lançar, você permanece focado no código e deixa que as ferramentas lidem com o resto.
Comando 4: dotnet clean
[7:06 - 7:56] Artefatos de build se acumulam nos diretórios bin e obj ao longo do tempo. Ocasionalmente, arquivos compilados desatualizados causam um comportamento confuso onde suas últimas alterações de código não parecem ter efeito, ou onde um build tem sucesso localmente mas falha em uma máquina nova. O comando clean resolve isso:
dotnet clean
dotnet clean
Executá-lo remove o conteúdo dos diretórios de saída, de modo que o seu próximo build comece do zero. Tim apresenta isso como uma ferramenta de solução de problemas em vez de algo que você executa após cada alteração. Quando seu projeto se comporta inesperadamente e você suspeita que a saída em cache é a culpada, clean seguido por build garante que você está trabalhando com uma compilação realmente nova.
Esse hábito é particularmente útil ao trocar de branches no controle de versão, atualizar uma dependência para uma nova versão principal ou resolver avisos de build intermitentes que parecem aparecer e desaparecer sem uma causa clara.
Comando 5: dotnet publish
[7:56 - 9:01] O comando final preenche a lacuna entre desenvolvimento e implantação:
dotnet publish
dotnet publish
Enquanto build produz uma saída adequada para depuração local, publish cria um pacote pronto para implantação. As assembleias compiladas, arquivos de configuração, ativos estáticos e quaisquer componentes de runtime necessários são colocados em uma pasta publish que você pode copiar diretamente para um servidor.
A distinção entre build e publish pega alguns desenvolvedores de surpresa. A saída build inclui símbolos de depuração e referências que são úteis durante o desenvolvimento, mas desnecessárias (e às vezes indesejáveis) em produção. A publicação retira esses extras e organiza a saída para o ambiente de destino. Ao implantar no Docker ou fazer upload para um host na nuvem, a saída publicada é o que pertence à sua imagem final ou pacote de lançamento.
Concluindo: Cinco Comandos, um Fluxo de Trabalho
[9:01 - 9:15] Tim conclui listando todos os cinco juntos: dotnet build, dotnet run, dotnet watch, dotnet clean, e dotnet publish. Tomados como um conjunto, eles cobrem o loop de desenvolvimento principal desde a compilação até a implantação. Cada um serve a um propósito específico, e saber quando recorrer a cada um dá a você um nível de controle que clicar em botões do IDE sozinho não oferece.
Conclusão
[9:15 - 9:30] Esses cinco comandos do CLI lidam com as tarefas que você realiza com mais frequência durante o desenvolvimento: compilar, executar, recarregar ao vivo, limpar saídas antigas e empacotar para lançamento. Eles funcionam em cada tipo de projeto .NET e em cada sistema operacional que o SDK suporta.
Na próxima vez que você abrir um terminal, seja na sua máquina local, dentro de um container ou em um servidor remoto, você já tem o vocabulário para passar por todo o ciclo de desenvolvimento sem uma interface gráfica.
Dica de Exemplo: Você pode encadear clean e build em uma única linha com dotnet clean && dotnet build. Isso garante uma compilação do zero em um passo, o que é especialmente útil ao solucionar problemas que persistem em compilações incrementais.
Assista ao vídeo completo no seu canal do YouTube e obtenha mais insights sobre os essenciais do .NET CLI.
