Introducción a las aplicaciones de consola en C#
Una de las formas más básicas y accesibles de iniciarse en el desarrollo con C# es crear una aplicación de consola. Este artículo, inspirado en el detallado vídeo de Tim Corey y sus valiosos conocimientos sobre "Intro Console Apps in C# in .NET 6", le guiará a través de los aspectos básicos de la creación y comprensión de aplicaciones de consola en C#. Exploraremos la estructura, la funcionalidad y los componentes esenciales que hacen de las aplicaciones de consola un excelente punto de partida para principiantes y una potente herramienta para desarrolladores experimentados.
Tipo de aplicación de consola
Tim Corey comienza su vídeo destacando la importancia del tipo de aplicación de consola en C#. A pesar de que a menudo se pasan por alto, Tim afirma que se trata de uno de los tipos de proyecto más potentes del lenguaje. Recomienda a los principiantes que empiecen con aplicaciones de consola, y que se queden con ellas durante los primeros 50 proyectos de práctica (00:16). Estos conocimientos básicos son cruciales tanto para los principiantes como para los desarrolladores experimentados.
Demostración de Visual Studio: Creación y ejecución de una aplicación de consola .NET 6 sencilla
Tim pasa a una demostración práctica con Visual Studio 2022 Community Edition. Guía a los espectadores a través de la creación de un nuevo proyecto, concretamente una aplicación de consola .NET 6. Tim desaconseja el uso de las versiones anteriores de .NET Core o .NET Framework (1:26), y señala que la actualización a .NET 6 (1:49) es sencilla y ofrece importantes mejoras de rendimiento, ya que era la última versión de .NET en el momento en que realizó este vídeo. Actualmente, la última versión de .NET Framework es la 8.0 y siempre se recomienda utilizar la última versión, ya que proporciona soporte a largo plazo.

Después de crear el proyecto, Tim muestra cómo ejecutarlo (2:38), lo que resulta en una ventana de consola de símbolo del sistema que muestra la salida del programa "Hello World". Explica que esta salida es generada por el siguiente código:
// This line outputs "Hello, World!" to the console.
Console.WriteLine("Hello, World!");
// This line outputs "Hello, World!" to the console.
Console.WriteLine("Hello, World!");
En el minuto 3:10, también señala que, en modo de depuración, Visual Studio mantiene abierta la ventana de la consola hasta que se pulsa una tecla, mientras que si se ejecuta directamente el ejecutable, la ventana se cerraría inmediatamente después de la ejecución.
Nuevas "declaraciones de nivel superior" en .NET 6
Tim explica el concepto de sentencias de nivel superior, una nueva función de .NET 6 que simplifica las aplicaciones de consola eliminando el código repetitivo. En lugar de definir un espacio de nombres y un método estático void Main, los desarrolladores pueden ahora escribir código directamente en el nivel superior, lo que hace que el código sea más limpio y legible. Tim contrasta esto con las versiones anteriores de .NET, en las que se requería código adicional de espacio de nombres, programa de clase y método principal.
Ventana de la consola
Tim habla de la ventana de la consola, que sirve de interfaz de usuario para las aplicaciones de consola. Aunque no es visualmente atractiva como las interfaces gráficas de usuario (GUI), la ventana de la consola es una interfaz de usuario eficaz para las operaciones de entrada y salida. (5:25) reitera que el tipo de aplicación de consola es, de hecho, un tipo de proyecto de interfaz de usuario, a pesar de su simplicidad.
Clase de consola
A continuación, Tim se centra en las funcionalidades que ofrece la clase Console. Él diferencia entre Console.WriteLine y Console.Write, ilustrando cómo WriteLine agrega un carácter de nueva línea al final de la salida, mientras que Write no lo hace. Demuestra estas diferencias a través de ejemplos de código, resaltando cómo se puede capturar la entrada del usuario utilizando Console.ReadLine.
// Prompt the user to enter their first name and read the input
Console.Write("What is your first name: ");
string? firstName = Console.ReadLine();
// Output the entered first name to the console
Console.WriteLine($"Your first name is {firstName}");
// Prompt the user to enter their first name and read the input
Console.Write("What is your first name: ");
string? firstName = Console.ReadLine();
// Output the entered first name to the console
Console.WriteLine($"Your first name is {firstName}");
En el código anterior (7:29), Tim ofrece un ejemplo práctico en el que pide al usuario su nombre de pila, lee la entrada y luego la muestra. Observe que usa el método Write en lugar de WriteLine. Esto mantiene el cursor en la misma línea, lo que hace más apropiado que el usuario introduzca el valor justo después del mensaje en lugar de pasar a la línea siguiente. Cuando el usuario introduce el nombre y pulsa intro, sólo entonces pasa a la línea siguiente para imprimir el mensaje junto con su nombre.
A las 9:23, también introduce la idea de usar Console.ReadLine al final de la aplicación para evitar que la ventana de la consola se cierre inmediatamente, permitiendo a los usuarios ver la salida final antes de que la aplicación termine. Esto se debe a que los archivos ejecutables abiertos fuera de Visual Studio se cierran inmediatamente después de mostrar los mensajes, como lo demuestra Tim a las 10:28, si no hay un método Console.ReadLine al final.
Por qué las aplicaciones de consola y cuándo usarlas
Tim habla sobre el uso de aplicaciones de consola, con muchos ejemplos claros, explicaciones exhaustivas y razones incluidas aquí:
1. Fácil de aprender C# usando aplicaciones de consola:
Tim hace hincapié en que las aplicaciones de consola son ideales para que los principiantes aprendan C#. Permiten a los alumnos centrarse en las características básicas del lenguaje sin distraerse con interfaces de usuario complejas. Puedes aprender desde los conceptos básicos de C# como variables, tipos de datos, if-else, bucles, y todo el camino hasta la programación orientada a objetos en las aplicaciones de consola. Tim menciona en el minuto 12:45 que su Curso magistral de C# utiliza mucho las aplicaciones de consola para enseñar conceptos básicos y avanzados de C#.
Tim destaca una ventaja clave de usar el tipo de aplicación Console a las 13:43. Menciona que solo se utilizan 3 métodos (WriteLine, Write, ReadLine) para interactuar con la ventana de la consola. Esto ayuda a aprender más rápido y centrarse más en el aprendizaje de los conceptos y la lógica de construcción que en la construcción de algunos diseños de interfaz gráfica de usuario front-end de fantasía.
2. Aplicaciones rápidas:
Las aplicaciones de consola son perfectas para implementar rápidamente pequeños programas o proyectos de prueba de concepto. Permiten desarrollar y probar ideas rápidamente sin la sobrecarga de otros tipos de proyectos más complejos.
3. Automatización:
Tim destaca la importancia de las aplicaciones de consola en la automatización. Son esenciales para los procesos DevOps, la integración continua y el despliegue continuo. Muchas tareas automatizadas, incluidas las que realiza Visual Studio durante el proceso de compilación, se basan en aplicaciones de consola. Tim, en el minuto 19:17, comparte su experiencia como director de TI, donde utilizó PowerShell, una herramienta basada en consola, para automatizar tareas de gestión de servidores.
Aplicaciones web como aplicaciones de consola
Tim concluye el vídeo con una idea interesante: las aplicaciones web en .NET son básicamente aplicaciones de consola. Al demostrar cómo crear una nueva aplicación web en Visual Studio y examinar sus propiedades, Tim muestra en el minuto 23:26 que el tipo de proyecto subyacente es una aplicación de consola. Esto pone de relieve la versatilidad y la importancia fundamental de las aplicaciones de consola en el ecosistema .NET.
Descubra los tipos de proyectos
Por último, Tim ofrece una visión general de los distintos tipos de proyectos de C# disponibles en el sitio web csharpprojects.com. Tim hace hincapié en la importancia de seleccionar el tipo de proyecto adecuado en función de los requisitos específicos de su escenario, en lugar de limitarse a seguir las tendencias del sector.
En el minuto 26:49, señala que Microsoft admite seis tipos principales de aplicaciones de escritorio: WinForms, WPF, UWP, .NET MAUI, Blazor Hybrid y aplicaciones de consola. Señala que la elección de la más adecuada depende de la situación específica a la que te enfrentes. Por ejemplo, mientras que WinForms y WPF son tipos de aplicaciones de escritorio tradicionales, UWP está obsoleta pero fue valiosa en cierto momento.
En el minuto 27:27, aconseja seleccionar el tipo de proyecto que mejor se adapte al escenario dado. Tim también anima a los espectadores a visitar csharpprojects.com para leer las sencillas descripciones de cada tipo de proyecto y ver los vídeos introductorios para comprenderlo mejor.
En el minuto 27:49, Tim destaca que algunos tipos de proyectos abarcan varias categorías. Por ejemplo, las aplicaciones de consola también pueden clasificarse dentro de los servicios porque pueden funcionar sin la intervención del usuario, lo que las hace adecuadas para tareas de automatización.
Conclusión
La creación de aplicaciones de consola en C# es un paso fundamental para cualquier desarrollador, ya que ofrece una forma sencilla de comprender los conceptos básicos de programación y construir una base sólida. El vídeo de Tim Corey, "Intro to Console Apps in C# in .NET 6", ofrece una excelente guía para comprender la importancia, la estructura y los casos de uso de las aplicaciones de consola.
Para obtener más información y tutoriales detallados sobre C# y otros tipos de proyectos, visita el canal de YouTube de Tim Corey, IAmTimCorey.


