Creación y Ejecución de Aplicaciones .NET Core en Consola
Resumen
Comienza fuerte con .NET: verifica el SDK, crea tu primera app de consola en C sharp y entiende cómo compilar y ejecutar en diferentes plataformas. Aquí dominas la CLI de dotnet, interpretas su estructura de proyecto, y distingues entre ejecución con dotnet y ejecutables nativos. Todo paso a paso, sin perder tiempo.
¿Cómo verificar el NetCore SDK y crear una app de consola?
Antes de programar, valida que la instalación funciona. En Windows se recomienda usar PowerShell, una consola moderna con soporte útil para desarrolladores. Escribe el comando base y confirma que la herramienta responde con ayuda en pantalla:
dotnet
Crea una aplicación de consola con la plantilla adecuada. La opción más directa es:
dotnet newconsole
Se generan automáticamente elementos clave del proyecto: la carpeta obj, el archivo de proyecto platzi.csprog y el código fuente principal program.cs. En este último verás instrucciones como using System, la definición de un namespace y de una class, y el cuerpo principal que imprime un mensaje. La ejecución es inmediata con:
dotnet run
La herramienta primero compila y luego ejecuta. Verás el resultado en consola con el clásico mensaje en inglés: Hello world.
¿Qué habilidades refuerzas al iniciar con dotnet?
Uso de la consola para desarrollo en Windows, macOS u otras plataformas.
Manejo de comandos básicos: dotnet, dotnet new, dotnet run.
Lectura de archivos generados por plantillas y comprensión de su propósito.
¿Qué archivos y carpetas genera dotnet y cómo se ejecuta?
El archivo platzi.cprog es XML y declara propiedades del proyecto: que es ejecutable, output type: exe, y el framework objetivo, por ejemplo NetCore dos punto uno. Esto ayuda cuando una empresa pide una versión específica del framework.
Para compilar explícitamente y crear artefactos, usa:
dotnet build
Si te equivocas al escribir, PowerShell te informa del error. Tras compilar aparece la carpeta bin junto a obj. Dentro de bin surge Debug y una subcarpeta con el framework objetivo, por ejemplo NetCore dos punto uno. Allí encuentras la pieza principal: Platzi.dll.
Ahora bien, hay dos formas de ejecutar:
Con la DLL genérica: dotnet Platzi.dll. Funcionará en Windows, Linux u OSX porque es el ejecutable genérico de NetCore.
Con dotnet run desde la carpeta del proyecto. Compila y ejecuta en un paso.
¿Qué diferencia hay entre run y ejecutar una DLL?
dotnet run compila y luego ejecuta. Útil durante desarrollo.
Ejecutar la DLL con dotnet usa lo ya compilado. Es más rápido cuando el binario está listo.
¿Qué información clave aporta el archivo de proyecto?
Tipo de salida como ejecutable. Facilita saber el propósito del proyecto.
Versión del framework objetivo. Evita incompatibilidades entre entornos.
¿Cómo compilar, generar ejecutables y usar parámetros clave?
Para un ejecutable nativo de Windows se usa una compilación especializada con configuración de Release y un runtime objetivo. Con la combinación de parámetros -c y -r se indica qué generar y para qué sistema operativo, por ejemplo Windows 10, x64. Esto crea una salida específica que incluye Platzi.exe en la carpeta bin/Release/Windows 10, x64. Al ejecutar Platzi.exe, el programa corre sin llamar a dotnet.
-c define la configuración: release para producción, debug para depuración.
-r define el sistema objetivo: por ejemplo Windows 10, x64.
Si intentas usar un .exe específico de Windows en Linux, no funcionará por el formato. En cambio, la DLL genérica sí puedes ejecutarla con dotnet en cualquier plataforma compatible con NetCore.
¿Cómo elegir la carpeta de salida al crear un proyecto?
Al crear la app de consola, puedes indicar la carpeta de destino con el parámetro output. Así generas, por ejemplo, una carpeta llamada Platzi Hello World y luego entras allí para ejecutar dotnet run desde el proyecto recién creado.
¿Qué flujo de trabajo práctico se recomienda?
Crear con dotnet new console en la carpeta deseada.
Probar rápido con dotnet run desde el proyecto.
Compilar con dotnet build para verificar artefactos en bin.
Generar binarios de producción con configuración release y un runtime objetivo cuando se necesite un ejecutable nativo.
¿Tienes dudas o un truco con la CLI de dotnet que te funcione mejor? Cuéntalo y enriquece la conversación con tu experiencia.
Para mirar todos los comandos que podemos usar: dotnet new
Para crear una aplicación de consola: dotnet new console
Para correr nuestra app: dotnet run
Para compilar nuestra app: dotnet build
Paa compilar para Windows10x64: dotnet build -c Release -r win10x64
Para crear una aplicación de consola indicando el nombre del proyecto: dotnet new console --output platziHelloWorld
en la penúltima instrucción te falto un ‘-’ entre el win10 y el x64, quedando
dotnet build -c Release -r win10-x64
Gracias
Dotnet - Es una herramienta para administrar código fuente .NET. De cierta manera es un un marco de trabajo que brinda una arquitectura básica para realizar programas utilizando en su principio tecnologías de Microsoft en entornos de Microsoft, con muchas facilidades para los desarrolladores.
En el caso de windows desde PowerShell en la consola de comandos se digitan los siguientes comandos:
dotnet , verificas que todo está instalado correctamente.
dotnet new , Verificas que la herramienta está correctamente instalada y te muestra una serie de instrucciones que puedes utilizar para crear aplicaciones con .Net.
dotnet new console , creas primera aplicación de consola, te generará tres archivos:
obj
platzi.csproj(proyecto de C-Sharp)Es un archivo xml donde te indica la versión de “netcorespp”
Program.cs(código fuente de C-Sharp)Nota-.Con el comando cat mas el nombre del archivo puedes visualizar que contiene cada uno de los archivos creado
dotnet new console --output , le indicas donde quieres que cree la aplicación
dotnet run , ejecuta el programa, inicia el proceso de compilación y analiza
dotnet run --projetc, cual programa deseo ejecutar d
dotnet build , compila, genera un ejecutable.
Se abre la carpeta bin hasta llegar al ejecutable.dll, es el ejecutable que ya tiene la lógica del programa para ejecutar se utiliza la siguiente instrucción: dotnet ejecutable.dll
El punto dll es universal para cualquier plataforma, ya está analizado y compilado.Es propia de netcore
dotnet build -c Release -r win10-x64, creas un .exe , lo optimizas para windows. Un ejecutable especial para Windows. En la carpeta de Release la abres hasta llegar al ejecutable.exe
Excelente resumen gracias
Gracias por el aporte!!!
Mi equipo tardó un par de minutos después de ejecutar el comando dotnet new console Por si a alguien más le pasa, no se espanten como yo. 😂
Esto tiene que ver con la ubicación del proyecto, en mi caso lo moví a una carpeta específica para el mismo y fue instantáneo
Me paso lo mismo
dotnet new console
dotnet run
dotnet build
dotnet build -c Release -r win10-x64
dotnet new console --output sample1
dotnet run --project sample1
Excelente Aporte
❗Verificar que la herramienta se instaló.
📌dotnet
❗Variantes (tipos de apps) que se pueden crear con el SDK .NET
📌dotnet new
❗Crear un nuevo proyecto
📌dotnet new console 💬 nueva aplicacion de consola
❗Crear un nuevo proyecto en una carpeta diferente a la actual
📌dotnet new console -output nombreDeLaCarpetaContenedoraDelProyecto
❗Verificar el contenido de un archivo
📌cat 💬 cat .\Program.cs
❗Compilar y ejecutar el proyecto
📌dotnet run
❗Genera el ejecutable del proyecto actual
📌dotnet build
💬 Almacena un archivo dll en bin/Debug que puede ser ejecutado con simplemente dotnet .\file.dll
💬 Funcionando en todas las plataformas
❗Genera un ejecutable .exe
📌dotnet build -c Release -r win10-x64
💬 -c que voy a generar condigo de producción o de depuración
💬Release (código de producción)
💬-r sistema operativo
💬win10-x64 sistema operativo Windows
Mis apuntes hasta aquí:
Crear nuevo proyecto
Al ingresar el comando dotnet new la consola muestra los tipos de proyectos que se pueden iniciar
Ejemplo: dotnet new console crea una aplicación de consola.
Al crear el proyecto, ser crear autmáticamente tres arhivos:
obj
nombreProyecto.csproj
Program.cs
Otra forma de generar el proyecto podría ser dotnet new console --output *nombreCarpeta*. Esto nos permite indicar el que lugar se desea generar el nuevo proyecto.
Ejecutar el proyecto
El comando dotnet run ejecuta la aplicación
Construir aplicación
dotnet build analiza y compila todo el código y genera el binario final.
Observaciones:
El archivo.dll es que archivo nativo que se puede ejecutar desde cualquier sistema operativo
dotnet *archivo.dll ejecuta el programa, pero a diferencia de build, directamente ejecuta sin analizar el código.*
Generando ejecutables especializas u optimizadas para un sistema en particular
El flag -c se utiliza para especificar si sera una versión de producción o desarrollo. Release es para producción.
El flag -r determina el sistema operativo objetivo y versión para la cual se desea optimizar el ejecutable.
Ejemplo: dotnet build -c Release -r win10-x64
gracias por tan buen aporte, me sirvieron mucho tus apuntes, buen resumen
✋Usuario trabajando con Windows 10 y ++.Net 6++: Iba bien hasta que tuve problemas para compilar con los pasos que me dictó el profesor
dotnet build -c Release-r win10-x64
Sin embargo (y gracias al curso de .NET previo en la ruta de backend con C#) pude solucionarlo así:
dotnet build --configuration release
Y listo, todo creado
Funcionó perfecto, gracias.
TENGO un error ayuda
Ubícate en una nueva carpeta y vuelve a crear el proyecto, a mi me paso porque intenté crear dos veces lo mismo pero cuando me pase a otra, se solucionó.
Para los que no sabían (como yo) pueden abrir powershell en windows dando click en botón inicio y escribir powershell. Una disculpa jaja pero no sabia. Pense debia descargarse
Sí, PowerShell para windows es la terminal para linux
The build failed. Fix the build errors and run again."
Cuando corro dotnet build -c Release -r win10-x64 me crea un montón de dlls que en el video no aparecen. Pero un montonazo.
Según he leído en dotnet core el principal objetivo era hacer el core del framework lo más pequeño posible, por lo que todo lo extra que necesites se trae de paquetes en NuGet.
Así que muchas dependencias que ya estaban en el framework ahora son paquetes en NuGet que tienen a su vez otras dependencias y por lo tanto terminas con un montón de librerías(dlls) en tu proyecto de salida.
Mira tus dependencias y elimina lo que no necesitas.
Puede que para facilitar y acelerar el aprendizaje se haya cortado esa parte del vídeo y por eso no se ven tantas dependencias.
Casi total mente correcto lo que menciona Erik, pero el motivo es la versión de net core que uses, en el curso era la 2. algo, actualmente es la 3.1 y como se menciona arriba muchas dependencias que estaban incluidas en el framework pasan a ser parte de nugets externos que se restauran al hacer la compilación.
Como veo que algunos curso de C# con .net estan muy desactualizadas, subo mi aporte todos los ejercicios de este curso en .net 6, que les ayude mucho
Muy cierto, en todo caso que recomiendas mi estimado, seguir con el curso o buscar otro mas actualizado.
he llevado muchos cursos desactualizados y he entendido que lo mas importante es saber los fundamentos ya que los ejemplos de cada curso aplican tambien en versiones nuevas.
tambien ayuda mucho usar google y youtube, que les vaya bien
Me sucedieron dos cosas diferentes, al hacer dotnet build ya me generó el archivo .exe junto al .dll y los demas. Al realizar el comando dotnet build -c Release -r win10-x64 me generó las carpetas pero una cantidad abrumadora de archivos adentro junto al .exe, tengo la version NET Core app 3.1
Desde lo poco que se, parece que esta adjuntando todas las librerías de C# que pueden utilizarse al generar una aplicación en .Net
Supongo que es por la opción release, ya que con eso le estamos indicando que necesitamos todas esas librerías ya que subiremos nuestra aplicación a producción. Independientemente de si las usamos o no.
con version net5.0 me pasó igual
Estos son algunos de los comandos de NET Core
Delimita los argumentos a dotnet run a partir de argumentos de la aplicación que se va a ejecutar. Todos los argumentos después de este delimitador se pasan a la aplicación que se ejecuta.
-c|–configuration {Debug|Release}
Define la configuración de compilación. El valor predeterminado es Debug.
-f|–framework <FRAMEWORK>
Compila y ejecuta la aplicación con el marco especificado. El marco debe especificarse en el archivo de proyecto.
–force
Fuerza la resolución de todas las dependencias, incluso si la última restauración se realizó correctamente. Especificar esta marca es lo mismo que eliminar el archivo project.assets.json.
-h|–help
Imprime una corta ayuda para el comando.
–launch-profile <NAME>
El nombre del perfil de inicio (si lo hay) que se usará al iniciar la aplicación. Los perfiles de inicio se definen en el archivo launchSettings.json y se suelen denominar Development, Staging y Production. Para obtener más información, consulte Working with multiple environments (Trabajo con varios entornos).
–no-build
No compila el proyecto antes de ejecutarlo. También establece la marca --no-restore de forma implícita.
–no-dependencies
Al restaurar un proyecto con referencias de proyecto a proyecto (P2P), se restaura el proyecto raíz y no las referencias.
–no-launch-profile
No intenta usar launchSettings.json para configurar la aplicación.
–no-restore
No ejecuta una restauración implícita al ejecutar el comando.
-p|–project <PATH>
Especifica la ruta de acceso del archivo del proyecto que se va a ejecutar (nombre de la carpeta o ruta de acceso completa). Si no se especifica, se toma como predeterminado el directorio actual.
–runtime <RUNTIME_IDENTIFIER>
Especifica el tiempo de ejecución de destino para el que restaurar los paquetes. Para obtener una lista de identificadores de tiempo de ejecución (RID), consulte el catálogo de RID.
-v|–verbosity <LEVEL>
Establece el nivel de detalle del comando. Los valores permitidos son q[uiet], m[inimal], n[ormal], d[etailed] y diag[nostic].
Una forma mas adecuada de ver estos comandos… dotnet-build
Para crear un proyecto de consola
dotnet new console -n "NOMBRE"dotnet new console -n " ProjectSQLAzure"
Para compilar el proyecto
dotnet run
Mi aporte:
Verificar instalación correcta de NET CORE según la plataforma (en el terminal):
dotnet
Crear proyecto por consola:
dotnet new console
(Se crean la aplicación de manera automatica los archivos)
cat .\Program.cs //Puedo ver el código del programa
Crear aplicacion en carpeta especifica:
dotnet new console -n “NOMBRE”
Ejemplo:
dotnet new console -n Ejemplo
Ejecutar el proyecto:
dotnet run
(Compila las fuentes y ejecuta)
Ejecutar proyecto especifico de una carpeta con multiples proyectos:
dotnet run --project Ejemplo
Compilar el proyecto:
dotnet build
(Compila el ejecutable, crea el directorio bin, dentro la carpeta Debug, el framework y el archivo .dll)
.dll es el ejecutable, es el que tiene incorporada la lógica de la aplicación, es el ejecutable nativo que corre en todas las plataformas
Ejecutar programa compilado:
dotnet .\ejemplo.dll
(Ejecuta el programa compilado más rapido)
Para crear un ejecutable o aplicación para un sistema operativo especifico, ejemplo windows:
Crear ejecutable según la plataforma:
donet build -c Release -r win10-x64
Release = producción
c = Indica que voy a generar código de produccion o de depuración
-r = Indica el sistema operativo
Tengo instalado Visual Studio 2019 pero deseo aprender con NET Core sdk, puedo tener ambos instalados en la misma maquina windows 10? o causará conflicto?
Sí puedes tener ambos instalados :D Yo tengo Visual Studio 2019, 2017, Net Core SDK 3.1, etc. Realmente ambos usarán el mismo recurso.
Aunque para serte sincero, luego de haber trabajado de esta forma, adaptando VSCode con extensiones y demás, me quedo con Visual Studio, sí es más pesado, pero te brinda más herramientas sin necesidad de hacer tanta configuración.
Esto fue lo que utilicé en mi caso para poder hacer el primer paso ya que me aparecieron varios errores :)
dotnet newconsole-o Platzicd Platzi```
Gracias! Me ayudo tu comentario porque también me esta saliendo varios errores.
Graicas por tu aporte fue de gran ayuda
una pregunta, como se hace para no escribir por ejemplo el nombre de las carpetas que se encuentran en una ubicación sino que aparezcan en la pantalla solo para escoger? Gracias 😄
Pecionando TAB
dotnet es una herramienta para administrar código fuente .NET . Expone comandos que realizan tareas específicas, como dotnet buildydotnet run. Cada comando define sus propios argumentos. Escriba --help después de cada comando para acceder a una breve documentación de ayuda.
dotnet se puede usar para ejecutar aplicaciones, especificando una DLL de aplicación,