Ferramenta de gerador de código do ASP.NET Core (aspnet-codegenerator)

Observação

Esta não é a versão mais recente deste artigo. Para informações sobre a versão vigente, confira a Versão do .NET 8 deste artigo.

Aviso

Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, confira .NET e a Política de Suporte do .NET Core. Para informações sobre a versão vigente, confira a Versão do .NET 8 deste artigo.

Importante

Essas informações relacionam-se ao produto de pré-lançamento, que poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não oferece nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.

Para informações sobre a versão vigente, confira a Versão do .NET 8 deste artigo.

O comando dotnet aspnet-codegenerator executa o mecanismo de scaffolding do ASP.NET Core. A execução do comando dotnet aspnet-codegenerator é necessária para fazer scaffolding da linha de comando ou ao usar o Visual Studio Code. O comando não é necessário para usar scaffolding com o Visual Studio, que inclui o mecanismo de scaffolding por padrão.

Instalar e atualizar a ferramenta de gerador de código

Instale o SDK do .NET.

dotnet aspnet-codegenerator é uma ferramenta global que deve ser instalada. O comando a seguir instala a versão estável mais recente da ferramenta de gerador de código do ASP.NET Core:

dotnet tool install -g dotnet-aspnet-codegenerator

Observação

Por padrão, a arquitetura dos binários do .NET a serem instalados representa a arquitetura do SO sendo executado no momento. Para especificar uma arquitetura de SO diferente, consulte instalação da ferramenta dotnet, opção --arch. Para obter mais informações, confira o problema dotnet/AspNetCore.Docs #29262 do GitHub.

Se a ferramenta já estiver instalada, o comando a seguir atualizará a ferramenta para a versão estável mais recente disponível nos SDKs do .NET Core instalados:

dotnet tool update -g dotnet-aspnet-codegenerator

Desinstalar a ferramenta de gerador de código

Pode ser necessário desinstalar a ferramenta de gerador de código do ASP.NET Core para resolver problemas. Por exemplo, se você instalou uma versão prévia da ferramenta, desinstale-a antes de instalar a versão lançada.

Os comandos a seguir desinstalam a ferramenta de gerador de código do ASP.NET Core e instalam a versão estável mais recente:

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

Sinopse

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]

Descrição

O comando global dotnet aspnet-codegenerator executa o mecanismo de scaffolding e o gerador de código do ASP.NET Core.

Argumentos

generator

O gerador de código para ser executado. Os geradores disponíveis são mostrados na tabela a seguir.

Gerador Operação
area Faz scaffolding de uma área.
blazor Os scaffolds do Blazor criam, leem, atualizam, excluem e listam páginas.
blazor-identity Gera arquivos BlazorIdentity.
controller Faz scaffolding de um controlador.
identity Faz scaffolding de Identity.
minimalapi Gera um arquivo de pontos de extremidade (com pontos de extremidade da API CRUD) dado um modelo e um contexto de banco de dados opcional.
razorpage Faz scaffolding de Razor Pages.
view Faz scaffolding de uma exibição.
Gerador Operação
area Faz scaffolding de uma área.
controller Faz scaffolding de um controlador.
identity Faz scaffolding de Identity.
minimalapi Gera um arquivo de pontos de extremidade (com pontos de extremidade da API CRUD) dado um modelo e um contexto de banco de dados opcional.
razorpage Faz scaffolding de Razor Pages.
view Faz scaffolding de uma exibição.

Opções

-b|--build-base-path

O caminho base da compilação.

-c|--configuration {Debug|Release}

Define a configuração da compilação. O valor padrão é Debug.

-h|--help

Imprime uma ajuda breve para o comando.

-n|--nuget-package-dir

Especifica o diretório de pacote do NuGet.

--no-build

Não compila o projeto antes da execução. Passar --no-build também define implicitamente o sinalizador --no-restore.

-p|--project <PATH>

Especifica o caminho do arquivo de projeto a ser executado (nome da pasta ou caminho completo). Se não for especificado, a ferramenta usará como padrão o diretório atual.

-tfm|--target-framework

A estrutura de destino a ser usada.

Opções de gerador

As seções a seguir detalham as opções disponíveis para os geradores com suporte:

Opções de área

Uso: dotnet aspnet-codegenerator area {AREA NAME}

O espaço reservado {AREA NAME} é o nome da área a ser gerada.

O comando anterior gera as seguintes pastas:

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

Use a opção -h|--help para obter ajuda:

dotnet aspnet-codegenerator area -h

Blazor options

Os componentes Razor podem receber scaffolding individualmente para aplicativos Blazor especificando o nome do modelo a ser usado. Os modelos com suporte são:

  • Empty
  • Create
  • Edit
  • Delete
  • Details
  • List
  • CRUD: CRUD é um acrônimo para Criar, Ler, Atualizar e Excluir. O modelo CRUD produz componentes Create, Edit, Delete, Details e Index (List) para o aplicativo.

As opções para o gerador blazor são mostradas na tabela a seguir.

Opção Descrição
-dbProvider|--databaseProvider Provedor de banco de dados a ser usado. As opções incluem sqlserver (padrão), sqlite, cosmos ou postgres.
-dc|--dataContext Classe de contexto de banco de dados a ser usada.
-m|--model Classe de modelo a ser usada.
-ns|--namespaceName Especifique o nome do namespace a ser usado para o arquivo de pontos de extremidade gerado.
--relativeFolderPath|-outDir Caminho relativo da pasta de saída. Se não for especificado, os arquivos serão gerados na pasta do projeto.

O exemplo a seguir:

  • Usa o modelo Edit para gerar um componente Edit (Edit.razor) na pasta Components/Pages/MoviePages do aplicativo. Se a pasta MoviePages não existir, a ferramenta criará a pasta automaticamente.
  • Usa o provedor de banco de dados SQLite.
  • Usa BlazorWebAppMovies.Data.BlazorWebAppMoviesContext para o contexto do banco de dados.
  • Usa o modelo Movie.
dotnet aspnet-codegenerator blazor Edit -dbProvider sqlite -dc BlazorWebAppMovies.Data.BlazorWebAppMoviesContext -m Movie -outDir Components/Pages

Use a opção -h|--help para obter ajuda:

dotnet aspnet-codegenerator blazor -h

Para saber mais, confira Componente QuickGrid do Blazor no ASP.NET Core.

BlazorIdentity options

Faça scaffolding de componentes IdentityRazor em um aplicativo Blazor com o gerador blazor-identity.

As opções para o modelo blazor-identity são mostradas na tabela a seguir.

Opção Descrição
-dbProvider|--databaseProvider Provedor de banco de dados a ser usado. As opções incluem sqlserver (padrão) e sqlite.
-dc|--dataContext Classe de contexto de banco de dados a ser usada.
-f|--force Use essa opção para substituir arquivos existentes.
-fi|--files Lista de arquivos separados por ponto-e-vírgula para o scaffolding. Use a opção -lf|--listFiles para ver as opções disponíveis.
-lf|--listFiles Lista os arquivos para os quais pode ser feito scaffolding usando a opção -fi|--files.
-rn|--rootNamespace O namespace raiz a ser usado para gerar código Identity.
-u|--userClass Nome da classe de usuário a ser gerada.

Use a opção -h|--help para obter ajuda:

dotnet aspnet-codegenerator blazor-identity -h

Opções de controlador

As opções gerais são mostradas na tabela a seguir.

Opção Descrição
-b|--bootstrapVersion Especifica a versão de inicialização e cria uma pasta wwwroot para os ativos de inicialização se a pasta não estiver presente.
-dbProvider|--databaseProvider Provedor de banco de dados a ser usado. As opções incluem sqlserver (padrão), sqlite, cosmos, postgres.
-dc|--dataContext A classe de contexto de banco de dados a ser usada ou o nome da classe a ser gerada.
-f|--force Substitui os arquivos existentes.
-l|--layout Página de layout personalizada a ser usada.
-m|--model Classe de modelo a ser usada.
-outDir|--relativeFolderPath Caminho relativo da pasta de saída. Se não for especificado, os arquivos serão gerados na pasta do projeto.
-scripts|--referenceScriptLibraries Faz referência a bibliotecas de script nas exibições geradas. Adiciona _ValidationScriptsPartial a páginas Edit e Create.
-sqlite|--useSqlite Sinalizar para especificar se o contexto do banco de dados deve usar o SQLite em vez do SQL Server.
-udl|--useDefaultLayout Usa o layout padrão das exibições.

As opções exclusivas de controller são mostradas na tabela a seguir.

Opção Descrição
-actions|--readWriteActions Gere o controlador com ações de leitura/gravação sem um modelo.
-api|--restWithNoViews Gere um controlador com a API de estilo REST. É assumido noViews e todas as opções relacionadas à visualização são ignoradas.
-async|--useAsyncActions Gerar ações de controlador assíncronas.
-name|--controllerName O nome do controlador.
-namespace|--controllerNamespace Especifique o nome do namespace a ser usado para o controlador gerado.
-nv|--noViews Não gera modos de exibição.

Use a opção -h|--help para obter ajuda:

dotnet aspnet-codegenerator controller -h

Para obter um exemplo que usa o gerador controller, confira Parte 4, adicionar um modelo a um aplicativo do ASP.NET Core MVC.

Identity options

Para obter mais informações, veja Scaffold Identity em projetos ASP.NET Core.

Opções da API mínima

Fazer scaffolding de um back-end de API mínima com o modelo minimalapi.

As opções para minimalapi são mostradas na tabela a seguir.

Opção Descrição
-dbProvider|--databaseProvider Provedor de banco de dados a ser usado. As opções incluem sqlserver (padrão), sqlite, cosmos ou postgres.
-dc|--dataContext Classe de contexto de banco de dados a ser usada.
-e|--endpoints Classe de pontos de extremidade a ser usada (não o nome do arquivo).
-m|--model Classe de modelo a ser usada.
-namespace|--endpointsNamespace Especifique o nome do namespace a ser usado para o arquivo de pontos de extremidade gerado.
-o|--open Use esta opção para habilitar o OpenAPI.
-outDir|--relativeFolderPath Caminho relativo da pasta de saída. Se não for especificado, os arquivos serão gerados na pasta do projeto.
-sqlite|--useSqlite Sinalizar para especificar se o contexto do banco de dados deve usar o SQLite em vez do SQL Server.

O exemplo a seguir:

  • Gera uma classe de pontos de extremidade nomeada SpeakersEndpoints com pontos de extremidade de API que são mapeados para operações de banco de dados usando a classe de contexto de banco de dados ApplicationDbContext e o modelo BackEnd.Models.Speaker.
  • Adiciona app.MapSpeakerEndpoints(); ao arquivo Program (Program.cs) para registrar a classe de pontos de extremidade.
dotnet aspnet-codegenerator minimalapi -dc ApplicationDbContext -e SpeakerEndpoints -m BackEnd.Models.Speaker -o

Use a opção -h|--help para obter ajuda:

dotnet aspnet-codegenerator minimalapi -h

Razor opções de página

As Páginas do Razor podem ser geradas por scaffolding individualmente, especificando o nome da nova página e o modelo a ser usado. Os modelos com suporte são:

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

Normalmente, o modelo e o nome do arquivo gerado não são especificados, o que cria os seguintes modelos:

  • Create
  • Edit
  • Delete
  • Details
  • List

As opções gerais são mostradas na tabela a seguir.

Opção Descrição
-b|--bootstrapVersion Especifica a versão de inicialização e cria uma pasta wwwroot para os ativos de inicialização se a pasta não estiver presente.
-dbProvider|--databaseProvider Provedor de banco de dados a ser usado. As opções incluem sqlserver (padrão), sqlite, cosmos, postgres.
-dc|--dataContext A classe de contexto de banco de dados a ser usada ou o nome da classe a ser gerada.
-f|--force Substitui os arquivos existentes.
-l|--layout Página de layout personalizada a ser usada.
-m|--model Classe de modelo a ser usada.
-outDir|--relativeFolderPath Caminho relativo da pasta de saída. Se não for especificado, os arquivos serão gerados na pasta do projeto.
-scripts|--referenceScriptLibraries Faz referência a bibliotecas de script nas exibições geradas. Adiciona _ValidationScriptsPartial a páginas Edit e Create.
-sqlite|--useSqlite Sinalizar para especificar se o contexto do banco de dados deve usar o SQLite em vez do SQL Server.
-udl|--useDefaultLayout Usa o layout padrão das exibições.

As opções exclusivas de razorpage são mostradas na tabela a seguir.

Opção Descrição
-namespace|--namespaceName O nome do namespace a ser usado para a classe gerada PageModel.
-npm|--noPageModel Não gere uma classe PageModel para o modelo Empty.
-partial|--partialView Gere uma exibição parcial. As opções de layout -l e -udl serão ignoradas se isto for especificado.

O exemplo a seguir usa o modelo Edit para gerar CustomEditPage.cshtml e CustomEditPage.cshtml.cs na pasta Pages/Movies:

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

Use a opção -h|--help para obter ajuda:

dotnet aspnet-codegenerator razorpage -h

Para obter um exemplo que usa o gerador razorpage, confira a Parte 2, adicionar um modelo.

Opções de exibição

As exibições podem ser separadas individualmente especificando o nome da exibição e do modelo. Os modelos com suporte são:

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

As opções gerais são mostradas na tabela a seguir.

Opção Descrição
-b|--bootstrapVersion Especifica a versão de inicialização e cria uma pasta wwwroot para os ativos de inicialização se a pasta não estiver presente.
-dbProvider|--databaseProvider Provedor de banco de dados a ser usado. As opções incluem sqlserver (padrão), sqlite, cosmos, postgres.
-dc|--dataContext A classe de contexto de banco de dados a ser usada ou o nome da classe a ser gerada.
-f|--force Substitui os arquivos existentes.
-l|--layout Página de layout personalizada a ser usada.
-m|--model Classe de modelo a ser usada.
-outDir|--relativeFolderPath Caminho relativo da pasta de saída. Se não for especificado, os arquivos serão gerados na pasta do projeto.
-scripts|--referenceScriptLibraries Faz referência a bibliotecas de script nas exibições geradas. Adiciona _ValidationScriptsPartial a páginas Edit e Create.
-sqlite|--useSqlite Sinalizar para especificar se o contexto do banco de dados deve usar o SQLite em vez do SQL Server.
-udl|--useDefaultLayout Usa o layout padrão das exibições.

As opções exclusivas de view são mostradas na tabela a seguir.

Opção Descrição
-namespace|--controllerNamespace Especifique o nome do namespace a ser usado para o controlador gerado.
-partial|--partialView Gere uma exibição parcial. Outras opções de layout (-l e -udl) serão ignoradas se isto for especificado.

O exemplo a seguir usa o modelo Edit para gerar CustomEditView.cshtml na pasta Views/Movies:

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

Use a opção -h|--help para obter ajuda:

dotnet aspnet-codegenerator view -h