ASP.NET Implantação da Web usando o Visual Studio: Introdução

por Tom Dykstra

Baixar o Projeto Inicial

Esta série de tutoriais mostra como implantar (publicar) um aplicativo Web ASP.NET em Serviço de Aplicativo do Azure Aplicativos Web ou em um provedor de hospedagem de terceiros, usando o Visual Studio 2012 com o SDK do Azure para .NET. A maioria dos procedimentos é semelhante para Visual Studio 2013.

Você desenvolve um aplicativo Web para disponibilizá-lo para pessoas pela Internet. Mas os tutoriais de programação na Web normalmente param logo após mostrarem como fazer algo funcionar em seu computador de desenvolvimento. Esta série de tutoriais começa de onde as outras pessoas param: você criou um aplicativo Web, testou-o e ele está pronto para começar. E agora? Estes tutoriais mostram como implantar primeiro no IIS em seu computador de desenvolvimento local para teste e, em seguida, no Azure ou em um provedor de hospedagem de terceiros para preparo e produção. O aplicativo de exemplo que você implantará é um projeto de aplicativo Web que usa o Entity Framework, SQL Server e o sistema de associação ASP.NET. O aplicativo de exemplo usa ASP.NET Web Forms, mas os procedimentos mostrados também se aplicam a ASP.NET MVC e À API Web.

Esses tutoriais pressupõem que você saiba como trabalhar com ASP.NET no Visual Studio. Se você não fizer isso, um bom lugar para começar é um Tutorial de ASP.NET Web Forms básico ou um tutorial básico ASP.NET MVC.

Se você tiver dúvidas que não estão diretamente relacionadas ao tutorial, poderá postá-las no fórum de implantação do ASP.NET ou no StackOverflow.

Visão geral

Estes tutoriais orientam você na implantação de um aplicativo Web ASP.NET que inclui bancos de dados SQL Server. Você implantará primeiro no IIS em seu computador de desenvolvimento local para teste e, em seguida, para Aplicativos Web no banco de dados Serviço de Aplicativo do Azure e SQL do Azure para preparo e produção. Você verá como implantar usando a publicação com um clique no Visual Studio e verá como implantar usando a linha de comando.

O número de tutoriais pode fazer com que o processo de implantação pareça assustador. Na verdade, os procedimentos básicos são simples. No entanto, em situações do mundo real, muitas vezes você precisa realizar tarefas de implantação extras , por exemplo, definir permissões de pasta no servidor de destino. Ilustramos algumas dessas tarefas adicionais, na esperança de que os tutoriais não deixem de fora informações que possam impedir que você implante um aplicativo real com êxito.

Os tutoriais foram projetados para serem executados em sequência e cada parte é compilada na parte anterior. Você pode ignorar partes que não são relevantes para sua situação, mas talvez seja necessário ajustar os procedimentos em tutoriais posteriores.

Público-alvo

Os tutoriais são voltados para desenvolvedores ASP.NET que trabalham em ambientes em que:

  • O ambiente de produção é Serviço de Aplicativo do Azure Aplicativos Web ou um provedor de hospedagem de terceiros.
  • A implantação não se limita a um processo de integração contínua, mas pode ser feita diretamente do Visual Studio.

A implantação do controle do código-fonte usando um processo de entrega contínua não é abordada nestes tutoriais, exceto por um tutorial que mostra como implantar a partir da linha de comando. Para obter informações sobre entrega contínua, consulte os seguintes recursos:

Usando um provedor de hospedagem de terceiros

Os tutoriais levam você ao processo de configuração de uma conta do Azure e implantação do aplicativo para Aplicativos Web em Serviço de Aplicativo do Azure para preparo e produção. No entanto, você pode usar os mesmos procedimentos básicos para implantar em um provedor de hospedagem de terceiros de sua escolha. Onde os tutoriais passam por processos exclusivos do Azure, eles explicam isso e aconselham quais diferenças você pode esperar em um provedor de hospedagem de terceiros.

Implantando projetos de aplicativo Web

O aplicativo de exemplo que você baixa e implanta para esses tutoriais é um projeto de aplicativo Web do Visual Studio. No entanto, se você instalar a atualização de publicação na Web mais recente para Visual Studio, poderá usar os mesmos métodos de implantação e ferramentas para projetos de aplicativo Web.

Implantando projetos ASP.NET MVC

O aplicativo de exemplo é um projeto ASP.NET Web Forms, mas tudo o que você aprende a fazer também se aplica a ASP.NET MVC. Um projeto MVC do Visual Studio é apenas outra forma de projeto de aplicativo Web. A única diferença é que, se você estiver implantando em um provedor de hospedagem que não dá suporte a ASP.NET MVC ou à sua versão de destino, deverá ter instalado o pacote NuGet apropriado (MVC 3, MVC 4 ou MVC 5) em seu projeto.

Linguagem de programação

O aplicativo de exemplo usa C#, mas os tutoriais não exigem conhecimento de C#, e as técnicas de implantação mostradas pelos tutoriais não são específicas da linguagem.

Métodos de implantação de banco de dados

Há três maneiras de implantar um banco de dados SQL Server juntamente com a implantação da Web no Visual Studio:

  • Migrações do Entity Framework Code First
  • O provedor dbDacFx Web Deploy
  • O provedor de implantação da Web dbFullSql

Neste tutorial, você usará os dois primeiros desses métodos. O provedor dbFullSql Web Deploy é um método herdado que não é mais recomendado, exceto para alguns cenários específicos, como migrar de SQL Server Compact para SQL Server.

Os métodos mostrados neste tutorial são para bancos de dados SQL Server, não SQL Server Compact. Para obter informações sobre como implantar um banco de dados SQL Server Compact, consulte Implantação da Web do Visual Studio com SQL Server Compact.

Os métodos mostrados neste tutorial exigem que você use o método de publicação Implantação da Web. Se você preferir um método de publicação diferente, como FTP, Sistema de Arquivos ou FPSE, consulte Implantando um banco de dados separadamente da implantação de aplicativo Web no Mapa de Conteúdo de Implantação da Web para Visual Studio e ASP.NET.

Migrações do Entity Framework Code First

No Entity Framework versão 4.3, a Microsoft introduziu Migrações do Code First. Migrações do Code First automatiza o processo de fazer alterações incrementais em um modelo de dados e propagar essas alterações para o banco de dados. Em versões anteriores do Code First, você normalmente permite que o Entity Framework descarte e recrie o banco de dados sempre que alterar o modelo de dados. Isso não é um problema no desenvolvimento porque os dados de teste são facilmente recriados, mas na produção você geralmente deseja atualizar o esquema de banco de dados sem descartar o banco de dados. O recurso Migrações permite que o Code First atualize o banco de dados sem descartar e recriar o banco de dados. Você pode permitir que o Code First decida automaticamente como fazer as alterações de esquema necessárias ou pode escrever um código que personalize as alterações. Para obter uma introdução ao Migrações do Code First, consulte Migrações do Code First.

Quando você está implantando um projeto Web, o Visual Studio pode automatizar o processo de implantação de um banco de dados gerenciado por Migrações do Code First. Ao criar o perfil de publicação, você seleciona uma caixa de marcar rotulada Executar Migrações do Code First (é executada no início do aplicativo). Essa configuração faz com que o processo de implantação configure automaticamente o aplicativo Web.config arquivo no servidor de destino para que o Code First use a MigrateDatabaseToLatestVersion classe de inicializador.

O Visual Studio não faz nada com o banco de dados durante o processo de implantação. Quando o aplicativo implantado acessa o banco de dados pela primeira vez após a implantação, o Code First cria automaticamente o banco de dados ou atualiza o esquema de banco de dados para a versão mais recente. Se o aplicativo implementar um método Migrations Seed, o método será executado depois que o banco de dados for criado ou o esquema for atualizado.

Neste tutorial, você usará Migrações do Code First para implantar o banco de dados do aplicativo.

O provedor dbDacFx Web Deploy

Para um banco de dados SQL Server que não é gerenciado pelo Entity Framework Code First, você pode selecionar uma caixa de marcar rotulada Atualizar banco de dados ao configurar o perfil de publicação. Durante a implantação inicial, o provedor dbDacFx cria tabelas e outros objetos de banco de dados no banco de dados de destino para corresponder ao banco de dados de origem. Em implantações subsequentes, o provedor determina o que é diferente entre os bancos de dados de origem e de destino e atualiza o esquema do banco de dados de destino para corresponder ao banco de dados de origem. Por padrão, o provedor não fará nenhuma alteração que cause perda de dados, como quando uma tabela ou coluna é descartada.

Esse método não automatiza a implantação de dados em tabelas de banco de dados, mas você pode criar scripts para fazer isso e configurar o Visual Studio para executá-los durante a implantação. Outro motivo para executar scripts durante a implantação é fazer alterações de esquema que não podem ser feitas automaticamente porque causariam perda de dados.

Neste tutorial, você usará o provedor dbDacFx para implantar o banco de dados de associação ASP.NET.

Solução de problemas durante este tutorial

Quando ocorre um erro durante a implantação ou se o site implantado não é executado corretamente, as mensagens de erro nem sempre fornecem uma solução óbvia. Para ajudá-lo com alguns cenários de problema comuns, uma página de referência de solução de problemas está disponível. Se você receber uma mensagem de erro ou algo não funcionar à medida que passar pelos tutoriais, marcar página de solução de problemas.

Comentários bem-vindos

Os comentários sobre os tutoriais são bem-vindos e, quando o tutorial é atualizado, todos os esforços serão feitos para levar em conta correções ou sugestões de melhorias fornecidas nos comentários do tutorial.

Pré-requisitos

Este tutorial foi escrito para os seguintes produtos:

Você pode seguir o tutorial usando o Visual Studio 2010 SP1 ou Visual Studio 2013, mas algumas capturas de tela serão diferentes e alguns recursos serão diferentes.

Se você estiver usando Visual Studio 2013, instale o SDK do Azure para Visual Studio 2013.

Se você estiver usando o Visual Studio 2010 SP1, instale o seguinte software:

Dependendo de quantas dependências do SDK você já tem em seu computador, a instalação do SDK do Azure pode levar muito tempo, de vários minutos a meia hora ou mais. Você precisa do SDK do Azure mesmo que planeje publicar em um provedor de hospedagem de terceiros em vez de no Azure, pois o SDK inclui as atualizações mais recentes para os recursos de publicação na Web do Visual Studio.

Observação

Este tutorial foi escrito com a versão 1.8.1 do SDK do Azure. Desde então, versões mais recentes com recursos adicionais foram lançadas. Os tutoriais foram atualizados para menção esses recursos e vincular a recursos que têm mais informações sobre eles.

As instruções e capturas de tela são baseadas em Windows 8, mas os tutoriais explicam as diferenças para o Windows 7.

Alguns outros softwares são necessários para concluir o tutorial, mas você ainda não precisa ter isso instalado. O tutorial orientará você pelas etapas para instalá-lo quando precisar.

Baixar o aplicativo de exemplo

O aplicativo que você implantará se chama Contoso University e já foi criado para você. É uma versão simplificada de um site universitário, baseada vagamente no aplicativo da Universidade Contoso descrito nos tutoriais do Entity Framework no site ASP.NET.

Quando você tiver os pré-requisitos instalados, baixe o aplicativo Web da Contoso University. O arquivo.zip contém várias versões do projeto. Para trabalhar nas etapas do tutorial, comece com o projeto localizado na pasta C#. Para ver a aparência do projeto no final dos tutoriais, abra o projeto na pasta ContosoUniversity-End.

Para preparar o projeto para trabalhar nas etapas do tutorial, execute as seguintes etapas:

  1. Salve os arquivos da solução ContosoUniversity na pasta C# em uma pasta chamada ContosoUniversity em qualquer pasta usada para trabalhar com projetos do Visual Studio.

    Por padrão, esta é a seguinte pasta para o Visual Studio 2012:

    C:\Users\<username>\Documents\Visual Studio 2012\Projects

    (Para as capturas de tela neste tutorial, a pasta do projeto está localizada no diretório raiz na Cunidade : .

  2. Inicie o Visual Studio e abra o projeto.

  3. Em Gerenciador de Soluções, clique com o botão direito do mouse na solução e clique em Habilitar Restauração de Pacote DoGet.

  4. Compile a solução.

  5. Se você receber erros de compilação, restaure manualmente os pacotes NuGet:

    1. Em Gerenciador de Soluções, clique com o botão direito do mouse na solução e clique em Gerenciar Pacotes NuGet para solução.
    2. Na parte superior da caixa de diálogo Gerenciar Pacotes NuGet , você verá que alguns pacotes NuGet estão ausentes dessa solução. Clique para restaurar. Clique no botão Restaurar .
    3. Recriar a solução.
  6. Pressione CTRL-F5 para executar o aplicativo.

    O aplicativo é aberto na home page da Contoso University.

    Desenvolvimento de Home Page

    (Pode haver um tempo de espera enquanto o Visual Studio inicia a instância SQL Server Express LocalDB e você pode receber um erro de tempo limite se esse processo demorar muito. Nesse caso, basta iniciar o projeto novamente.)

As páginas do site podem ser acessadas na barra de menus e permitem que você execute as seguintes funções:

  • Exibir estatísticas dos alunos (a página Sobre).
  • Exibir, editar, excluir e adicionar alunos.
  • Exibir e editar cursos.
  • Exibir e editar instrutores.
  • Exibir e editar departamentos.

A seguir estão as capturas de tela de algumas páginas representativas.

Desenvolvimento de Página de Alunos

Adicionar Desenvolvimento de Página de Alunos

Examinar os recursos do aplicativo que afetam a implantação

Os recursos a seguir do aplicativo afetam como você o implanta ou o que você precisa fazer para implantá-lo. Cada uma delas é explicada com mais detalhes nos tutoriais a seguir na série.

  • A Contoso University usa um banco de dados SQL Server para armazenar dados de aplicativos, como nomes de alunos e instrutores. O banco de dados contém uma combinação de dados de teste e dados de produção e, quando você implanta na produção, precisa excluir os dados de teste.
  • O aplicativo usa o sistema de associação ASP.NET, que armazena informações da conta de usuário em um banco de dados SQL Server. O aplicativo define um usuário administrador que tem acesso a algumas informações restritas. Você precisa implantar o banco de dados de associação sem contas de teste, mas com uma conta de administrador.
  • O aplicativo usa um utilitário de relatório e registro em log de erros de terceiros. Esse utilitário é fornecido em um assembly que deve ser implantado com o aplicativo.
  • O utilitário de registro em log de erros grava informações de erro em arquivos XML em uma pasta de arquivo. Você precisa verificar se a conta em que ASP.NET é executada no site implantado tem permissão de gravação para essa pasta e se você precisa excluir essa pasta da implantação. (Caso contrário, os dados do log de erros do ambiente de teste podem ser implantados em arquivos de log de erros de produção e/ou de produção podem ser excluídos.)
  • O aplicativo inclui algumas configurações que devem ser alteradas no arquivo Web.config implantado, dependendo do ambiente de destino (teste, preparo ou produção) e outras configurações que devem ser alteradas dependendo da configuração de build (Depuração ou Versão).
  • A solução do Visual Studio inclui um projeto de biblioteca de classes. Somente o assembly gerado por esse projeto deve ser implantado, não o projeto em si.

Resumo

Neste primeiro tutorial da série, você baixou o projeto de exemplo do Visual Studio e analisou os recursos do site que afetam a forma como você implanta o aplicativo. Nos tutoriais a seguir, você se prepara para a implantação configurando algumas dessas coisas a serem tratadas automaticamente. Outros que você cuida manualmente.