Tipos de proyectos de ASP.NET Core
Una aplicación de ASP.NET Core no es más que una aplicación de consola que ejecuta un servidor web en el método Main
. En este artículo describo los tipos de proyectos disponibles con el SDK de dotnet.
Todo comienza con el comando dotnet new
por lo que es importante saber cuales son las opciones disponibles para el mismo . Invocaremos la ayuda sobre mediante la instrucción dotnet new --help
en la consola o terminal. La salida se muestra en lo siguiente:
Hay varias observaciones para esta salida:
-
Las opciones tienen una forma corta precedida por un guion medio
-h
y una forma larga precedida por dos guiones medios--help
. Es decir, es equivalentedotnet new --help
adotnet new -h
. -
Las opciones que me parecen importantes son :
--name
Permite especificar el nombre del proyecto--output
Permite especifica la ubicación de los archivos de salida--install
Permite extender el sistema de plantillas. El escenario me viene a la mente que se pueden crear plantillas personalizadas con las políticas establecidas de tal forma que permitan reutilizar código.--type
permite mostrar los diferentes tipos de plantillas:project
,items
yothers
--language
Permite elegir el lenguaje de programación para algunas plantillas puede ser C# , VB o F#. -
Cada plantilla de proyecto contiene un nombre corto, por ejemplo, mvc, web , webapp o webapi y este nombre corto se usa como argumento para el comando
dotnet new <nombre_corto>
. -
Se pueden crear proyectos de las plantillas mvc, web y webapi usando los lenguajes de programación C# o F#.
Los proyectos de NET Core
Las plantillas instaladas en el SDK de .NET Core incluyen proyectos para aplicaciones de consola, librearías DLL , Interfaces gráficas, pruebas unitarias y servicios.
Plantillas Nombre corto Lenguaje Etiquetas
----------------------------------------------------------------------------------------------------------------------------------
Console Application console [C#], F#, VB Common/Console
Class library classlib [C#], F#, VB Common/Library
WPF Application wpf [C#] Common/WPF
WPF Class library wpflib [C#] Common/WPF
WPF Custom Control Library wpfcustomcontrollib [C#] Common/WPF
WPF User Control Library wpfusercontrollib [C#] Common/WPF
Windows Forms (WinForms) Application winforms [C#] Common/WinForms
Windows Forms (WinForms) Class library winformslib [C#] Common/WinForms
Worker Service worker [C#] Common/Worker/Web
Unit Test Project mstest [C#], F#, VB Test/MSTest
NUnit 3 Test Project nunit [C#], F#, VB Test/NUnit
xUnit Test Project xunit [C#], F#, VB Test/xUnit
Los proyectos web de ASP.NET Core
Podemos clasificar los tipos de proyectos de ASP.NET Core en las siguientes categorías:
- Aplicaciones web tradicionales basadas en MVC y Web API
- Aplicaciones web tradicionales basadas en Razor Pages,
- Aplicaciones de una sola página con C# usando Blazor,
- Aplicaciones una sola página (SPA ) con Javascript. Estas requieren tener instalado Node.js
Veamos los tipos de proyectos disponibles y como crear un proyecto. Puedes ejecutar el comando dotnet new --type project
para revisar las plantillas de proyecto que tienes instaladas: En este caso mostramos solo las de tipo web, observa que especifican los lenguajes de programación para los que las plantillas de proyecto están disponibles.
Plantillas Nombre corto Idioma Etiquetas
----------------------------------------------------------------------------------------------------------------------------
Blazor Server App blazorserver [C#] Web/Blazor
Blazor WebAssembly App blazorwasm [C#] Web/Blazor/WebAssembly
ASP.NET Core Empty web [C#], F# Web/Empty
ASP.NET Core Web App (Model-View-Controller) mvc [C#], F# Web/MVC
ASP.NET Core Web App webapp [C#] Web/MVC/Razor Pages
ASP.NET Core with Angular angular [C#] Web/MVC/SPA
ASP.NET Core with React.js react [C#] Web/MVC/SPA
ASP.NET Core with React.js and Redux reactredux [C#] Web/MVC/SPA
Razor Class Library razorclasslib [C#] Web/Razor/Library/Razor Class Library
ASP.NET Core Web API webapi [C#], F# Web/WebAPI
ASP.NET Core gRPC Service grpc [C#] Web/gRPC
En la tabla siguiente se muestran ejemplos de como crear proyectos con la linea de comandos. Se utiliza como ejemplo el proyecto MVC. Cada tipo de plantilla tiene diferentes opciones que puedes ver con el comando.
dotnet new <nombre-corto> --help
Comando | Descripción | |
---|---|---|
dotnet new mvc --help |
Obtiene las opciones disponibles para este tipo de plantilla | |
dotnet new mvc |
Crea un proyecto tipo MVC en la capeta actual. El nombre del proyecto predeterminado es igual al nombre de la carpeta desde donde se ejecuta el comando dotnet new |
|
dotnet new mvc -o HolaMvc |
Crea un proyecto tipo MVC en la capeta HolaMvc si la carpeta no existe esta sera creada | |
dotnet new mvc -o HolaMvc --name MiProyecto |
Crea un proyecto MVC en la carpeta HolaMvc y con nombre MiProyecto | |
dotnet new mvc -lang F# -o HelloMvcFSharp |
Crea un proyecto MVC en la carpeta HolaMvc y con nombre MiProyecto | } |
Recomendamos que por lo menos uses el argumento -o
para especificar la carpeta donde se colocara el proyecto de salida. Puedes cambiar el nombre corto por el de otro tipo de proyecto y utilizar los ejemplos anteriores con otro tipo de proyecto.
Visual Studio
Si usas Visual Studio puedes crear un nuevo proyecto mediante Archivo> Nuevo Proyecto > Web > Aplicación Web ASP.NET Core.