Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Criando uma console application com esteróides com o pacote System.CommandLine

Posted on Sep 18 Olá devs! Já se pergutaram como os devs criam consoles application bem pomposas como essas do dotnet, cheias de comandos e listagem do que elas fazem? Então vamos lá começar com o feijão com arroz e criar uma Console application no visual studio, ou se você prefirir, dá para usar o command line do dotnet para isso. Meus exemplos serão no Visual studio 2022 Community, mas você pode usar até um bloco de notas com a dotnet tool que funcionará.crie um novo projeto do tipo console application.Após sua criação, importe o pacote nuget System.CommandLineNa barra de procura, procure por System.CommandLine, mas não se esqueça de marcar a opção include prerelease. E então click em install para instalar a dependência no seu projeto.Agora execute a sua aplicação console e voilá, temos nossa aplicação rodando com a descrição que colocamosUma pequena explicação sobre a keyword args que passada como parametro na rootCommand.Invoke(args);: Todo console application pode aceitar argumentos como parametro inicial, dentro do C# ela é recebida através de uma array de strings, esse array de string é identificado quando você executa um comando separando as palavras por espaço.Essa lib é bem poderosa e conseguimos até mesmo definir quais argumentos são esperados e a ordem que eles devem acontecer, como você pode ver no código abaixo, onde definimos que o primeiro argumento recebido será uma stringMas também podemos mudar para dizer que receberemos um inteiro (int), um double (double), um arquivo (FileInfo), um diretório (DirectoryInfo) e varios outros tipos.Também é possível fazer ações como o comando dotnet restore [project.csproj/solution.sln] --build releaseVamos criar algo semelhante a isso nesse nosso ConsoleCharmosao, onde teremos um novo comando chamado length que receberá uma string e retornará a quantidade de caracteres contida nela.Teremos que mudar nosso Código para chear proximo disso.Olha só como ficou nosso console após adição desse comando e option na sessão CommandsPara testar dentro do visual studio 2022 é possivel definir lauchSettings.json onde eu defini abaixoCaso, o lauchSettings.json não esteja aprecendo para você, execute as ações abaixoNa janela que abriu, selecione o botão de adicionar configuração, e selecione projeto. Após isso, você pode adicionar o comando que deseja executar na hora de rodar o aplicativo.Agora você capaz de rodar e debugar seu comando direto do visual studio.Quando você definir suas configurações de publicação, lembresse de definir o deployment mode como Self-contained.Com o .exe publicado, você poderá rodar comandos como ConsoleCharmosao.exe length "minha string" --repeat 3De agora em diante você sabe fazer um console cheio de firulas e comandos utéis e assim ajudar no DX e UX de suas futuras ferramentas. Qualquer duvida deixa nos comentarios, você pode acessar o código fonte aqui, Me siga no Github e no Twitter/X.Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as well Confirm For further actions, you may consider blocking this person and/or reporting abuse yogini16 - Aug 24 An - Aug 14 ByteHide - Aug 23 Rasheed K Mozaffar - Aug 24 Once suspended, marcoscostadev will not be able to comment or publish posts until their suspension is removed. Once unsuspended, marcoscostadev will be able to comment and publish posts again. Once unpublished, all posts by marcoscostadev will become hidden and only accessible to themselves. If marcoscostadev is not suspended, they can still re-publish their posts from their dashboard. Note: Once unpublished, this post will become invisible to the public and only accessible to Marcos Costa. They can still re-publish the post if they are not suspended. Thanks for keeping DEV Community safe. Here is what you can do to flag marcoscostadev: marcoscostadev consistently posts content that violates DEV Community's code of conduct because it is harassing, offensive or spammy. Unflagging marcoscostadev will restore default visibility to their posts. DEV Community — A constructive and inclusive social network for software developers. With you every step of your journey. Built on Forem — the open source software that powers DEV and other inclusive communities.Made with love and Ruby on Rails. DEV Community © 2016 - 2023. We're a place where coders share, stay up-to-date and grow their careers.



This post first appeared on VedVyas Articles, please read the originial post: here

Share the post

Criando uma console application com esteróides com o pacote System.CommandLine

×

Subscribe to Vedvyas Articles

Get updates delivered right to your inbox!

Thank you for your subscription

×