Tutorial: Implantar um aplicativo ASP.NET no Azure com o Banco de Dados SQL do Azure

O Serviço de Aplicações do Azure oferece um serviço de alojamento na Web altamente dimensionável e com correção automática. Este tutorial mostra como implantar um aplicativo ASP.NET controlado por dados no Serviço de Aplicativo e conectá-lo ao Banco de Dados SQL do Azure. Quando terminar, você terá um aplicativo ASP.NET em execução no Azure e conectado ao Banco de Dados SQL.

Published ASP.NET application in Azure App Service

Neste tutorial, irá aprender a:

  • Criar um banco de dados no Banco de Dados SQL do Azure
  • Ligar uma aplicação ASP.NET à Base de Dados SQL
  • Implementar a aplicação no Azure
  • Atualizar o modelo de dados e voltar a implementar a aplicação
  • Transmitir os registos do Azure para o seu terminal

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

Para concluir este tutorial:

Instale o Visual Studio 2022 com as cargas de trabalho de desenvolvimento ASP.NET e Web e desenvolvimento do Azure.

Se já tiver instalado o Visual Studio, adicione as cargas de trabalho no Visual Studio clicando em Ferramentas>Obter Ferramentas e Funcionalidades.

Transferir o exemplo

  1. Transfira o projeto de exemplo.

  2. Extraia (deszipe) o ficheiro dotnet-sqldb-tutorial-master.zip.

O projeto de exemplo contém uma aplicação básica ASP.NET MVC create-read-update-delete - criar-ler-atualizar-eliminar (CRUD) que utiliza o Entity Framework Code First.

Executar a aplicação

  1. Abra o ficheiro dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln no Visual Studio.

  2. Escreva F5 para executar a aplicação. A aplicação é apresentada no browser predefinido.

    Nota

    Se você instalou apenas o Visual Studio e os pré-requisitos, talvez seja necessário instalar pacotes ausentes via NuGet.

  3. Selecione a ligação Criar Novo e criar alguns itens a fazer.

    New ASP.NET Project dialog box

  4. Teste as ligações Editar, Detalhes e Eliminar.

A aplicação utiliza um contexto de base de dados para se ligar à base de dados. Neste exemplo, o contexto de base de dados utiliza uma cadeia de ligação com o nome MyDbConnection. A cadeia de ligação é definida no ficheiro Web.config e é referenciado no ficheiro Models/MyDatabaseContext.cs. O nome da cadeia de conexão é usado posteriormente no tutorial para conectar o aplicativo do Azure a um Banco de Dados SQL do Azure.

Publicar ASP.NET aplicativo no Azure

  1. No Explorador de Soluções, clique com o botão direito do rato no projeto DotNetAppSqlDb e selecione Publicar.

    Publish from Solution Explorer

  2. Selecione Azure como seu destino e clique em Avançar.

  3. Verifique se o Serviço de Aplicativo do Azure (Windows) está selecionado e clique em Avançar.

Iniciar sessão e adicionar uma aplicação

  1. Na caixa de diálogo Publicar, clique em Entrar.

  2. Entre na sua assinatura do Azure. Se já tiver sessão iniciada numa conta Microsoft, confirme que esta inclui a sua subscrição do Azure. Se a subscrição do Azure não estiver na conta Microsoft em que tem sessão iniciada, clique nesta para adicionar a conta correta.

  3. No painel Instâncias do Serviço de Aplicativo, clique em +.

    Sign in to Azure

Configurar o nome da aplicação Web

Pode manter o nome da aplicação Web gerado ou alterá-lo para outro nome exclusivo (os carateres válidos são a-z, 0-9 e -). O nome da aplicação Web é utilizado como parte do URL predefinido da sua aplicação (<app_name>.azurewebsites.net, onde <app_name> é o nome da aplicação Web). O nome da aplicação Web tem de ser exclusivo em todas as aplicações no Azure.

Nota

Não selecione Criar ainda.

Create app service dialog

Criar um grupo de recursos

Um grupo de recursos é um contêiner lógico no qual os recursos do Azure, como aplicativos Web, bancos de dados e contas de armazenamento, são implantados e gerenciados. Por exemplo, pode optar por eliminar todo o grupo de recursos num único passo simples mais tarde.

  1. Junto a Grupo de Recursos, clique em Novo.

    Next to Resource Group, click New.

  2. Dê o nome myResourceGroup ao grupo de recursos.

Criar um plano do Serviço de Aplicações

Um plano do serviço de aplicações especifica o local, tamanho e funcionalidades da farm de servidores Web que aloja a aplicação. Você pode economizar dinheiro ao hospedar vários aplicativos configurando os aplicativos Web para compartilhar um único plano do Serviço de Aplicativo.

Os planos do Serviço de Aplicações definem:

  • Região (por exemplo: Europa do Norte, E.U.A. Leste, Ásia Sudeste)
  • Tamanho da instância (pequena, média, grande)
  • Contagem do dimensionamento (1 a 20 instâncias)
  • SKU (Gratuito, Partilhado, Básico, Standard ou Premium)
  1. Ao lado de Plano de hospedagem, clique em Novo.

  2. Na caixa de diálogo Configurar Plano do Serviço de Aplicativo, configure o novo plano do Serviço de Aplicativo com as seguintes configurações e clique em OK:

    Definição Valor sugerido Para obter mais informações
    Plano do Serviço de Aplicações myAppServicePlan Planos do Serviço de Aplicações
    Localização Europa Ocidental Regiões do Azure
    Tamanho Gratuito Escalões de preços

    Create App Service plan

  3. Clique em Criar e aguarde até que os recursos do Azure sejam criados.

  4. A caixa de diálogo Publicar mostra os recursos que você configurou. Clique em Concluir.

    the resources you've created

Criar um servidor e uma base de dados

Antes de criar um banco de dados, você precisa de um servidor SQL lógico. Um servidor SQL lógico é uma construção lógica que contém um grupo de bancos de dados gerenciados como um grupo.

  1. Na caixa de diálogo Publicar, role para baixo até a seção Dependências do Serviço. Ao lado de Banco de Dados do SQL Server, clique em Configurar.

    Nota

    Certifique-se de configurar o Banco de Dados SQL na página Publicar em vez da página Serviços Conectados .

    Configure SQL Database dependency

  2. Selecione Banco de Dados SQL do Azure e clique em Avançar.

  3. Na caixa de diálogo Configurar Banco de Dados SQL do Azure, clique em +.

  4. Ao lado de Servidor de banco de dados, clique em Novo.

    O nome do servidor é usado como parte da URL padrão para o servidor, <server_name>.database.windows.net. Ele deve ser exclusivo em todos os servidores no Azure SQL. Altere o nome do servidor para o valor desejado.

  5. Adicione um nome de utilizador e uma palavra-passe de administrador. Para saber os requisitos de complexidade das palavras-passe, veja Password Policy (Política de Palavras-passe).

    Memorize o nome de utilizador e a palavra-passe. Você precisa deles para gerenciar o servidor mais tarde.

    Create server

    Importante

    Embora a palavra-passe nas cadeias de ligação esteja ocultada (no Visual Studio e também no Serviço de Aplicações), o facto de ser mantida algures aumenta a superfície de ataque da sua aplicação. O Serviço de Aplicações pode utilizar identidades de serviço geridas para eliminar este risco ao remover a necessidade de manter segredos na configuração do código ou da aplicação. Para obter mais informações, veja Passos seguintes.

  6. Clique em OK.

  7. Na caixa de diálogo Banco de Dados SQL do Azure, mantenha o Nome do Banco de Dados gerado padrão. Selecione Criar e aguarde a criação dos recursos do banco de dados.

    Configure database

Configurar conexão de banco de dados

  1. Quando o assistente terminar de criar os recursos do banco de dados, clique em Avançar.

  2. Na cadeia de conexão Nome da cadeia de conexão do banco de dados, digite MyDbConnection. Este nome tem de corresponder à cadeia de ligação que é referenciada em Models/MyDatabaseContext.cs.

  3. Em Nome de usuário de conexão de banco de dados e Senha de conexão de banco de dados, digite o nome de usuário e a senha de administrador usados em Criar um servidor.

  4. Verifique se Configurações do Aplicativo do Azure está selecionada e clique em Concluir.

    Nota

    Se, em vez disso, vir Ficheiros de segredos de utilizador locais, tem de ter configurado a Base de Dados SQL a partir da página Serviços Ligados em vez da página Publicar .

    Configure database connection string

  5. Aguarde a conclusão do assistente de configuração e clique em Fechar.

Implantar seu aplicativo ASP.NET

  1. Na guia Publicar, role novamente até a parte superior e clique em Publicar. Depois que seu aplicativo ASP.NET for implantado no Azure. O seu browser é iniciado com o URL para a aplicação implementada.

  2. Adicione alguns itens a fazer.

    Published ASP.NET application in Azure app

    Parabéns! A aplicação ASP.NET condicionada por dados está em execução no Serviço de Aplicações do Azure.

Aceder à base de dados localmente

O Visual Studio permite que você explore e gerencie seu novo banco de dados no Azure facilmente no Pesquisador de Objetos do SQL Server. O novo banco de dados já abriu seu firewall para o aplicativo do Serviço de Aplicativo que você criou. Mas para acessá-lo do computador local (como do Visual Studio), você deve abrir um firewall para o endereço IP público da máquina local. Se seu provedor de serviços de Internet alterar seu endereço IP público, você precisará reconfigurar o firewall para acessar o banco de dados do Azure novamente.

Criar uma ligação à base de dados

  1. No menu Ver, selecione SQL Server Object Explorer.

  2. Na parte superior do SQL Server Object Explorer, clique no botão Adicionar SQL Server.

Configurar a ligação à base de dados

  1. Na caixa de diálogo Ligar, expanda o nó Azure. São apresentadas aqui todas as suas instâncias da Base de Dados SQL no Azure.

  2. Selecione o banco de dados criado anteriormente. A ligação que criou anteriormente é preenchida automaticamente na parte inferior.

  3. Escreva a palavra-passe de administrador da base de dados que criou acima e clique em Ligar.

    Configure database connection from Visual Studio

Permitir a ligação de cliente a partir do computador

É aberta a caixa de diálogo Criar uma regra de firewall nova. Por padrão, um servidor só permite conexões com seus bancos de dados a partir de serviços do Azure, como seu aplicativo do Azure. Para se conectar ao seu banco de dados de fora do Azure, crie uma regra de firewall no nível do servidor. A regra de firewall permite o endereço IP público do seu computador local.

A caixa de diálogo já está preenchida com o endereço IP público do seu computador.

  1. Certifique-se de que Adicionar o meu IP de cliente está selecionado e clique em OK.

    Create firewall rule

    Quando o Visual Studio concluir a criação da definição de firewall para a sua instância da Base de Dados SQL, a ligação aparece em SQL Server Object Explorer.

    Aqui, pode realizar as operações mais comuns de bases de dados, como executar consultas, criar vistas e procedimentos armazenados, entre outras.

  2. Expanda sua conexão >Bancos de dados seu banco de dados><>>Tabelas. Clique com o botão direito do rato na tabela Todoes e selecione Ver Dados.

    Explore SQL Database objects

Atualizar a aplicação com Migrações Code First

Você pode usar as ferramentas familiares no Visual Studio para atualizar seu banco de dados e aplicativo no Azure. Neste passo, vai utilizar Migrações First Code em Entity Framework para fazer uma alteração ao esquema da base de dados e publicá-la no Azure.

Para obter mais informações sobre como utilizar o Entity Framework Code First Migrations, veja Getting Started with Entity Framework 6 Code First using MVC 5 (Introdução a Entity Framework 6 Code First com MVC 5).

Atualizar o modelo de dados

Abra Models\Todo.cs no editor de código. Adicione a seguinte propriedade à classe ToDo:

public bool Done { get; set; }

Executar Primeiras Migrações de Código localmente

Execute alguns comandos para fazer atualizações à base de dados local.

  1. No menu Ferramentas, clique em Gestor de Pacotes NuGet>Consola do Gestor de Pacotes.

  2. Na janela da Consola do Gestor de Pacotes, ative as Migrações Code First:

    Enable-Migrations
    
  3. Adicione uma migração:

    Add-Migration AddProperty
    
  4. Atualize a base de dados local:

    Update-Database
    
  5. Escreva Ctrl+F5 para executar a aplicação. Teste as ligações Editar, Detalhes e Criar.

Se a aplicação for carregada sem erros, as Migrações First Code foram bem-sucedidas. No entanto, sua página ainda tem a mesma aparência porque a lógica do aplicativo ainda não está usando essa nova propriedade.

Utilizar a nova propriedade

Faça algumas alterações no seu código para utilizar a propriedade Done. Para simplificar, neste tutorial, apenas vai alterar as vistas Index e Create para ver a propriedade em ação.

  1. Abra Controllers\TodosController.cs.

  2. Localize o método Create() na linha 52 e adicione Done à lista de propriedades no atributo Bind. Quando terminar, a assinatura do método Create() é semelhante ao seguinte código:

    public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
    
  3. Abra Views\Todos\Create.cshtml.

  4. No código Razor, deverá ver um elemento <div class="form-group"> que utiliza model.Description e outro elemento <div class="form-group"> que utiliza model.CreatedDate. Imediatamente a seguir a estes dois elementos, adicione outro elemento <div class="form-group"> que utilize model.Done:

    <div class="form-group">
        @Html.LabelFor(model => model.Done, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            <div class="checkbox">
                @Html.EditorFor(model => model.Done)
                @Html.ValidationMessageFor(model => model.Done, "", new { @class = "text-danger" })
            </div>
        </div>
    </div>
    
  5. Abra Views\Todos\Index.cshtml.

  6. Procure o elemento <th></th> vazio. Imediatamente acima deste elemento, adicione o seguinte código Razor:

    <th>
        @Html.DisplayNameFor(model => model.Done)
    </th>
    
  7. Localize o elemento <td> que contém os métodos do programa auxiliar Html.ActionLink(). Acima deste elemento <td>, adicione outro elemento <td> com o código Razor seguinte:

    <td>
        @Html.DisplayFor(modelItem => item.Done)
    </td>
    

    É tudo o que precisa para ver as alterações nas vistas Index e Create.

  8. Escreva Ctrl+F5 para executar a aplicação.

Agora, pode adicionar um item a fazer e marcar Concluído. Em seguida, deve ser apresentado na sua home page como um item concluído. Lembre-se de que a vista Edit não apresenta o campo Done, porque a vista Edit não foi alterada.

Ativar Migrações First Code no Azure

Agora que sua alteração de código funciona, incluindo a migração de banco de dados, você a publica em seu aplicativo do Azure e atualiza seu Banco de Dados SQL com Migrações Code First também.

  1. Tal como anteriormente, clique com o botão direito do rato no projeto e selecione Publicar.

  2. Clique em Mais ações>Editar para abrir as configurações de publicação.

    Open publish settings

  3. No menu suspenso MyDatabaseContext, selecione a conexão de banco de dados para seu Banco de Dados SQL do Azure.

  4. Selecione Executar Migrações Code First (executadas quando a aplicação é iniciada) e clique em Guardar.

    Enable Code First Migrations in Azure app

Publicar as alterações

Agora que você habilitou as migrações Code First em seu aplicativo do Azure, publique suas alterações de código.

  1. Na página de publicação, clique em Publicar.

  2. Experimente voltar a adicionar itens de tarefas a fazer e selecione Concluído. As tarefas devem agora aparecer na sua home page como itens concluídos.

    Azure app after Code First Migration

Todos os itens a fazer existentes continuam a ser apresentados. Quando você republica seu aplicativo ASP.NET, os dados existentes no Banco de dados SQL não são perdidos. Além disso, as Migrações Code First apenas alteram o esquema de dados e mantêm os dados existentes intactos.

Transmitir em fluxo registos de aplicações

Você pode transmitir mensagens de rastreamento diretamente do seu aplicativo do Azure para o Visual Studio.

Abra Controllers\TodosController.cs.

Cada ação começa com um método Trace.WriteLine(). Esse código é adicionado para mostrar como adicionar mensagens de rastreamento ao seu aplicativo do Azure.

Ativar a transmissão em fluxo de registos

  1. Na página de publicação, role para baixo até a seção Hospedagem .

  2. No canto direito, clique em ...>Veja os logs de streaming.

    Enable log streaming

    Os registos são agora transmitidos em fluxo para a janela Saída.

    Log streaming in Output window

    No entanto, ainda não vai ver nenhuma das mensagens de rastreio. Isso ocorre porque quando você seleciona Exibir Logs de Streaming pela primeira vez, seu aplicativo do Azure define o nível de rastreamento como Error, que registra apenas eventos de erro (com o Trace.TraceError() método).

Alterar os níveis de rastreio

  1. Para alterar os níveis de rastreamento para gerar outras mensagens de rastreamento, volte para a página de publicação.

  2. Na seção Hospedagem, clique em ...>Abra no portal do Azure.

  3. Na página de gerenciamento do portal do seu aplicativo, no menu à esquerda, selecione Logs do Serviço de Aplicativo.

  4. Em Log de aplicativos (sistema de arquivos), selecione Detalhado em nível. Clique em Guardar.

    Gorjeta

    Pode experimentar diferentes níveis de rastreio para ver os tipos de mensagens que são apresentadas para cada nível. Por exemplo, o nível Informação inclui todos os registos criados por Trace.TraceInformation(), Trace.TraceWarning() e Trace.TraceError(), mas não os criados por Trace.WriteLine().

  5. No navegador, navegue até seu aplicativo novamente em http://< nome do aplicativo.azurewebsites.net> e tente clicar em torno do aplicativo de lista de tarefas no Azure. As mensagens de rastreio são agora transmitidas em fluxo para a janela Saída no Visual Studio.

    Application: 2017-04-06T23:30:41  PID[8132] Verbose     GET /Todos/Index
    Application: 2017-04-06T23:30:43  PID[8132] Verbose     GET /Todos/Create
    Application: 2017-04-06T23:30:53  PID[8132] Verbose     POST /Todos/Create
    Application: 2017-04-06T23:30:54  PID[8132] Verbose     GET /Todos/Index
    

Parar o registo de transmissão em fluxo

Para parar o serviço de transmissão em fluxo de registos, clique no botão Parar a monitorização na janela Saída.

Stop log streaming

Clean up resources (Limpar recursos)

Nos passos anteriores, criou os recursos do Azure num grupo de recursos. Se provavelmente não necessitar desses recursos no futuro, pode eliminá-los ao eliminar o grupo de recursos.

  1. Na página Descrição geral da sua aplicação Web no portal do Azure, selecione a ligação myResourceGroup em Grupo de recursos.
  2. Na página do grupo de recursos, confirme que os recursos apresentados são aqueles que pretende eliminar.
  3. Selecione Eliminar, introduza myResourceGroup na caixa de texto e, em seguida, selecione Eliminar.

Próximos passos

Neste tutorial, ficou a saber como:

  • Criar um banco de dados no Banco de Dados SQL do Azure
  • Ligar uma aplicação ASP.NET à Base de Dados SQL
  • Implementar a aplicação no Azure
  • Atualizar o modelo de dados e voltar a implementar a aplicação
  • Transmitir os registos do Azure para o seu terminal

Avance para o tutorial seguinte para saber como melhorar facilmente a segurança da sua ligação à Base de Dados SQL do Azure.

Mais recursos:

Quer otimizar e economizar em seus gastos com nuvem?