Esercizio - Creare un progetto di app Web core ASP.NET da un modello

Completato

In questo esercizio si eseguiranno le seguenti operazioni:

  • Creare un progetto di app Web core ASP.NET da un modello.
  • Esaminare la struttura del progetto creato.

Creare un'app Web ASP.NET Core usando un modello

In Visual Studio Code, creare un nuovo progetto:

  1. Selezionare la visualizzazione Explorer:

    Screenshot della selezione della visualizzazione Explorer.

  2. Selezionare il pulsante Crea progetto .NET. In alternativa, è possibile visualizzare il riquadro comandi usando CTRL+SHIFT+P e quindi digitare ".NET" per trovare e selezionare .NET: Comando Nuovo progetto.

    Screenshot della selezione di Crea progetto .NET.

  3. Selezionare il modello ASP.NET Core Empty dall'elenco.

  4. Nella finestra di dialogo Percorso progetto, creare una cartella denominata MyWebApp per contenere il progetto.

  5. Nel riquadro comandi denominare il progetto MyWebApp, inclusa la corrispondenza tra maiuscole e minuscole. L'uso di questo nome esatto del progetto è importante per assicurarsi che gli spazi dei nomi per il codice in questa istruzione corrispondano ai propri.

  6. Selezionare Crea progetto dal riquadro comandi.

Esaminare la struttura del progetto

Il contenuto della cartella del progetto MyWebApp viene visualizzato in EXplorer di Visual Studio Code:

Screenshot dei file di progetto in Explorer di Visual Studio Code.

Da un terminale o dalla riga di comando, creare un nuovo progetto:

  1. Passare alla directory (cd) che conterrà il progetto.

  2. Creare un'app Web ASP.NET Core in una directory denominata MyWebApp eseguendo il comando dell'interfaccia della riga di comando di .NET dotnet new:

    dotnet new web -o MyWebApp
    

    Viene creato un nuovo progetto Web vuoto ASP.NET Core in una directory denominata MyWebApp.

    Di seguito, viene illustrata la sintassi del comando:

    • dotnet new: Comando dell'interfaccia della riga di comando .NET per la creazione di vari artefatti di sviluppo .NET basati su modelli come progetti, soluzioni, librerie, configurazione e altri file specializzati.
    • web: Modello di progetto usato per creare un progetto Web vuoto ASP.NET Core, che non contiene contenuto di esempio. web è uno dei numerosi modelli predefiniti disponibili in .NET SDK.
    • -o: L'opzione di output specifica la directory in cui viene creato il nuovo progetto:
      • Se la directory non esiste, l'interfaccia della riga di comando di .NET la crea.
      • La directory in cui viene creato il progetto funge da nome di progetto, spazio dei nomi e nome dell'assembly predefinito (il nome dell'output compilato).
      • Se l'opzione di output -o <directory> non viene usata, viene usata la directory corrente.
  3. Aprire la cartella del progetto MyWebApp.

Esaminare la struttura del progetto

Il contenuto della cartella del progetto MyWebApp viene visualizzato in EXplorer di Visual Studio Code:

Screenshot dei file di progetto in Explorer di Visual Studio Code.

Le sezioni seguenti contengono una panoramica delle cartelle e dei file di progetto principali del progetto ASP.NET core vuoto:

File di progettoMyWebApp.csproj

Il file di progetto con estensione .csproj viene usato per:

  • Configurare la modalità di compilazione del progetto
  • Specificare la versione di .NET di destinazione
  • Gestire le dipendenze del progetto

File di soluzione .sln

Quando un progetto ASP.NET Core viene creato o aperto in Visual Studio Code (con l'estensione C# Dev Kit), crea un file di soluzione [nome progetto].sln. Il file di soluzione [nome progetto].sln contiene informazioni per uno o più progetti correlati, tra cui informazioni sulla compilazione, impostazioni ed eventuali file esterni non associati a un solo progetto specifico.

Cartella obj

La cartella obj contiene file intermedi usati dal sistema di compilazione, inclusi i file oggetto compilati generati dai file di origine. L'output finale della compilazione viene inserito in una cartella bin creata durante il processo di compilazione.

File Properties/launchSettings.json

Il file Properties/launchSettings.json contiene i dati di configurazione per il modo in cui l'app viene avviata durante lo sviluppo. Queste impostazioni includono la proprietà applicationUrl, che specifica l'URL radice usato dall'app, ad esempio https://localhost:{port}, dove {port} è un numero di porta locale casuale assegnato al momento della creazione del progetto.

Il file launchSettings.json contiene la configurazione seguente:

{
  "$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"
      }
    }
  }
}

Il file Program.cs

Il file Program.cs funge da punto di ingresso per un'app ASP.NET Core e ha diversi scopi chiave, tra cui:

  • Configurazione dell'host: Configura l'host, inclusa la configurazione del server Web.
  • Registrazione del servizio: Aggiunge servizi alle funzionalità dell'app, ad esempio contesti di database, registrazione e servizi specializzati per framework specifici.
  • Configurazione della pipeline middleware: Definisce la pipeline di gestione delle richieste dell'app come una serie di istanze del middleware.
  • Configurazione dell'ambiente: Configura le impostazioni specifiche dell'ambiente per lo sviluppo, la gestione temporanea e la produzione.

Nel nuovo progetto core ASP.NET vuoto creato, il file Program.cs contiene il codice minimo seguente:

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

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

app.Run();

Le righe di codice seguenti in questo file creano un oggetto WebApplicationBuilder con impostazioni predefinite preconfigurate e compila l'app:

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

Il metodo app.MapGet() definisce direttamente un endpoint che gestisce le richieste HTTP GET:

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

app.MapGet("/"): Definisce una route per la richiesta HTTP GET. / indica che questa route risponde alle richieste effettuate all'URL radice dell'app. Ad esempio, http://localhost:{port}/, dove {port} è un numero di porta assegnato in modo casuale nel file Properties/launchSettings.json al momento della creazione del progetto.

() => "Hello World!": Espressione lambda che funge da gestore della richiesta. Quando viene effettuata una richiesta GET all'URL radice, questa espressione lambda viene eseguita e restituisce la stringa "Hello World!"