Turbinando o desenvolvimento .NET no VS Code: utilizando o Terminal com Console Apps | Dica 2
Console Applications são comumentes utilizadas em .NET Core e .NET 5 para a codificação de tarefas/jobs com uma duração limitada (trata-se inclusive de uma alternativa interessante para a construção de CronJobs a serem executados no Kubernetes). É comum ainda que optemos por este tipo de projeto em implementações voltadas a testes de algum recurso.
O Visual Studio 2019 (assim como outras versões desta IDE) aciona uma nova janela do Prompt de Comando caso executemos uma Console App, permitindo inclusive a leitura de teclas ou texto (via métodos como ReadKey e ReadLine da classe Console).
Mas e quanto ao Visual Studio Code?
Este é o segundo artigo da série com dicas e truques visando turbinar o desenvolvimento de aplicações .NET com o Visual Studio Code. Acesse o link a seguir caso ainda não tenha acompanhado o primeiro post ou, até mesmo, deseje revê-lo:
Turbinando o desenvolvimento .NET no VS Code: exibindo packages desatualizados | Dica 1
Por default o resultado da execução de uma Console Application será direcionado para a janela Debug Console, como indicado na animação a seguir:
O código que utilizei nesse teste está na listagem:
E este comportamento tem uma restrição que pode se transformar em um incômodo: a impossibilidade de realizar a leitura de teclas ou texto.
Essa limitação é demonstrada na próxima imagem:
Demonstrada em um teste executado tomando como base o seguinte código:
Como resolver então isso?
No arquivo launch.json localizado na pasta .vscode há em configurations o item console, no qual as alternativas integratedTerminal e externalTerminal solucionariam esta questão (o default é internalConsole, justamente a opção que causa o problema de leitura):
Na próxima animação temos um exemplo de uso da alternativa integratedTerminal:
Já com externalTerminal teremos um comportamento idêntico àquele presente na IDE do Visual Studio, com a abertura de uma janela do Prompt de Comando e com suporte à digitação: