Esercizio - Eseguire l'app Web in locale
In questo esercizio si vedrà come:
- Eseguire l'app Web in locale e visualizzarla in un browser.
- Esaminare il modo in cui viene gestita l'app Web.
Eseguire l'app Web e visualizzare in un browser
Eseguire l'app Web in Visual Studio Code e visualizzare in un browser:
In Visual Studio Code premere F5 per eseguire l'app.
Visual Studio Code:
- Attiva il comando
dotnet rundell'interfaccia della riga di comando di .NET che compila ed esegue l'applicazione. - Collega il debugger all'applicazione in esecuzione.
La prima volta che il progetto viene eseguito in Visual Studio Code, viene visualizzato il prompt Seleziona debugger.
- Attiva il comando
Al prompt Seleziona debugger del riquadro comandi nella parte superiore dell'interfaccia utente di Visual Studio Code selezionare C#. Al prompt successivo selezionare la configurazione di avvio predefinita (
C#: MyWebApp [Default Configuration]):
Il browser predefinito viene avviato in
http://localhost:{PORT}, che mostra la risposta dell'app. Il segnaposto{PORT}è la porta casuale assegnata all'app quando viene creato il progetto dell'app. Se è necessario modificare la porta a causa di un conflitto di porte locali, modificare la porta nel file Properties/launchSettings.json del progetto.Risposta visualizzata nel browser:
Chiudere la finestra del browser.
In Visual Studio:
- Nel menu Esegui selezionare Arresta debug.
- Sulla tastiera premere MAIUSC+F5.
Eseguire l'app Web usando l'interfaccia della riga di comando di .NET:
Da un terminale o dalla riga di comando accedere alla directory del progetto MyWebApp contenente il file MyWebApp.csproj.
Compilare ed eseguire l'app con il comando seguente:
dotnet runIl progetto viene compilato, eseguito e mostra l'output seguente nella riga di comando:
C:\MyWebApp> dotnet run Building... info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5267 info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down.Poiché il numero di porta nell'URL specificato viene impostato in modo casuale nella configurazione al momento della creazione del progetto, l'endpoint potrebbe avere un numero di porta diverso.
Aprire un browser per l'URL generato in corrispondenza dell'output della riga di comando, viene visualizzata la risposta
Hello World!dell'app:
Per arrestare l'app, premere CTRL+C nella riga di comando.
Modalità di gestione dell'app Web
Quando l'app viene compilata ed eseguita, vengono eseguiti i passaggi seguenti:
Compilazione e configurazione:
- MSBuild viene richiamato per ripristinare le dipendenze e compilare il progetto. MSBuild elabora il file di progetto MyWebApp.csproj e compila il codice sorgente in un assembly.
- L'app legge le impostazioni di configurazione, incluse le impostazioni specificate in launchSettings.json per il profilo di avvio predefinito (la prima elencata).
Configurazione host:
- Il metodo
WebApplication.CreateBuilderin Program.cs configura l'host Web. Per impostazione predefinita, questo metodo configura Kestrel come server Web. Kestrel è un server Web multipiattaforma per ASP.NET Core progettato per prestazioni elevate. - Kestrel inizia ad ascoltare le richieste HTTP in ingresso negli URL configurati, incluso HTTPS, se specificato.
Gestione richieste:
- Quando viene ricevuta una richiesta, Kestrel lo inoltra alla pipeline middleware ASP.NET Core.
- La pipeline middleware elabora la richiesta tramite una serie di componenti middleware, che possono gestire attività come l'autenticazione, la registrazione e il routing.
- Se la richiesta corrisponde a una route definita, viene eseguito l'endpoint corrispondente. In questo caso, l'endpoint
app.MapGet("/", () => "Hello World!")gestisce le richieste all'URL radice e restituisce la stringaHello World!.
Risposta:
- La risposta, che in questo caso è la stringa "Hello World!", viene inviata di nuovo tramite la pipeline middleware a Kestrel, che quindi lo invia al client.