Saltar al pie de página
Iron Academy Logo
Aplicación C#
Aplicación C#

Otras categorías

Introducción a Spectre.Console en C#: Cree Hermosas Aplicaciones de Consola Fácilmente - Con Tim Corey

Tim Corey
9m 44s

Si usted es un desarrollador .NET que desea crear aplicaciones de consola atractivas, la biblioteca Spectre.Console C# le ofrece una forma sencilla y potente de enriquecer sus interfaces de terminal. En su serie Spectre.Console, Tim Corey ofrece un recorrido paso a paso, desde la configuración inicial hasta el uso de las principales funciones de la biblioteca, como barras de progreso, tablas, avisos interactivos e incluso imágenes ASCII.

En este artículo, seguiremos el vídeo de Tim sobre "Initial Setup and Best Practices - Spectre Console Series", utilizando su flujo exacto y sus ideas. Aprenderá a añadir el paquete NuGet, a configurar su aplicación de consola en Visual Studio y a evitar errores comunes al trabajar con el estilo del texto y las capacidades del terminal actual.

¡Empecemos!

Instalación de Spectre.Console a través del gestor de paquetes NuGet

Tim comienza con un nuevo proyecto .NET que utiliza .NET 9. Dentro de Visual Studio, navega hasta Visual Studio. Dentro de Visual Studio, navega hasta el gestor de paquetes NuGet y busca "Spectre". El objetivo es instalar el paquete Spectre.Console, que no debe confundirse con las variantes CLI o JSON.

Aunque la versión actual en ese momento es la 0.50.0, Tim nos asegura que la biblioteca está madura y lista para la producción, aunque no esté marcada como 1.0. Se trata de una biblioteca .NET que facilita la creación de una salida estructurada y atractiva en el terminal.

Tras la instalación, incluye la directiva en la parte superior del archivo:

using Spectre.Console;
using Spectre.Console;

Esto permite acceder a funciones básicas como AnsiConsole.MarkupLine, pantallas de progreso y avisos interactivos.

Crear su primera salida de consola con estilo

Para confirmar que todo funciona, Tim escribe una salida sencilla utilizando el sistema de marcado de Spectre:

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

Esto sustituye al básico Console.WriteLine() por una opción de salida mucho más flexible que admite estilos como negrita, cursiva, subrayado y color. En este ejemplo se utiliza texto en negrita roja para mostrar cómo Spectre.Console facilita la creación de hermosas aplicaciones de consola.

Demostración de estilos de texto y efectos animados

Tim añade dos líneas más: un Hello World normal y otro con un efecto de parpadeo lento utilizando las capacidades de marcado de Spectre. En ellas se muestra cómo la biblioteca puede mostrar spinners animados y texto dinámico, una función estupenda para tareas de larga duración y controles de estado.

Puede utilizar estilos como

  • [negrita subrayado verde]Success[/\]

  • \Loading...Loading...Loading...Loading...Loading...Loading...Loading...Loading...Loading...Loading...Loading...Loading..

  • \Por favor, espere..

Estas opciones admiten caracteres Unicode, lo que hace que Spectre.Console sea ideal para presentar información de forma atractiva, sin ningún marco de interfaz gráfica de usuario.

Estructuración de la aplicación de consola con etiquetas de configuración

Tim organiza el código marcando la lección actual con un comentario:

// Lesson 2: Initial Setup
// Lesson 2: Initial Setup

Esta estructura ayuda a mantener el proyecto a través de múltiples lecciones. También añade:

Console.ReadLine();
AnsiConsole.Clear();
Console.ReadLine();
AnsiConsole.Clear();

Esto detiene la salida para que el usuario pueda ver el resultado y, a continuación, borra el terminal después de pulsar Intro, manteniendo la interfaz limpia para la siguiente ejecución.

Entender las diferencias entre Terminal y Shell

A continuación, Tim explica cómo afectan las capacidades del terminal actual a la salida de Spectre.Console. Distingue entre:

  • Shell (por ejemplo, PowerShell o CMD): El procesador de comandos.

  • Terminal (por ejemplo, terminal de Windows): El contenedor visual que muestra la salida del shell.

Esta distinción es importante porque Spectre.Console depende del terminal para representar los estilos. Si tu terminal no admite texto parpadeante o en negrita, es posible que no veas los resultados esperados, aunque tu código sea correcto.

Configuración de los ajustes de fuente y pantalla en el terminal de Windows

Para activar funciones de estilo de texto como la negrita, el subrayado y los colores, Tim explica la configuración de Windows Terminal:

  1. Fuente: Código Cascadia, que admite funciones de consola modernas como negrita, Unicode e imágenes ASCII.

  2. Formato de texto: En Formato de texto → Estilo de texto intenso, cambie de Colores brillantes a Fuente negrita.

Estas configuraciones garantizan que su aplicación Spectre.Console pueda mostrar texto en negrita, cursiva, parpadeante y en color tal y como está previsto.

Cómo solucionar los problemas de parpadeo mediante la configuración de accesibilidad

Si los estilos de parpadeo no funcionan, Tim recomienda comprobar la configuración de accesibilidad de Windows:

  • Ir a Accesibilidad → Efectos visuales

  • Activar efectos de animación

Sin esto, la consola no mostrará spinners animados ni texto parpadeante. Estos pequeños cambios suponen una gran diferencia a la hora de mostrar el progreso o resaltar estados en tu aplicación.

Ejecutar su aplicación con el contexto de terminal correcto

Para asegurarse de que todo se ejecuta correctamente, Tim copia la ruta completa a su proyecto .NET, navega hasta él a través de la línea de comandos y lo ejecuta:

dotnet run

Esto es útil para probar cómo se comportan los diferentes shells. Por ejemplo, PowerShell puede mostrar las barras de progreso de forma diferente a Git Bash o CMD.

Aquí también se pueden explorar las funciones de autodetección y experimentar con el renderizado:

  • Una nueva tabla usando var table = new Table();

  • Un gráfico de barras horizontales utilizando var chart = new BarChart();

  • Incluso datos tabulares o imágenes ASCII con fines decorativos

Tim anima a probar varias salidas, que se tratarán en futuras lecciones.

Pensamientos finales - Próximos pasos en Spectre.Console C

Tim concluye la configuración inicial destacando que Spectre.Console se inspira en gran medida en la excelente biblioteca Rich, escrita en Python. Asegura que esta biblioteca .NET es totalmente capaz de renderizar:

  • Texto con estilo

  • Mensajes interactivos

  • Análisis sintáctico de argumentos de línea de comandos

  • Indicadores de estado

  • E incluso admite pruebas unitarias e inyección de dependencias

Tanto si maneja argumentos de línea de comandos con el contexto CommandContext, como si utiliza la clase pública Settings para definir opciones de usuario, Spectre.Console se adapta a la complejidad de su proyecto.

Conclusión

Como muestra Tim Corey en su vídeo, Spectre.Console es una potente biblioteca que hace que las aplicaciones de consola de C# sean bonitas e interactivas. Desde la configuración en Visual Studio hasta el ajuste de su terminal para una renderización adecuada, cada paso es crucial para liberar todo el potencial de esta herramienta.

Si desea mostrar el progreso, datos tabulares de salida, el uso de imágenes ASCII, o simplemente mejorar las interacciones de línea de comandos, Spectre.Console es la biblioteca para saber. Con una configuración cuidadosa y una comprensión de su terminal, podrá crear aplicaciones de consola de nivel profesional directamente en .NET.

Para obtener el código fuente completo y más tutoriales, visite IAmTimCorey.com y continúe con la serie Spectre.Console para una integración más profunda en su próximo proyecto.

Hero Worlddot related to Introducción a Spectre.Console en C#: Cree Hermosas Aplicaciones de Consola Fácilmente - Con ...
Hero Affiliate related to Introducción a Spectre.Console en C#: Cree Hermosas Aplicaciones de Consola Fácilmente - Con...

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