Script em C# e Execução de Arquivo no .NET 10: Um Mergulho Profundo com Tim Corey
C# tradicionalmente tem sido uma linguagem compilada, exigindo um projeto, solução e configuração do Visual Studio para executar até os programas mais simples. Com o .NET 10, no entanto, as coisas mudaram dramaticamente. Tim Corey, em seu vídeo sobre C# scripting e execução de arquivo, demonstra como os desenvolvedores agora podem tratar C# como uma linguagem script, executando arquivos script diretamente sem criar um projeto completo. Essa nova habilidade permite aos programadores escrever código script em um único arquivo cs, executá-lo a partir do prompt de comando e experimentar rapidamente com código novo.
Neste artigo, exploraremos essas funcionalidades em detalhe, seguindo a orientação de Tim para entender o workflow, uso da linha de comando, e capacidades avançadas de execução de arquivos C#.
Introduction to C# Scripting in .NET 10
Tim começa o vídeo destacando que o scripting em C# no .NET 10 permite que um único arquivo cs atue como uma aplicação completa. Ao contrário dos projetos tradicionais do Visual Studio, não há necessidade de declarações de classe pública, um Program.cs, ou um arquivo de solução. Agora você pode escrever um script, salvá-lo como demo.cs, e executá-lo imediatamente.
Essa abordagem é semelhante ao scripting em Python ou JavaScript, onde um único arquivo pode realizar tarefas sem criar um projeto. Tim enfatiza que isso é mais do que apenas conveniência—proporciona a capacidade de executar tarefas, testar declarações e experimentar rapidamente com objetos ou dados.
Criando Seu Primeiro Arquivo Script
Tim demonstra a criação de um arquivo cs simples chamado FileDemo.cs no Visual Studio Code. O código a seguir serve como um exemplo clássico de "hello world":
Console.WriteLine("Hello World");
Executar o arquivo é tão simples quanto abrir o prompt de comando e executar:
dotnet run FileDemo.cs
A saída exibe Hello World instantaneamente, mostrando que mesmo a execução em tempo real de um único arquivo é totalmente suportada. Tim observa que essa abordagem é ideal para o teste de novos códigos, pequenos scripts ou situações onde o overhead de um projeto completo é desnecessário.
Manipulando Entrada de Linha de Comando e Argumentos
Tim então demonstra a capacidade de aceitar argumentos de linha de comando em um código de script. Modificando o exemplo hello world, você pode passar um valor diretamente para o arquivo de script:
Console.WriteLine($"Hello {args[0]}");
Quando você executa dotnet run demo.cs Tim, a saída se torna Hello Tim. Tim aponta que o array args funciona exatamente como em uma aplicação console tradicional, mostrando que scripts baseados em arquivo são aplicações C# completas, com todas as capacidades da linguagem.
Sintaxe Simplificada e Usings Implícitos
Tim explica que o .NET 10 suporta diretivas using implícitas, significando que você pode acessar namespaces do System sem escrever explicitamente using System;. Isso reduz a sintaxe boilerplate e permite que o primeiro objeto ou método em seu script seja executado imediatamente.
Essa simplificação se estende às extensões de arquivo csx e fluxos de trabalho de janela interativa no Visual Studio Code, onde os desenvolvedores podem testar o código de script linha por linha usando janelas REPL ou a janela interativa, semelhante ao scripting em Python.
Entrada Interativa do Usuário
Em seguida, Tim mostra como tornar os scripts interativos lendo a entrada do usuário:
Console.Write("Qual é o seu nome? ");
string name = Console.ReadLine();
Console.WriteLine($"Hello {name}");
Aqui, o primeiro objeto de interação é a string name, que pode ser acessada e exibida imediatamente. Tim observa que podem aparecer avisos de nulidade, mas podem ser tratados adequadamente. Essa habilidade de ler entrada e exibir saída torna os arquivos de script versáteis e práticos para tarefas além de códigos de demonstração simples.
Usando Pacotes NuGet em Scripts
Para estender as capacidades de tempo de execução de um arquivo de script, Tim introduz pacotes NuGet. Por exemplo, usando Spectre.Console, você pode formatar a saída com cor:
#r "nuget: Spectre.Console, 0.54.0"
using Spectre.Console;
AnsiConsole.MarkupLine("[red]Hello Tim[/]");
Tim explica que adicionar referências via pacotes NuGet em código de script permite que os desenvolvedores utilizem assemblies externos sem um projeto completo. Ele demonstra executar o script e ver o console exibir o nome do usuário em vermelho, mostrando como scripts baseados em arquivos podem ser tão poderosos quanto projetos completos.
Publicando Scripts como Executáveis
Tim também abrange a criação de executáveis a partir de arquivos cs. Executando:
dotnet publish Filedemo.cs
você pode gerar um DLL ou EXE para Windows, Linux ou Mac, tornando o arquivo do script portátil. Ele destaca que esses executáveis são Native AOT, proporcionando máximo desempenho em tempo de execução. Se necessário, a propriedade AOT pode ser desativada usando uma diretiva de propriedade no topo do arquivo.
Isso demonstra a capacidade do roteiro .NET 10 de produzir arquivos prontos para produção enquanto mantém a sintaxe simples.
Convertendo Scripts em Projetos Completos
Para aplicativos mais complexos que exigem várias classes, métodos ou objetos, Tim mostra como converter um arquivo de script em um projeto completo:
dotnet project convert FileDemo.cs
Este comando cria uma nova pasta contendo um arquivo de projeto CS, preservando referências de pacotes NuGet, configurações anuláveis e usings implícitos. O seguinte código do script original é mantido, facilitando a integração em uma solução do Visual Studio ou execução como um projeto independente.
Principais Vantagens do Script Baseado em Arquivo
Tim destaca várias vantagens da execução de scripts em C# e execução de arquivos:
-
Velocidade – Execute novo código imediatamente a partir de arquivos de script.
-
Portabilidade – Publique scripts como executáveis para Windows, Linux ou macOS.
-
Poder – Scripts podem usar pacotes NuGet, acessar dados e lidar com entrada do usuário.
-
Flexibilidade – Promova arquivos cs a projetos completos com esforço mínimo.
- Redução de Sobrecarga – Não há necessidade de declarações de solução, projeto ou classe para tarefas simples.
Tim observa que, embora scripts baseados em arquivo não sejam adequados para todos os cenários, são perfeitos para testes, demonstrações e tarefas rápidas baseadas em console.
Conclusão
O vídeo de Tim Corey ilustra que o roteiro em C# no .NET 10 é uma ferramenta poderosa e flexível para desenvolvedores. Arquivos de script permitem execução imediata de novo código, gerenciamento de entrada de usuário, interação com objetos e uso de pacotes NuGet. Scripts podem ser executados a partir do prompt de comando, executados no Visual Studio Code ou publicados como DLLs ou EXEs para uso em várias plataformas.
A capacidade de converter código de script em um projeto completo oferece o melhor dos dois mundos: a simplicidade de um arquivo de script com a extensibilidade de um projeto tradicional do Visual Studio. Tim incentiva os desenvolvedores a escrever, testar e modificar o código de script livremente, tornando o roteiro em C# uma ferramenta valiosa para desenvolvimento rápido e experimentação.
Como Tim resume, este método é ideal para pequenos projetos, aplicativos de console e tarefas de processamento de dados, proporcionando um fluxo de trabalho moderno e eficiente que complementa o desenvolvimento tradicional em C#.
