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

Concluído

Neste exercício, irá:

  • Crie 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 novo projeto:

  1. Selecione a visualização Explorer:

    Captura de ecrã a mostrar a seleção da vista 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 localizar e selecionar o comando .NET: Novo Projeto .

    Captura de tela mostrando a seleção Criar projeto .NET.

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

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

  5. Na Paleta de Comandos, nomeie o projeto MyWebApp, garantindo que corresponda à capitalização. Usar esse nome exato do projeto é importante para garantir que os namespaces para o código nesta instrução correspondam ao seu.

  6. Selecione Criar projeto na Paleta de comandos.

Examinar a estrutura do projeto

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

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

A partir de um terminal ou da linha de comando, crie um novo projeto:

  1. Mude 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 dotnet new.NET CLI :

    dotnet new web -o MyWebApp
    

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

    O seguinte descreve a sintaxe do comando:

    • dotnet new: Um comando .NET CLI para criar vários artefatos de desenvolvimento .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 Web vazio 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 onde o novo projeto é criado:
      • Se o diretório não existir, a CLI do .NET o criará.
      • O diretório onde o projeto é criado serve como o nome padrão do projeto, namespace e nome do assembly (o nome da saída compilada).
      • Se a opção -o <directory> de saída não for usada, o diretório atual será usado.
  3. Abra a pasta do projeto MyWebApp .

Examinar a estrutura do projeto

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

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

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

O arquivo de projeto MyWebApp.csproj

O arquivo de projeto .csproj é usado para:

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

O arquivo de solução .sln

Quando um projeto ASP.NET Core é criado ou aberto no Visual Studio Code (com a extensão C# Dev Kit), ele cria um arquivo de solução .sln [nome do projeto]. 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 arquivos diversos que não estão associados a apenas um projeto específico.

A pasta obj

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

O ficheiro Propriedades/launchSettings.json

O arquivo Properties/launchSettings.json contém dados de configuração de como o aplicativo é iniciado durante o desenvolvimento. Essas configurações incluem a applicationUrl propriedade, que especifica a URL raiz que o aplicativo usa, como https://localhost:{port}, onde {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"
      }
    }
  }
}

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, incluindo 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 de 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, preparação e produção.

No novo projeto vazio do ASP.NET Core que você criou, 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 app.MapGet() método define diretamente um ponto de extremidade que lida com 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 para a URL raiz do aplicativo. Por exemplo, http://localhost:{port}/onde {port} é um número de porta atribuído aleatoriamente no arquivo Properties/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 para a URL raiz, essa expressão lambda é executada e retorna a cadeia de caracteres "Hello World!"