Saltar al pie de página
Iron Academy Logo
Scripting en C# y .NET CLI

Scripting en C# y Ejecución de Archivos en .NET 10: Exploración Profunda con Tim Corey

Tim Corey
14m 10s

C# ha sido tradicionalmente un lenguaje compilado, requiriendo un proyecto, solución y configuración de Visual Studio para ejecutar incluso los programas más simples. Con .NET 10, sin embargo, las cosas han cambiado dramáticamente. Tim Corey, en su video sobre scripting y ejecución de archivos en C#, demuestra cómo los desarrolladores ahora pueden tratar a C# como un lenguaje de scripting, ejecutando archivos de script directamente sin crear un proyecto completo. Esta nueva capacidad permite a los programadores escribir código de script en un solo archivo cs, ejecutarlo desde el símbolo del sistema y experimentar rápidamente con nuevo código.

En este artículo, exploraremos estas características en detalle, siguiendo la guía de Tim para comprender el flujo de trabajo, uso de la línea de comandos, y capacidades avanzadas de la ejecución de archivos en C#.

Introduction to C# Scripting in .NET 10

Tim comienza el video destacando que el scripting de C# en .NET 10 permite que un solo archivo cs actúe como una aplicación completa. A diferencia de los proyectos tradicionales de Visual Studio, no hay necesidad de declaraciones de clase pública, un Program.cs, o un archivo de solución. Ahora puedes escribir un script, guardarlo como demo.cs y ejecutarlo inmediatamente.

Este enfoque es similar al scripting en Python o JavaScript, donde un solo archivo puede realizar tareas sin crear un proyecto. Tim enfatiza que esto es más que solo conveniencia—proporciona la capacidad de ejecutar tareas, probar sentencias y experimentar con objetos o datos rápidamente.

Creando Tu Primer Archivo de Script

Tim demuestra cómo crear un archivo cs simple llamado FileDemo.cs en Visual Studio Code. El siguiente código sirve como un ejemplo clásico de "hola mundo":

Console.WriteLine("Hello World");

Ejecutar el archivo es tan sencillo como abrir el símbolo del sistema y ejecutar:

dotnet run FileDemo.cs

La salida muestra Hello World instantáneamente, demostrando que incluso la ejecución en tiempo de ejecución de un solo archivo está completamente soportada. Tim señala que este enfoque es ideal para la prueba de nuevo código, scripts pequeños o situaciones donde el gasto general de un proyecto completo es innecesario.

Manejo de Entrada y Argumentos de la Línea de Comandos

Tim luego demuestra la capacidad de aceptar argumentos de línea de comandos en un código de script. Al modificar el ejemplo de hola mundo, puedes pasar un valor directamente al archivo de script:

Console.WriteLine($"Hello {args[0]}");

Cuando ejecutas dotnet run demo.cs Tim, la salida se convierte en Hello Tim. Tim señala que la matriz args funciona exactamente como en una aplicación de consola tradicional, demostrando que los scripts basados en archivos son aplicaciones C# completas con todas las capacidades del lenguaje.

Sintaxis Simplificada y Usings Implícitos

Tim explica que .NET 10 soporta directivas using implícitas, lo que significa que puedes acceder a espacios de nombres System sin escribir explícitamente using System;. Esto reduce la sintaxis extendida y permite que el primer objeto o método en tu script se ejecute de inmediato.

Esta simplificación se extiende a extensiones de archivo csx y flujos de trabajo de ventana interactiva en Visual Studio Code, donde los desarrolladores pueden probar el código de script línea por línea usando ventanas REPL o la ventana interactiva, similar al scripting en Python.

Entrada de Usuario Interactiva

A continuación, Tim muestra cómo hacer que los scripts sean interactivos leyendo la entrada del usuario:

Console.Write("¿Cuál es tu nombre? ");
string name = Console.ReadLine();
Console.WriteLine($"Hello {name}");

Aquí, el primer objeto de interacción es la cadena name, que puede ser accedida y mostrada inmediatamente. Tim señala que pueden aparecer advertencias de nulabilidad, pero pueden manejarse adecuadamente. Esta capacidad de leer entradas y mostrar salidas hace que los archivos de script sean versátiles y prácticos para tareas más allá del código de demostración simple.

Usando Paquetes NuGet en Scripts

Para extender las capacidades de ejecución de un archivo de script, Tim introduce paquetes NuGet. Por ejemplo, usando Spectre.Console, puedes formatear la salida con color:

#r "nuget: Spectre.Console, 0.54.0"
using Spectre.Console;

AnsiConsole.MarkupLine("[red]Hello Tim[/]");

Tim explica que agregar referencias a través de paquetes NuGet en el código del script permite a los desarrolladores aprovechar ensamblados externos sin un proyecto completo. Demuestra la ejecución del script y ver cómo la consola muestra el nombre del usuario en rojo, mostrando cómo los scripts basados en archivos pueden ser tan poderosos como proyectos completos.

Publicando Scripts como Ejecutables

Tim también cubre la creación de ejecutables desde archivos cs. Ejecutando:

dotnet publish Filedemo.cs

puedes generar un DLL o EXE para Windows, Linux o Mac, haciendo que el archivo de script sea portátil. Resalta que estos ejecutables son Native AOT, brindando el máximo rendimiento en tiempo de ejecución. Si es necesario, la propiedad AOT se puede desactivar usando una directiva de propiedad en la parte superior del archivo.

Esto demuestra la capacidad del scripting en .NET 10 para producir archivos listos para producción manteniendo la sintaxis simple.

Convirtiendo Scripts a Proyectos Completos

Para aplicaciones más complejas que requieren múltiples clases, métodos u objetos, Tim muestra cómo convertir un archivo de script en un proyecto completo:

dotnet project convert FileDemo.cs

Este comando crea una nueva carpeta que contiene un archivo de proyecto CS, preservando referencias de paquetes NuGet, configuraciones de nulabilidad y usings implícitos. El siguiente código del script original se conserva, lo que facilita su integración en una solución de Visual Studio o su ejecución como un proyecto independiente.

Ventajas clave de la programación basada en archivos

Tim destaca varias ventajas de la programación en C# y la ejecución de archivos:

  1. Velocidad: Ejecuta un nuevo código inmediatamente desde archivos de script.

  2. Portabilidad: Publica scripts como ejecutables para Windows, Linux o macOS.

  3. Potencia: Los scripts pueden usar paquetes NuGet, acceder a datos y manejar la entrada del usuario.

  4. Flexibilidad: Promociona archivos cs a proyectos completos con un esfuerzo mínimo.

  5. Menor sobrecarga: No es necesario declarar soluciones, proyectos o clases para tareas simples.

Tim señala que, aunque los scripts basados en archivos no son adecuados para todos los escenarios, son perfectos para pruebas, demostraciones y tareas rápidas basadas en consola.

Conclusión

El video de Tim Corey ilustra que la programación en C# de .NET 10 es una herramienta poderosa y flexible para los desarrolladores. Los archivos de script permiten la ejecución inmediata de nuevo código, manejando la entrada del usuario, interactuando con objetos y usando paquetes NuGet. Los scripts se pueden ejecutar desde el símbolo del sistema, ejecutar en Visual Studio Code, o publicarse como DLLs o EXEs para uso multiplataforma.

La capacidad de convertir código de script en un proyecto completo proporciona lo mejor de ambos mundos: la simplicidad de un archivo de script con la extensibilidad de un proyecto tradicional de Visual Studio. Tim anima a los desarrolladores a escribir, probar y modificar código de script libremente, haciendo de la programación en C# una herramienta valiosa para el desarrollo rápido y la experimentación.

Como resume Tim, este método es ideal para pequeños proyectos, aplicaciones de consola y tareas de procesamiento de datos, proporcionando un flujo de trabajo moderno y eficiente que complementa el desarrollo tradicional en C#.

Hero Worlddot related to Scripting en C# y Ejecución de Archivos en .NET 10: Exploración Profunda con Tim Corey
Hero Affiliate related to Scripting en C# y Ejecución de Archivos en .NET 10: Exploración Profunda con Tim Corey

Gana más compartiendo lo que te gusta

¿Creas contenidos para desarrolladores que trabajan con .NET, C#, Java, Python o Node.js? ¡Convierte tu experiencia en un ingreso extra!

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame