En este artículo vamos a repasar los pasos básicos para crear una sencilla aplicación con .NET Core para que puedas hacer una primera toma de contacto y comprobar lo sencillo que es empezar.
Para crear aplicaciones para .NET realmente tan solo necesitamos disponer de un compilador. Por ello, bastaría con descargarse desde Internet el .NET SDK (el Kit de desarrollo para .NET), que es gratuito y dispone de esos compiladores. Con ellos y un simple editor de texto, como el bloc de notas, ya podríamos crear nuestras aplicaciones con .NET.
Vamos a ver cómo se crea y se ejecuta una aplicación usando tan solo la línea de comandos, de modo que puedas hacerlo de manera simple y sin necesidad de herramientas adicionales (ni siquiera un editor). Podrás seguir estos pasos desde Windows, Linux o macOS, y funcionarán exactamente igual, aunque yo los voy a mostrar en Windows.
Al final del artículo se incluye un vídeo para verlo en acción en la práctica.
Antes de nada, asegúrate de tener instalado en tu sistema el SDK de .NET más reciente para tu plataforma (necesitarás permisos de administración para instalarlo):
Si estás en Windows y tienes un Visual Studio 2019 instalado en tu sistema, ya dispones de este SDK y no necesitas instalarlo. Sólo asegúrate de tener todo actualizado a las versiones más recientes.
Al realizar la instalación del SDK de .NET se instalan también las herramientas de línea de comandos necesarias, lo que nos posibilitará llevar a cabo la creación y compilación de nuestras aplicaciones desde la línea de comandos mediante la utilidad dotnet
que enseguida veremos.
Por tanto, una vez instalado podremos abrir una línea de comandos y llamar al comando dotnet --version
que nos devolverá la versión actual del SDK que estamos utilizando, y sabremos que todo está bien instalado y funcionando:
Por ejemplo, en mi caso estoy usando la versión 3.1.301 de .NET Core. Puedes usar este comando y todos los que veremos a continuación en PowerShell clásico, en PowerShell 7 para Windows, Linux o macOs, y por supuesto en cualquier terminal de Linux o macOs y el resultado será el mismo.
Crear un proyecto de .NET
El primer paso para crear una aplicación .NET es crear el proyecto. Para hacerlo, no es necesario ningún programa especial para crear el código de nuestra aplicación, siendo suficiente con el SDK de .NET y un editor de texto plano, por lo que lo haremos de este modo.
Para crear nuestro proyecto, bastará con realizar una llamada al comando dotnet
con el parámetro new
, indicando la plantilla que queremos emplear.
Pero, en primer lugar, veamos las plantillas que tenemos instaladas en nuestro sistema ejecutando dotnet new
sin ningún parámetro más, lo que nos devolverá algo similar a lo que se ve a continuación:
Si te fijas, podrás comprobar que tienes plantillas disponibles para crear multitud de tipos de proyectos, desde proyectos ASP.NET para desarrollo web, a proyectos de consola o aplicaciones WinForms entre otras muchas posibilidades.
Para continuar con nuestro ejemplo, vamos a generar un proyecto de tipo consola y veremos qué es lo que nos crea dentro de la carpeta del proyecto.
Según la plantilla que vayamos a utilizar, existen varias opciones y parámetros que se pueden definir al crear un proyecto, que dependen en cierto modo del proyecto en sí. Dichos parámetros pueden ser, desde cosas comunes como la carpeta del proyecto, hasta parámetros muy particulares como podría ser el tipo de autenticación a utilizar si se trata de un proyecto Web. No obstante, si no se indica nada, el sistema les dará los valores por defecto establecidos.
Si creamos un proyecto con valores por defecto, bastará llamar a dotnet new [NombrePlantilla]
para crearlo, utilizando el nombre corto de la plantilla que nos interese, sacado de la lista anterior.
Así que, muévete en tu terminal a alguna carpeta vacía de tu disco duro y escribe:
dotnet new console
En la siguiente imagen se puede ver cómo se crea el proyecto y los archivos y carpetas que contiene:
Nota: En Linux o macOS el comando para listar el contenido de la carpeta sería ls
y no dir
.
Esta plantilla de proyecto de consola, crea 2 ficheros y una carpeta:
- AppConsole.csproj: archivo con la definición del proyecto.
- Program.cs: fichero de texto con código C# en su interior. Contiene el método de entrada en el programa, y por defecto lo único que hace es imprimir por pantalla el texto: "Hello World!", un clásico de toda la vida 😉
- obj: carpeta con los objetos de compilación. Es una carpeta que utiliza .NET para llevar a cabo la compilación del programa.
No obstante, podríamos haber añadido parámetros que especificasen opciones a tener en cuenta a la hora de crear el proyecto. En el ejemplo anterior hemos creado la carpeta del proyecto y desde dentro hemos ejecutado el comando. El sistema ha tomado como uno de los valores por defecto el nombre del proyecto, que lo ha hecho coincidir con la carpeta en la que nos encontramos. Sin embargo, podríamos haber modificado este comportamiento mediante el parámetro -o
u --output
(son equivalentes), de forma que dotnet
crearía la carpeta con el nombre indicado a continuación de éste, y usaría ese nombre tanto para la carpeta como para el proyecto.
Ejecutando nuestro proyecto
De forma similar a la creación del proyecto tenemos disponible la opción de compilar y/o ejecutar nuestros proyectos con ayuda de dotnet
.
En el caso de nuestra aplicación de consola, tenemos dos opciones de ejecutarla.
-
dotnet run
desde la carpeta del proyecto o dotnet run --project <ruta_al_csproj>
, que realiza la compilación y ejecución inmediata del proyecto.
A continuación puedes ver la ejecución de ambos modos:
-
dotnet build
desde la carpeta del proyecto o dotnet build <ruta_al_csproj>
: únicamente compila el proyecto. Posteriormente podríamos ejecutar el fichero compilado o llevarlo a otra computadora para ejecutarlo.
En la siguiente imagen puedes ver cómo sería el resultado al compilar y luego ejecutar el .exe directamente desde la carpeta en la que se genera:
¡Ya has creado y ejecutado tu primera app de .NET Core!
Eso no es todo
La idea de este artículo era tan solo "romper el hielo" y ver cómo crear la aplicación más simple posible con .NET Core, desde la línea de comandos. Pero lógicamente no es lo único que se puede hacer, y a medida que aprendas más sobre la plataforma será necesario que utilices el comando dotnet
para más cosas.
Alguna de las principales funciones incluidas de serie que se pueden llevar a cabo con dotnet
son:
Comando |
Uso |
new |
Permite crear un nuevo proyecto |
restore |
Lleva a cabo la restauración de las dependencias |
build |
Compila el proyecto |
publish |
Copia a una carpeta el resultado de la compilación del proyecto, lista para distribuir |
run |
Compila y ejecuta el proyecto |
test |
Ejecuta las pruebas unitarias especificadas en el proyecto |
pack |
Crea un paquete NuGet para poder publicarlo |
nuget |
Permite gestionar la publicación del paquete NuGet en un servidor |
clean |
Limpia las carpetas de compilación del proyecto |
add |
Permite añadir paquetes NuGet y referencias al proyecto |
remove |
Permite eliminar paquetes NuGet y referencias al proyecto |
Del mismo modo existen comandos que tienen más niveles de profundidad, como puede ser nuget
, al que tendríamos que indicar si queremos realizar una inserción en el servidor o un borrado. Lo mismo ocurre con new
, que además de crear proyectos nos permite controlar las plantillas: añadirlas y eliminarlas, etc...
La herramienta dotnet
puede ampliarse dotándola de mayor funcionalidad mediante el modelo de extensibilidad del que dispone. Dicho de otra forma, es posible aumentar la cantidad de comandos disponibles en dotnet
bien, a nivel global mediante la adición de comandos en el sistema, o bien a nivel de proyecto mediante paquetes NuGet. Por ejemplo, para llevar a cabo la gestión de Entity Framework Core o EFCore, se nos añade el parámetro ef
, que nos permite hacer cosas como dotnet ef migrations list
, que muestra la lista de migraciones de Entity Framework (pero esto es un tema específico que no viene a cuento ahora).
Vídeo práctico
A continuación te dejo un vídeo práctico en el que te explico cómo funciona el comando dotnet
y vemos en acción todas las cosas que he comentado por escrito en el artículo:
Si te interesa la plataforma .NET y el lenguaje C#, tenemos el curso que necesitas: Desarrollo con la plataforma .NET Core 3 y C# 8.