Compartir a través de


Herramienta generador de código de ASP.NET Core (aspnet-codegenerator)

El comando dotnet aspnet-codegenerator ejecuta el motor de scaffolding de ASP.NET Core. La ejecución del comando dotnet aspnet-codegenerator es necesaria para aplicar scaffolding desde la línea de comandos o al usar Visual Studio Code. El comando no es necesario para usar scaffolding con Visual Studio, que incluye el motor de scaffolding de forma predeterminada.

Instalación y actualización de la herramienta generador de código

Instale el SDK de .NET.

dotnet aspnet-codegenerator es una herramienta global que debe estar instalada. El siguiente comando instala la versión estable más reciente de la herramienta generador de código ASP.NET Core:

dotnet tool install -g dotnet-aspnet-codegenerator

Nota:

De manera predeterminada, la arquitectura de los binarios .NET que se van a instalar representa la arquitectura del sistema operativo que se está ejecutando en ese momento. Para especificar una arquitectura de SO diferente, consulte dotnet tool install, --arch option. Para más información, consulte la incidencia de GitHub dotnet/AspNetCore.Docs #29262.

Si la herramienta ya está instalada, el siguiente comando actualiza la herramienta a la versión estable más reciente disponible en los SDK de .NET Core instalados:

dotnet tool update -g dotnet-aspnet-codegenerator

Desinstalación de la herramienta generador de código

Puede ser necesario desinstalar la herramienta generador de código ASP.NET Core para resolver problemas. Por ejemplo, si instaló una versión preliminar de la herramienta, desinstálela antes de instalar la versión de publicación.

Los siguientes comandos desinstalan la herramienta generador de código ASP.NET Core e instalan la versión estable más reciente:

dotnet tool uninstall -g dotnet-aspnet-codegenerator
dotnet tool install -g dotnet-aspnet-codegenerator

Sinopsis

dotnet aspnet-codegenerator [arguments] [-b|--build-base-path] [-c|--configuration] [-n|--nuget-package-dir] [--no-build] [-p|--project] [-tfm|--target-framework]
dotnet aspnet-codegenerator [-h|--help]

Descripción

El comando dotnet aspnet-codegenerator global ejecuta el generador de código de ASP.NET Core y el motor de scaffolding.

Argumentos

generator

El generador de código que se va a ejecutar. Los generadores disponibles se muestran en la tabla siguiente.

Generator Operación
area Aplica scaffolding a un área.
blazor Las scaffoldings Blazor crean, leen, actualizan, eliminan y enumeran páginas.
blazor-identity Genera archivos BlazorIdentity.
controller Aplica scaffolding a un controlador.
identity Aplica scaffolding a Identity.
minimalapi Genera un archivo de puntos de conexión (con puntos de conexión de API CRUD) dado un modelo y un contexto de base de datos opcional.
razorpage Aplica scaffolding a Páginas Razor.
view Aplica scaffolding a una vista.

Opciones

-b|--build-base-path

La ruta de acceso de la base de compilación.

-c|--configuration {Debug|Release}

Define la configuración de compilación. El valor predeterminado es Debug.

-h|--help

Imprime una corta ayuda para el comando.

-n|--nuget-package-dir

Especifica el directorio del paquete de NuGet.

--no-build

No compila el proyecto antes de ejecutarlo. Pasar --no-build también establece la marca --no-restore de forma implícita.

-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, la herramienta tiene como predeterminado el directorio actual.

-tfm|--target-framework

Establece como destino el marco que se va a usar.

Opciones del generador

En las secciones siguientes se detallan las opciones disponibles para los generadores compatibles:

Opciones del área

Uso: dotnet aspnet-codegenerator area {AREA NAME}

El marcador de posición {AREA NAME} es el nombre del área que se va a generar.

El comando anterior genera estas carpetas:

  • Areas
    • {AREA NAME}
      • Controllers
      • Data
      • Models
      • Views

Use la opción -h|--help para obtener ayuda:

dotnet aspnet-codegenerator area -h

Opciones de Blazor

A los componentes Razor se les puede aplicar scaffolding individualmente para aplicaciones Blazor especificando el nombre de la plantilla que se va a usar. Las plantillas admitidas son:

  • Empty
  • Create
  • Edit
  • Delete
  • Details
  • List
  • CRUD: CRUD es un acrónimo de Crear, leer, actualizar y eliminar en inglés (Create, Read, Update y Delete). La plantilla CRUD genera componentes Create, Edit, Delete, Details y Index (List) para la aplicación.

Las opciones del generador blazor se muestran en la tabla siguiente.

Opción Descripción
-dbProvider|--databaseProvider Proveedor de base de datos que se va a usar. Las opciones incluyen sqlserver (valor predeterminado), sqlite, cosmos o postgres.
-dc|--dataContext Clase de contexto de base de datos que se va a usar.
-m|--model Clase de modelo que se va a usar.
-ns|--namespaceName Especifique el nombre del espacio de nombres que se va a usar para el archivo de puntos de conexión generados.
--relativeFolderPath|-outDir Ruta de acceso de la carpeta de salida relativa. Si no se especifica, los archivos se generan en la carpeta del proyecto.

En el ejemplo siguiente:

  • Usa la plantilla Edit para generar un componente Edit (Edit.razor) en la carpeta Components/Pages/MoviePages de la aplicación. Si la carpeta MoviePages no existe, la herramienta crea la carpeta automáticamente.
  • Usa el proveedor de base de datos SQLite.
  • Usa BlazorWebAppMovies.Data.BlazorWebAppMoviesContext para el contexto de la base de datos.
  • Usa el modelo Movie.
dotnet aspnet-codegenerator blazor Edit -dbProvider sqlite -dc BlazorWebAppMovies.Data.BlazorWebAppMoviesContext -m Movie -outDir Components/Pages

Use la opción -h|--help para obtener ayuda:

dotnet aspnet-codegenerator blazor -h

Para obtener más información, consulte Componente QuickGrid Blazor de ASP.NET Core.

Opciones de BlazorIdentity

Aplicar scaffolding a los componentes IdentityRazor en una aplicación Blazor con el generador blazor-identity.

Las opciones de la plantilla blazor-identity se muestran en la tabla siguiente.

Opción Descripción
-dbProvider|--databaseProvider Proveedor de base de datos que se va a usar. Las opciones incluyen sqlserver (valor predeterminado) y sqlite.
-dc|--dataContext Clase de contexto de base de datos que se va a usar.
-f|--force Use esta opción para sobrescribir los archivos existentes.
-fi|--files Lista de archivos separados por punto y coma para aplicar scaffolding. Use la opción -lf|--listFiles para ver las opciones disponibles.
-lf|--listFiles Enumera los archivos a los que se puede aplicar scaffolding mediante la opción -fi|--files.
-rn|--rootNamespace Espacio de nombres raíz que se va a usar para generar código Identity.
-u|--userClass Nombre de la clase de usuario que se va a generar.

Use la opción -h|--help para obtener ayuda:

dotnet aspnet-codegenerator blazor-identity -h

Opciones del controlador

Las opciones generales se muestran en la tabla siguiente.

Opción Descripción
-b|--bootstrapVersion Especifica la versión de arranque y crea una carpeta wwwroot para los recursos de Bootstrap si la carpeta no está presente.
-dbProvider|--databaseProvider Proveedor de base de datos que se va a usar. Las opciones incluyen sqlserver (valor predeterminado), sqlite, cosmos, postgres.
-dc|--dataContext La clase de contexto de base de datos que se va a usar o el nombre de la clase que se va a generar.
-f|--force Sobrescribe los archivos existentes.
-l|--layout Página de diseño personalizado que se va a usar.
-m|--model Clase de modelo que se va a usar.
-outDir|--relativeFolderPath Ruta de acceso de la carpeta de salida relativa. Si no se especifica, los archivos se generan en la carpeta del proyecto.
-scripts|--referenceScriptLibraries Bibliotecas de scripts de referencia en las vistas generadas. Agrega _ValidationScriptsPartial a las páginas Edit y Create.
-sqlite|--useSqlite Marca para especificar si el contexto de la base de datos debe usar SQLite en lugar de SQL Server.
-udl|--useDefaultLayout Usa el diseño predeterminado de las vistas.

Las opciones únicas para controller se muestran en la tabla siguiente.

Opción Descripción
-actions|--readWriteActions Genera un controlador con acciones de lectura/escritura sin un modelo.
-api|--restWithNoViews Genera un controlador con una API de estilo REST. Se supone noViews y todas las opciones relacionadas con la vista se omiten.
-async|--useAsyncActions Generar acciones de controlador asincrónicas.
-name|--controllerName El nombre del controlador.
-namespace|--controllerNamespace Se especifica el nombre del espacio de nombres que se usará para el controlador generado.
-nv|--noViews No genera vistas.

Use la opción -h|--help para obtener ayuda:

dotnet aspnet-codegenerator controller -h

Para obtener un ejemplo que use el generador controller, consulte Parte 4, agregar un modelo a una aplicación ASP.NET Core MVC.

Opciones de Identity

Para obtener más información, vea Scaffolding Identity en proyectos de ASP.NET Core.

Opciones de API mínimas

Aplicar scaffolding a un back-end de API mínima con la plantilla minimalapi.

Las opciones de minimalapi se muestran en la tabla siguiente.

Opción Descripción
-dbProvider|--databaseProvider Proveedor de base de datos que se va a usar. Las opciones incluyen sqlserver (valor predeterminado), sqlite, cosmos o postgres.
-dc|--dataContext Clase de contexto de base de datos que se va a usar.
-e|--endpoints Clase de puntos de conexión que se va a usar (no el nombre de archivo).
-m|--model Clase de modelo que se va a usar.
-namespace|--endpointsNamespace Especifique el nombre del espacio de nombres que se va a usar para el archivo de puntos de conexión generados.
-o|--open Use esta opción para habilitar OpenAPI.
-outDir|--relativeFolderPath Ruta de acceso de la carpeta de salida relativa. Si no se especifica, los archivos se generan en la carpeta del proyecto.
-sqlite|--useSqlite Marca para especificar si el contexto de la base de datos debe usar SQLite en lugar de SQL Server.

En el ejemplo siguiente:

  • Genera una clase de puntos de conexión denominada SpeakersEndpoints con puntos de conexión de API que se asignan a las operaciones de base de datos mediante la clase de contexto de base de datos ApplicationDbContext y el modelo BackEnd.Models.Speaker.
  • Agrega app.MapSpeakerEndpoints(); al archivo Program (Program.cs) para registrar la clase de puntos de conexión.
dotnet aspnet-codegenerator minimalapi -dc ApplicationDbContext -e SpeakerEndpoints -m BackEnd.Models.Speaker -o

Use la opción -h|--help para obtener ayuda:

dotnet aspnet-codegenerator minimalapi -h

Opciones de página Razor

Es posible aplicar scaffolding a Razor Pages de manera individual si se especifica el nombre de la página nueva y la plantilla a usar. Las plantillas admitidas son:

  • Empty
  • Create
  • Edit
  • Delete
  • Details
  • List

Normalmente, no se especifica la plantilla ni el nombre de archivo generado, lo que crea las siguientes plantillas:

  • Create
  • Edit
  • Delete
  • Details
  • List

Las opciones generales se muestran en la tabla siguiente.

Opción Descripción
-b|--bootstrapVersion Especifica la versión de arranque y crea una carpeta wwwroot para los recursos de Bootstrap si la carpeta no está presente.
-dbProvider|--databaseProvider Proveedor de base de datos que se va a usar. Las opciones incluyen sqlserver (valor predeterminado), sqlite, cosmos, postgres.
-dc|--dataContext La clase de contexto de base de datos que se va a usar o el nombre de la clase que se va a generar.
-f|--force Sobrescribe los archivos existentes.
-l|--layout Página de diseño personalizado que se va a usar.
-m|--model Clase de modelo que se va a usar.
-outDir|--relativeFolderPath Ruta de acceso de la carpeta de salida relativa. Si no se especifica, los archivos se generan en la carpeta del proyecto.
-scripts|--referenceScriptLibraries Bibliotecas de scripts de referencia en las vistas generadas. Agrega _ValidationScriptsPartial a las páginas Edit y Create.
-sqlite|--useSqlite Marca para especificar si el contexto de la base de datos debe usar SQLite en lugar de SQL Server.
-udl|--useDefaultLayout Usa el diseño predeterminado de las vistas.

Las opciones únicas para razorpage se muestran en la tabla siguiente.

Opción Descripción
-namespace|--namespaceName El nombre del espacio de nombres que se usará para la clase PageModel generada.
-npm|--noPageModel No genere una clase PageModel para la plantilla Empty.
-partial|--partialView Genera una vista parcial. Si se especifica, las opciones de diseño -l y -udl se ignoran.

En el ejemplo siguiente se usa la plantilla Edit para generar CustomEditPage.cshtml y CustomEditPage.cshtml.cs en la carpeta Pages/Movies:

dotnet aspnet-codegenerator razorpage CustomEditPage Edit -dc RazorPagesMovieContext -m Movie -outDir Pages/Movies

Use la opción -h|--help para obtener ayuda:

dotnet aspnet-codegenerator razorpage -h

Para obtener un ejemplo que use el generador razorpage, vea Parte 2, agregar un modelo.

Ver las opciones

Es posible aplicar scaffolding a las vistas de manera individual si se especifica el nombre de la vista y la plantilla. Las plantillas admitidas son:

  • Empty
  • Create
  • Edit
  • Delete
  • Details
  • List

Las opciones generales se muestran en la tabla siguiente.

Opción Descripción
-b|--bootstrapVersion Especifica la versión de arranque y crea una carpeta wwwroot para los recursos de Bootstrap si la carpeta no está presente.
-dbProvider|--databaseProvider Proveedor de base de datos que se va a usar. Las opciones incluyen sqlserver (valor predeterminado), sqlite, cosmos, postgres.
-dc|--dataContext La clase de contexto de base de datos que se va a usar o el nombre de la clase que se va a generar.
-f|--force Sobrescribe los archivos existentes.
-l|--layout Página de diseño personalizado que se va a usar.
-m|--model Clase de modelo que se va a usar.
-outDir|--relativeFolderPath Ruta de acceso de la carpeta de salida relativa. Si no se especifica, los archivos se generan en la carpeta del proyecto.
-scripts|--referenceScriptLibraries Bibliotecas de scripts de referencia en las vistas generadas. Agrega _ValidationScriptsPartial a las páginas Edit y Create.
-sqlite|--useSqlite Marca para especificar si el contexto de la base de datos debe usar SQLite en lugar de SQL Server.
-udl|--useDefaultLayout Usa el diseño predeterminado de las vistas.

Las opciones únicas para view se muestran en la tabla siguiente.

Opción Descripción
-namespace|--controllerNamespace Se especifica el nombre del espacio de nombres que se usará para el controlador generado.
-partial|--partialView Genera una vista parcial. Si se especifica, otras opciones de diseño (-l y -udl) se ignoran.

En el ejemplo siguiente se usa la plantilla Edit para generar CustomEditView.cshtml en la carpeta Views/Movies:

dotnet aspnet-codegenerator view CustomEditView Edit -dc MovieContext -m Movie -outDir Views/Movies

Use la opción -h|--help para obtener ayuda:

dotnet aspnet-codegenerator view -h