Exercice :exécuter votre application web localement

Effectué

Dans cet exercice, vous allez :

  • Exécuter votre application web localement et l’afficher dans un navigateur.
  • Passer en revue la façon dont l’application web est servie.

Exécuter l’application web et l’afficher dans un navigateur

Exécuter l’application web dans Visual Studio Code et l’afficher dans un navigateur :

  1. Dans Visual Studio Code, appuyez sur F5 pour exécuter l’application.

    Visual Studio Code :

    • Déclenche la commande CLI .NET dotnet runqui génère et exécute l’application.
    • Attache le débogueur à l’application en cours d’exécution.

    La première fois que le projet est exécuté dans Visual Studio Code, l’invite Sélectionner le débogueur s’affiche.

  2. À l’invite Sélectionner un débogueur dans la palette de commandes en haut de l’interface utilisateur de Visual Studio Code, sélectionnez C#. À l’invite suivante, sélectionnez la configuration de lancement par défaut (C#: MyWebApp [Default Configuration]) :

    Capture d’écran de Sélectionner le débogueur dans la palette de commandes.

    Le navigateur par défaut est lancé sur http://localhost:{PORT}, qui affiche la réponse de l’application. L’espace réservé {PORT} est le port aléatoire attribué à l’application lors de la création de son projet. Si vous devez modifier le port en raison d’un conflit de port local, modifiez le port dans le fichier Propriétés/launchSettings.json du projet.

    Réponse affichée dans le navigateur :

    Capture d’écran d’un navigateur affichant la sortie du texte.

  3. Fermez la fenêtre du navigateur.

  4. Dans Visual Studio, soit :

    • Dans le menu Exécuter , sélectionnez Arrêter le débogage.
    • Appuyez sur Maj+F5 sur le clavier.

Exécutez l’application web en utilisant l’interface CLI .NET :

  1. À partir d’un terminal ou de la ligne de commande, accédez au répertoire du projet MyWebApp qui contient votre fichier MyWebApp.csproj .

  2. Générez et exécutez l’application avec la commande suivante :

    dotnet run
    

    Le projet est généré, exécuté et affiche la sortie suivante sur la ligne de commande :

    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.
    

    Étant donné que le numéro de port dans l’URL fournie est défini de façon aléatoire lors de la création du projet, votre point de terminaison peut avoir un autre numéro de port.

  3. Ouvrez un navigateur sur l’URL générée dans votre propre sortie de ligne de commande. La réponse Hello World! de l’application s’affiche :

    Capture d’écran d’un navigateur affichant la sortie du texte.

  4. Pour arrêter l’application, appuyez sur Ctrl+C sur la ligne de commande.

Comment l’application web est servie

Lorsque l’application est générée et exécutée, les étapes suivantes se déroulent :

Génération et configuration :

  • MSBuild est appelé pour restaurer les dépendances et compiler le projet. MSBuild traite le fichier projet MyWebApp.csproj et compile le code source dans un assembly.
  • L’application lit les paramètres de configuration, y compris les paramètres spécifiés dans launchSettings.json pour le profil de lancement par défaut (le premier listé).

Configuration de l’hôte :

  • La WebApplication.CreateBuilder méthode dans Program.cs configure l’hôte web. Par défaut, cette méthode configure Kestrel comme serveur web. Kestrel est un serveur web multiplateforme pour ASP.NET Core conçu pour des performances élevées.
  • Kestrel commence à écouter les requêtes HTTP entrantes sur les URL configurées, y compris HTTPS si spécifié.

Traitement de la requête :

  • Lorsqu’une requête est reçue, Kestrel la transfère au pipeline d’intergiciels ASP.NET Core.
  • Le pipeline d’intergiciels traite la requête via une série de composants intergiciels, qui peuvent gérer des tâches telles que l’authentification, la journalisation et le routage.
  • Si la requête correspond à un itinéraire défini, le point de terminaison correspondant est exécuté. Dans ce cas, le point de terminaison app.MapGet("/", () => "Hello World!") gère les requêtes à l’URL racine et retourne la chaîne Hello World!.

Réponse :

  • La réponse, qui, dans ce cas, est la chaîne « Hello World ! », est renvoyée via le pipeline d’intergiciels à Kestrel, qui la renvoie ensuite au client.