Övning – Skriva kod för att implementera en webbapp

Slutförd

I den här lektionen använder du utvecklarverktyg för att skapa koden för ett startwebbprogram.

Skapa ett nytt webbprojekt

Navet bland .NET CLI-verktygen är kommandoradsverktyget dotnet. Med det här kommandot skapar du ett nytt ASP.NET Core-webbprojekt.

Först installerar vi rätt version av dotnet i Cloud Shell. I den här övningen använder vi SDK-versionen 3.1.102.

  1. Kör följande kommandon i Azure Cloud Shell till höger för att ladda ned och installera dotnet:

    wget -q -O - https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh | bash -s -- --version 6.0.404
    export PATH="~/.dotnet:$PATH"
    echo "export PATH=~/.dotnet:\$PATH" >> ~/.bashrc
    
  2. Kör sedan följande kommando för att skapa ett nytt ASP.NET Core MVC-program med namnet "BestBikeApp":

    dotnet new mvc --name BestBikeApp
    

Kommandot skapar en ny mapp som heter ”BestBikeApp”, där projektet ska lagras.

Du kan även testa webbappen

Öppna en andra kommandogränssnittssession genom att bläddra till https://shell.azure.com/ på en ny flik. Du kan testa ditt program lokalt i Azure. Gör det med hjälp av följande steg:

  1. I den primära kommandogränssnittssessionen kör du följande kommandon för att skapa och köra webbappen:

    cd BestBikeApp
    dotnet run
    

    Du bör få utdata som följande:

    info: Microsoft.Hosting.Lifetime[0]
          Now listening on: https://localhost:5001
    info: Microsoft.Hosting.Lifetime[0]
          Now listening on: http://localhost:5000
    info: Microsoft.Hosting.Lifetime[0]
          Application started. Press Ctrl+C to shut down.
    info: Microsoft.Hosting.Lifetime[0]
          Hosting environment: Development
    info: Microsoft.Hosting.Lifetime[0]
          Content root path: /home/user/BestBikeApp
    

    Utdata beskriver situationen efter att du har startat appen: programmet körs och lyssnar på port 5000.

  2. I den sekundära kommandogränssnittssessionen kör du följande kommando för att bläddra till webbappen:

    curl -kL http://127.0.0.1:5000/
    

    Du bör se viss HTML-kod som slutar på följande rader:

         <div class="text-center">
         <h1 class="display-4">Welcome</h1>
         <p>Learn about <a href="https://learn.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
     </div>
    
             </main>
         </div>
    
         <footer class="border-top footer text-muted">
             <div class="container">
                 &copy; 2021 - BestBikeApp - <a href="/Home/Privacy">Privacy</a>
             </div>
         </footer>
         <script src="/lib/jquery/dist/jquery.min.js"></script>
         <script src="/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
         <script src="/js/site.js?v=4q1jwFhaPaZgr8WAUSrux6hAuh0XDg9kPS3xIVq36I0"></script>
    
     </body>
     </html>
    
  3. I den primära kommandogränssnittssessionen trycker du på Ctrl + C för att avsluta webbappen.

För att skapa en startwebbapp använder vi Maven, ett vanligt projekthanterings- och byggverktyg för Java-appar. Vi använder maven-archetype-webapp-mallen till att generera koden för webbappen.

  1. Kör följande kommandon i Azure Cloud Shell nu för att skapa en ny webbapp:

    cd ~
    mvn archetype:generate -DgroupId=example.demo -DartifactId=helloworld -DinteractiveMode=false -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4
    
  2. Kör följande kommandon för att ändra till den nya ”helloworld”-programkatalogen och paketera programmet för distribution:

    cd helloworld
    mvn package
    
  3. När kommandot har körts kör du dessa kommandon för att öppna målkatalogen och visa dess innehåll:

    cd target
    ls
    

Du har en fil med namnet helloworld.war. Det här är det webbprogrampaket som vi ska distribuera till App Service.

Vi skapar en Node.js-startwebbapp med hjälp av Node Package Manager (npm), samt viss JavaScript-kod som kör den faktiska bearbetningen av webbsidan.

  1. Kör följande kommandon i Azure Cloud Shell för att skapa en ny package.json som beskriver vårt Node.js-program:

    cd ~
    mkdir helloworld
    cd helloworld
    npm init -y
    

Då skapas en ny package.json fil i den aktuella mappen. Du bör hitta den i den aktuella mappen om du anger ls i terminalfönstret. Vi behöver en JavaScript-fil för att köra vår webbplatslogik. Eftersom detta bara är ett grundläggande exempel behöver vi bara en fil: index.js.

  1. Kör följande kommando i terminalen för att skapa filen:

    touch index.js
    
  2. Nu måste vi göra några ändringar i båda våra filer. Kör följande kommando i terminalen för att öppna en interaktiv redigerare:

    code .
    
  3. package.json Välj filen och gör följande ändringar i scripts avsnittet för att använda Node.js för att starta webbappen:

    {
      "name": "helloworld",
      ...
      "scripts": {
        "start": "node index.js"
      },
      ...
    }
    
  4. Spara filen genom att välja menyn ... eller tryck på Ctrl+S i Windows och Linux eller Command+S på macOS.

    Viktigt!

    När du redigerar en fil i redigeraren ska du spara efteråt genom att välja menyn ... i det övre högra hörnet i redigeraren eller genom att trycka på Ctrl+S i Windows och Linux eller Command+S på macOS. Om du vill avsluta redigeraren trycker du på Ctrl+Q i Windows och Linux eller klickar på det övre högra hörnet i redigeraren och väljer Avsluta i MacOS.

  5. Växla till filen index.js och lägg till följande innehåll i den. Det här är ett litet Node.js-program som alltid svarar med "Hello World!" när en GET-begäran görs till servern.

    const http = require('http');
    
    const server = http.createServer(function(request, response) {
        response.writeHead(200, { "Content-Type": "text/html" });
        response.end("<html><body><h1>Hello World!</h1></body></html>");
    });
    
    const port = process.env.PORT || 1337;
    server.listen(port);
    
    console.log(`Server running at http://localhost:${port}`);
    
  6. Spara filen och avsluta redigeraren genom att välja ikonen ... längst upp till höger och välja Spara och stäng redigeraren från snabbmenyn, eller genom att använda snabbtangenterna Ctrl+S och Ctrl+Q i Windows och Linux.

Du kan även testa webbappen

När du kör helloworld-webbappen kan du kontrollera att den körs lokalt genom att öppna en andra kommandogränssnittssession.

  1. Från en ny webbläsarflik bläddrar du till https://shell.azure.com/.

  2. I den primära kommandogränssnittssessionen kör du följande kommandon för att starta webbappen:

    cd ~/helloworld
    npm start
    
  3. I den sekundära kommandogränssnittssessionen kör du följande kommando för att bläddra till webbappen:

    curl http://127.0.0.1:1337/
    

    Du bör se följande utdata:

    <html><body><h1>Hello World!</h1></body></html>
    
  4. Från den primära kommandogränssnittssessionen trycker du på Ctrl+C för att avsluta webbappen och stänger sedan webbläsarfliken för den andra gränssnittssessionen.

För att skapa ett startwebbprogram använder vi Flask-webbappsramverket.

  1. Kör följande kommandon i Azure Cloud Shell för att konfigurera en virtuell miljö och installera Flask i din profil:

    python3 -m venv venv
    source venv/bin/activate
    pip install flask
    
  2. Kör dessa kommandon för att skapa och växla till din nya webbappkatalog:

    mkdir ~/BestBikeApp
    cd ~/BestBikeApp
    
  3. Skapa en ny fil för webbappen genom att öppna application.py i den interaktiva python-redigeraren:

    code application.py
    
  4. Kopiera och klistra in följande Python-kod för att skapa webbappens huvudfunktioner:

    from flask import Flask
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
        return "<html><body><h1>Hello Best Bike App!</h1></body></html>\n"
    
  5. Spara filen och avsluta redigeraren genom att välja menyn ... längst upp till höger och sedan välja Spara>stäng redigeraren, eller genom att trycka på Ctrl+S och Ctrl+Q i Windows och Linux.

  6. Om du vill distribuera ditt program till Azure måste du spara listan över programkrav som du har gjort för det i en requirements.txt-fil . Detta gör du genom att köra följande kommando:

    pip freeze > requirements.txt
    

Du kan även testa webbappen

Du kan testa ditt program lokalt i Azure medan det körs.

  1. Öppna en andra kommandogränssnittssession på en ny webbläsarflik https://shell.azure.com/.

  2. Från den primära kommandogränssnittssessionen (till höger) kör du följande kommandon för att aktivera den virtuella miljön:

    cd ..
    source venv/bin/activate
    
  3. Från den primära kommandogränssnittssessionen (till höger) kör du följande kommandon för att starta webbprogrammet:

    cd ~/BestBikeApp
    export FLASK_APP=application.py
    flask run
    
  4. I den sekundära kommandogränssnittssessionen kör du följande kommando för att bläddra till webbappen:

    curl http://127.0.0.1:5000/
    

    Du bör få följande HTML-utdata:

    <html><body><h1>Hello Best Bike App!</h1></body></html>
    
  5. Från den primära kommandogränssnittssessionen trycker du på Ctrl+C för att avsluta webbappen och stänger sedan det sekundära Azure Cloud Shell.