Olá Devs! 👩💻👨💻
Em alguns momentos acho interessante escrever determinados códigos em "C#" de forma isolada, assim eu direciono o meu foco somente no que estou escrevendo. Não me preocupo com uma grande aplicação, várias dependências e etc. Atenção, não estou falando de "C# Scripting", isso vou falar em outro post.
Eu utilizava o LINQPad para isso, ele é uma excelente ferramenta desktop e atende muito bem, só que uma coisa que sempre me incomodou era o fato de ter 3 ferramentas para escrever código "C#". Por padrão eu utilizo VS2019 e VSCode, o ideal era resolver esse problema com eles, seria muito interessante.
Estava lendo um post do Scott Hanselman e percebi que deixei passar uma novidade do "C# 9" que atenderia muito bem essa necessidade. A novidade, que já não é tão nova assim, é o recurso "Top Level Program".
Com esse recurso você consegue escrever o código de uma forma mais simples sem a necessidade da classe Program e do método Main. Exatamente o que eu gostaria.
Código padrão
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
Top Level Program
using static System.Console;
WriteLine("Hello World!");
Pode parecer uma bobagem, mas isso facilita muito, principalmente quando estou estudando ou explicando algum código para alguém. O Scott Hanselman fala do VS2019, mas pra mim seria perfeito conseguir utilizar o VSCode, fiz o teste e funciona.
Criei um repositório no github que pode servir como referência. Nele eu tenho um projeto que possui pacotes que eu julgo interessante para esse tipo de abordagem:
- Bogus for .NET - gerar dados de exemplo sem dor de cabeça
- ConsoleTables - gerar uma tabela no console sem muito esforço
Se pintar mais alguma necessidade de pacote extra, eu atualizo o repositório.
Repositório
leandroats / vscode-csplayground
VSCode - C# Top Level Programs
Comandos utilizados para criar o projeto:
dotnet new console -n csplayground -f net5.0
dotnet add package Bogus --version 33.0.2
dotnet add package ConsoleTables --version 2.4.2
Links e Referências:
👉 VS2019 - Visual Studio 2019
👉 VSCode
👉 LINQPad
👉 ConsoleTables
👉 Bogus
👉 Post do Thomas Claudius Huber - Bem Completo
👉 Post do "Scott Hanselman"
👉 Post do Renato Groffe
Até a próxima! 👊
☕😊 Agora você pode apoiar comprando um café para mim