Exercício – Criar um projeto de aplicativo Web ASP.NET Core a partir de um modelo

Concluído

Neste exercício, você vai:

  • Criar um projeto de aplicativo Web ASP.NET Core a partir de um modelo.
  • Examine a estrutura do projeto criado.

Criar um aplicativo Web ASP.NET Core usando um modelo

No Visual Studio Code, crie um projeto:

  1. Selecione o modo de exibição do Explorer:

    Captura de tela da seleção do modo de exibição do Explorer.

  2. Selecione o botão Criar projeto .NET. Como alternativa, você pode abrir a Paleta de comandos usando Ctrl+Shift+P e digitar ".NET" para encontrar e selecionar o comando .NET: Novo projeto.

    Captura de tela da seleção de Criar projeto .NET.

  3. Selecione o modelo de projeto vazio do ASP.NET Core na lista.

  4. Na caixa de diálogo Local do Projeto, crie uma pasta chamada MyWebApp para conter o projeto.

  5. Na Paleta de Comandos, nomeie o projeto MyWebApp, incluindo a correspondência da capitalização. Usar este nome exato do projeto é importante para garantir que os namespaces de código nesta instrução correspondam aos seus.

  6. Selecione Criar projeto na Paleta de Comandos.

Examine a estrutura do projeto

O conteúdo da pasta de projeto do MyWebApp é exibido no doExplorer do Visual Studio Code:

Captura de tela dos arquivos do projeto no Explorer do Visual Studio Code.

Em um terminal ou na linha de comando, crie um projeto:

  1. Altere para o diretório (cd) que conterá o projeto.

  2. Crie um aplicativo Web ASP.NET Core em um diretório chamado MyWebApp executando o comando da CLI do .NET dotnet new:

    dotnet new web -o MyWebApp
    

    Um novo projeto da Web vazio do ASP.NET Core é criado em um diretório chamado MyWebApp.

    O seguinte descreve a sintaxe de comando:

    • dotnet new: Um comando da CLI do .NET para criar vários artefatos de desenvolvimento do .NET com base em modelos como projetos, soluções, bibliotecas, configuração e outros arquivos especializados.
    • web: Um modelo de projeto usado para criar um projeto da Web vazio do ASP.NET Core, sem conteúdo de exemplo. web é um dos muitos modelos de projeto internos disponíveis no SDK do .NET.
    • -o: A opção de saída especifica o diretório em que o novo projeto é criado:
      • Se o diretório não existir, a CLI do .NET o criará.
      • O diretório em que o projeto é criado serve como o nome do projeto padrão, o namespace e o nome do assembly (o nome da saída compilada).
      • Se a opção de saída -o <directory> não for usada, o diretório atual será usado.
  3. Abra a pasta de projeto MyWebApp.

Examine a estrutura do projeto

O conteúdo da pasta de projeto do MyWebApp é exibido no doExplorer do Visual Studio Code:

Captura de tela dos arquivos do projeto no Explorer do Visual Studio Code.

As seções a seguir contêm uma visão geral das pastas de projeto principais e arquivos do projeto ASP.NET Core vazio:

O arquivo do projeto MyWebApp.csproj

O arquivo de projeto .csproj é usado para:

  • Configurar como criar o projeto
  • Especificar qual versão do .NET será direcionada
  • Gerenciar as dependências do projeto

O arquivo de solução .sln

Quando um projeto do ASP.NET Core é criado ou aberto no Visual Studio Code (com a extensão C# Dev Kit), ele cria um arquivo de solução [nome do projeto].sln. O arquivo de solução [nome do projeto].sln contém informações para um ou mais projetos relacionados, incluindo informações de compilação, configurações e todos os arquivos diversos que não estão associados a apenas um projeto específico.

A pasta de obj

A pasta de obj contém arquivos intermediários que são usados pelo sistema de compilação, inclusive arquivos de objeto compilados gerados dos arquivos de origem. A saída final da compilação é colocada em uma pasta de bin criada durante o processo de compilação.

O arquivo Propriedades/launchSettings.json

O arquivo Properties/launchSettings.json contém dados de configuração de como o aplicativo é iniciado durante o desenvolvimento. Estas configurações incluem a propriedade applicationUrl, que especifica o URL raiz que o aplicativo usa, como https://localhost:{port}, em que {port} é um número de porta local aleatório atribuído quando o projeto é criado.

O arquivo launchSettings.json contém a seguinte configuração:

{
  "$schema": "https://json.schemastore.org/launchsettings.json",
  "profiles": {
    "http": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "http://localhost:5218",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "https": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "https://localhost:7140;http://localhost:5218",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Abra o arquivo Program.cs

O arquivo Program.cs serve como ponto de entrada para um aplicativo ASP.NET Core e tem várias finalidades principais, que incluem:

  • Configuração do host: Configura o host, inclusive a configuração do servidor Web.
  • Registro de serviço: Adiciona serviços à funcionalidade do aplicativo, como contextos de banco de dados, registro em log e serviços especializados para estruturas específicas.
  • Configuração do pipeline de middleware: Define o pipeline de tratamento de solicitações do aplicativo como uma série de instâncias de middleware.
  • Configuração do ambiente: Define configurações específicas do ambiente para desenvolvimento, preparo e produção.

No novo projeto vazio do ASP.NET Core criado, o arquivo Program.cs contém o seguinte código mínimo:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run();

As seguintes linhas de código neste arquivo criam um WebApplicationBuilder com padrões pré-configurados e criam o aplicativo:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

O método app.MapGet() define diretamente um ponto de extremidade que manipula solicitações HTTP GET:

app.MapGet("/", () => "Hello World!");

app.MapGet("/"): Define uma rota para a solicitação HTTP GET. O / indica que essa rota responde às solicitações feitas ao URL raiz do aplicativo. Por exemplo, http://localhost:{port}/, em que {port} é um número de porta atribuído aleatoriamente no arquivo Propriedades/launchSettings.json na criação do projeto.

() => "Hello World!": Uma expressão lambda que serve como manipulador de solicitação. Quando uma solicitação GET é feita no URL raiz, essa expressão lambda é executada e retorna a cadeia de caracteres "Olá, Mundo!"