Exercício – Escrever o código para implementar um aplicativo Web

Concluído

Nesta unidade, você usará ferramentas para desenvolvedores a fim de criar o código de um aplicativo Web inicial.

Criar um projeto Web

O núcleo das ferramentas da CLI do .NET é a ferramenta de linha de comando dotnet. Usando esse comando, você cria um novo projeto web ASP.NET Core.

Execute o seguinte comando para criar um aplicativo Model-View Cotroller (MVC) do ASP.NET Core chamado "BestBikeApp":

dotnet new mvc --name BestBikeApp

O comando cria uma nova pasta chamada "BestBikeApp" para armazenar seu projeto.

Opcionalmente, teste o aplicativo Web

Você pode testar o aplicativo localmente no Azure. Para fazer isso, execute as seguintes etapas:

  1. Execute os seguintes comandos para criar e executar o seu aplicativo Web em segundo plano:

    cd BestBikeApp
    dotnet run &
    

    Você deve obter uma saída como a do exemplo a seguir:

    [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
    

    Na saída, anote os valores de <process-number> e <port>.

  2. Execute o comando a seguir para navegar até o seu aplicativo Web, substituindo <port> pela porta que você anotou na última etapa.

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

    Um HTML deverá aparecer, terminando com as seguintes linhas:

    <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. Usando o <número de processo> que você anotou anteriormente, pare o dotnet:

    kill <process-number>
    

Para criar um aplicativo web inicial, usamos o Maven, uma ferramenta de gerenciamento e construção de projetos comumente usada para aplicativos Java. Usamos o modelo maven-archetype-webapp para gerar o código para nosso aplicativo web.

  1. Execute os seguintes comandos no Azure Cloud Shell agora para criar um aplicativo Web:

    cd ~
    mvn archetype:generate -DgroupId=example.demo -DartifactId=helloworld -DinteractiveMode=false -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.5
    
  2. Agora, execute estes comandos para alterar para o novo diretório de aplicativos "helloworld" e empacotar o aplicativo para implantação:

    cd helloworld
    mvn package
    
  3. Após a execução do comando, digite estes comandos para abrir o diretório de destino e listar o conteúdo:

    cd target
    ls
    

Agora você tem um arquivo chamado helloworld.war que é o pacote de aplicativo web que vamos implantar no Serviço de Aplicativo do Azure.

Para criar um aplicativo web Node.js inicial, usamos o Node Package Manager (npm) junto com algum código JavaScript para executar o processamento real da página web.

  1. Execute os seguintes comandos no terminal para criar um novo arquivo package.json que descreva nosso aplicativo Node.js:

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

Um novo arquivo package.json é criado na pasta atual. Você deverá encontrá-lo na pasta atual se inserir ls na janela do terminal. Precisamos de um arquivo JavaScript para executar a lógica do nosso site. Para esse exemplo básico, precisamos apenas de um arquivo: index.js.

  1. Crie o arquivo executando o seguinte comando no terminal:

    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
    

Opcionalmente, teste o aplicativo Web

Enquanto estiver executando o aplicativo Web Olá, Mundo, você pode verificar se ele está em execução localmente abrindo uma segunda sessão do shell de comando.

  1. Em uma nova guia do navegador, navegue até https://shell.azure.com/.

  2. Na sessão do shell de comando principal, execute os seguintes comandos para iniciar o seu aplicativo Web em segundo plano:

    cd ~/helloworld
    npm start &
    

    Você deve obter uma saída como a do exemplo a seguir:

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

    Na saída, anote o valor de <process-number>.

  3. Na mesma sessão do Cloud Shell, execute o comando a seguir para navegar até o seu aplicativo Web.

    curl -kL http://localhost:1337/
    

    Você deverá obter o seguinte resultado:

    <html><body><h1>Hello World!</h1></body></html>
    
  4. Usando o <número de processo> que você anotou anteriormente, pare o nó:

    kill <process-number>
    

Para criar um aplicativo web inicial, usamos a estrutura de aplicativo web Flask.

  1. Execute os seguintes comandos no Azure Cloud Shell para configurar um ambiente virtual e instalar o Flask em seu perfil:

    python3 -m venv venv
    source venv/bin/activate
    pip install flask
    
  2. Execute estes comandos para criar e alternar para o novo diretório do aplicativo Web:

    mkdir ~/BestBikeApp
    cd ~/BestBikeApp
    
  3. Crie um novo arquivo chamado application.py com uma resposta HTML básica:

    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. Para implantar seu aplicativo no Azure, você precisa salvar a lista de requisitos de aplicativo que você criou para ele em um arquivo requirements.txt. Para fazer isso, execute o comando a seguir:

    pip freeze > requirements.txt
    

Opcionalmente, teste o aplicativo Web

Você pode testar o aplicativo localmente no Azure durante a execução.

  1. Execute os seguintes comandos para iniciar o seu aplicativo Web em segundo plano:

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

    Você deve obter uma saída como a do exemplo a seguir:

    [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
    

    Na saída, anote o valor de <process-number>. Como o processo está em execução em segundo plano, você não pode sair com CTRL+C. Você precisará interrompê-lo com o número do processo.

  2. Execute o comando a seguir para navegar até o seu aplicativo Web.

    curl -kL http://localhost:5000/
    

    Você deverá obter a seguinte saída HTML:

    <html><body><h1>Hello Best Bike App!</h1></body></html>
    
  3. Usando o <número de processo> que você anotou anteriormente, pare o Flask:

    kill <process-number>