Übung: Schreiben von Code zum Implementieren einer Web-Anwendung

Abgeschlossen

In dieser Lerneinheit verwenden Sie Entwicklertools, um den Code für eine Webanwendung für Einsteiger zu erstellen.

Erstellen eines neuen Webprojekts

Das Herzstück der .NET-CLI-Tools ist das dotnet-Befehlszeilentool. Mit diesem Befehl erstellen Sie ein neues ASP.NET Core-Webprojekt.

Führen Sie den folgenden Befehl aus, um eine neue ASP.NET Core-MVC-Anwendung (Model-View Controller) namens „BestBikeApp“ zu erstellen:

dotnet new mvc --name BestBikeApp

Der Befehl erstellt einen neuen Ordner namens „BestBikeApp“ zur Aufnahme Ihres Projekts.

Optionales Testen der Web-App

Sie können Ihre Anwendung lokal in Azure testen. Führen Sie dazu die folgenden Schritte aus:

  1. Führen Sie die folgenden Befehle aus, um Ihre Webanwendung im Hintergrund zu erstellen und auszuführen:

    cd BestBikeApp
    dotnet run &
    

    Sie sollten eine Ausgabe wie im folgenden Beispiel erhalten:

    [1] <process-number>
    <username> [ ~/BestBikeApp ]$ Building...
    warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
          No XML encryptor configured. Key {b4a2970c-215c-4eb2-92b4-c28d021158c6} may be persisted to storage in unencrypted form.
    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: http://localhost:<port>
    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/cephas_lin/BestBikeApp
    

    Achten Sie in der Ausgabe auf die Werte für <process-number> und <port>.

  2. Führen Sie den folgenden Befehl aus, um zu Ihrer Webanwendung zu navigieren, und ersetzen Sie <port> durch den Port, den Sie sich im vorherigen Schritt notiert haben.

    curl -kL http://localhost:<port>/
    

    Es sollte HTML angezeigt werden, das mit den folgenden Zeilen endet:

    <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 b-b5g3qljvtd class="border-top footer text-muted">
            <div b-b5g3qljvtd class="container">
                &copy; 2024 - 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=hRQyftXiu1lLX2P9Ly9xa4gHJgLeR1uGN5qegUobtGo"></script>
    
    </body>
    </html>
    
  3. Verwenden Sie den Wert für <process-number>, den Sie sich zuvor notiert haben, um dotnet zu beenden:

    kill <process-number>
    

Sie verwenden zum Erstellen einer Starterwebanwendung Maven, ein häufig verwendetes Projektmanagement- und Erstellungstool für Java-Apps. Zum Generieren des Codes für die Webanwendung wird die Vorlage maven-archetype-webapp verwendet.

  1. Führen Sie jetzt die folgenden Befehle in Azure Cloud Shell aus, um eine neue Web-App zu erstellen:

    cd ~
    mvn archetype:generate -DgroupId=example.demo -DartifactId=helloworld -DinteractiveMode=false -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.5
    
  2. Führen Sie nun die folgenden Befehle aus, um zum Verzeichnis der neuen helloworld-Anwendung zu wechseln und die Anwendung für die Bereitstellung zu verpacken:

    cd helloworld
    mvn package
    
  3. Wenn die Ausführung des Befehls abgeschlossen ist, führen Sie die folgenden Befehle aus, um das Verzeichnis target zu öffnen und dessen Inhalt aufzulisten:

    cd target
    ls
    

Sie haben jetzt eine Datei namens helloworld.war. Dabei handelt es sich um das Webanwendungspaket, das wir in App Service bereitstellen.

Zum Erstellen einer Node.js-Web-Starterwebanwendung verwenden Sie den Node-Paket-Manager (npm) und JavaScript-Code zum Ausführen der eigentlichen Webseitenverarbeitung.

  1. Führen Sie die folgenden Befehle im Terminal aus, um eine neue Datei package.json mit der Beschreibung der Node.js-Anwendung zu erstellen:

    cd ~
    mkdir helloworld
    cd helloworld
    cat >package.json <<EOL
    {
      "name": "helloworld",
      "version": "1.0.0",
      "scripts": {
        "start": "node index.js"
      }
    }
    EOL
    

Eine neue Datei vom Typ package.json wird im aktuellen Ordner erstellt. Wenn Sie im Terminalfenster ls eingeben, sollte sie im aktuellen Ordner aufgeführt werden. Sie benötigen eine JavaScript-Datei, um die Websitelogik auszuführen. Für dieses einfache Beispiel benötigen wir nur eine Datei: index.js.

  1. Erstellen Sie die Datei, indem Sie im Terminal den folgenden Befehl ausführen:

    cat >index.js <<EOL
    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}\`);
    EOL
    

Optionales Testen der Web-App

Während Sie die helloworld-Web-App ausführen, können Sie überprüfen, ob die Ausführung lokal erfolgt, indem Sie eine zweite Befehlsshellsitzung öffnen.

  1. Navigieren Sie in einer neuen Browserregisterkarte zu https://shell.azure.com/.

  2. Führen Sie die folgenden Befehle in Ihrer primären Befehlsshellsitzung aus, um Ihre Webanwendung im Hintergrund zu starten:

    cd ~/helloworld
    npm start &
    

    Sie sollten eine Ausgabe wie im folgenden Beispiel erhalten:

    [1] <process-number>
    > helloworld@1.0.0 start
    > node index.js
    
    Server running at http://localhost:1337
    

    Achten Sie in der Ausgabe auf den Wert für <process-number>.

  3. Führen Sie in derselben Cloud Shell-Sitzung den folgenden Befehl aus, um zu Ihrer Webanwendung zu navigieren.

    curl -kL http://localhost:1337/
    

    Die Ausgabe sollte wie folgt aussehen:

    <html><body><h1>Hello World!</h1></body></html>
    
  4. Verwenden Sie den Wert für <process-number>, den Sie sich zuvor notiert haben, um node zu beenden:

    kill <process-number>
    

Zum Erstellen einer Starterwebanwendung wird hier das Webanwendungsframework Flask verwendet.

  1. Führen Sie die folgenden Befehle in Azure Cloud Shell aus, um eine virtuelle Umgebung einzurichten und Flask in Ihrem Profil zu installieren:

    python3 -m venv venv
    source venv/bin/activate
    pip install flask
    
  2. Führen Sie die folgenden Befehle aus, um Ihr neues Web-App-Verzeichnis zu erstellen und zu ihm wechseln:

    mkdir ~/BestBikeApp
    cd ~/BestBikeApp
    
  3. Erstellen Sie eine neue Datei namens application.py mit einer einfachen HTML-Antwort:

    cat >application.py <<EOL
    from flask import Flask
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
        return "<html><body><h1>Hello Best Bike App!</h1></body></html>\n"
    EOL
    
  4. Um Ihre Anwendung in Azure bereitzustellen, müssen Sie die Liste der Anwendungsanforderungen, die Sie dafür erstellt haben, in einer Datei namens requirements.txt speichern. Führen Sie hierzu den folgenden Befehl aus:

    pip freeze > requirements.txt
    

Optionales Testen der Web-App

Sie können Ihre Anwendung lokal in Azure testen, während sie ausgeführt wird.

  1. Führen Sie die folgenden Befehle aus, um Ihre Webanwendung im Hintergrund zu starten:

    cd ~/BestBikeApp
    export FLASK_APP=application.py
    flask run &
    

    Sie sollten eine Ausgabe wie im folgenden Beispiel erhalten:

    [1] <process-number>
     * Serving Flask app 'application.py'
     * Debug mode: off
    WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
     * Running on http://127.0.0.1:5000
    Press CTRL+C to quit
    

    Achten Sie in der Ausgabe auf den Wert für <process-number>. Da der Prozess im Hintergrund ausgeführt wird, können Sie ihn nicht mit STRG+C beenden. Sie müssen ihn mit seiner Prozessnummer beenden.

  2. Führen Sie den folgenden Befehl aus, um zu Ihrer Webanwendung zu navigieren.

    curl -kL http://localhost:5000/
    

    Die folgende HTML-Ausgabe sollte angezeigt werden:

    <html><body><h1>Hello Best Bike App!</h1></body></html>
    
  3. Verwenden Sie den Wert für <process-number>, den Sie sich zuvor notiert haben, um Flask zu beenden:

    kill <process-number>