Web Deployment / Instalação de Projetos Web com o Visual Studio 2010


Este é o vigésimo quinto de uma série de posts que estou escrevendo sobre o próximo lançamento do VS 2010 e .NET 4.

O post de hoje é o primeiro de vários posts que vou escrever que cobrem algumas das melhorias que fizemos em torno da função de web deployment (distruibuição/instalação) de projetos web. Vou dar uma visão de alto nível de algumas das principais melhorias. Posts subseqüentes entrarão em mais detalhes sobre cada recurso e como melhor aproveitá-los.

Facilitando a Distribuição/Instalação de Projetos Web

Instalar sua aplicação web em um servidor é algo que todos os projetos (de sucesso) precisam fazer. Sem boas ferramentas para ajudá-lo, a implantação pode ser uma tarefa complicada - especialmente se você tiver que fazer isso manualmente.

O VS 2010 inclui um conjunto de melhorias que tornam muito mais fácil instalar suas aplicações Web ASP.NET - e que permitem a construção de procedimentos de instalação automatizados que fazem com que a implantação seja facilmente reprodutível. Os recursos de implantação suportam não apenas a distribuição de seu conteúdo Web - mas também suportam a customização de suas configurações contidas no arquivo web.config, distribuição/atualização de seus bancos de dados e o gerenciamento de outras dependências que você tenha. Você pode iniciar o processo de instalação manualmente - ou através de scripts automatizados ou como parte de um build automatizado ou processo de integração contínua.

A seguir está uma visão geral de alto nível de alguns dos principais recursos do novo processo de distribuição/instalação de aplicações web no VS 2010. Eu escreverei posts subseqüentes que fornecerão mais detalhes sobre como usar/personalizar cada um deles.

Nova Janela de Diálogo "Publish Web"

O Visual Studio 2010 inclui uma nova janela de diálogo "Publicar Web" que você pode usar para rapidamente instalar uma aplicação Web em um servidor remoto.

Você pode ativar a janela de diálogo clicando com o botão direito do mouse em um nó de um Projeto Web ASP.NET no Solution Explorer e, em seguida selecionando o item do menu de contexto "Publish" (Publicar):

imagem

Selecionando esta opção fará aparecer uma janela de diálogo "Publish Web" que te permite customizar as configurações de instalação local. 

Configurando e Salvando um Perfil de Publicação

Você só precisa definir as configurações de publicação uma vez - você então pode salvá-las como um "Publish Profile" (Perfil de Publicação) nomeado para que você possa rapidamente reusá-las mais tarde.

imagem

Acima eu criei um perfil chamado "ScottGu Site", e configurei o mesmo para instalar a aplicação via FTPS (uma versão do FTP que usa SSL) em um servidor remoto. Para instalar usando FTPS, selecione a opção "FTP" na lista drop-down e, em seguida, prefixe a localização do servidor no qual você deseja instalar com o prefixo "ftps://". 

Observe que você pode re-digitar sua senha cada vez que você for instalar - ou você pode salvar a senha em um local seguro para usos futuros (basta clicar na caixa de seleção "Save password" (Salvar senha) para fazer isso.

Web Deploy

Além de dar suporte aos protocolos FTP/FTPS, o VS 2010 suporta também um mecanismo mais poderoso de publicação chamado "Web Deploy". O Web Deploy (anteriormente conhecido como MSDeploy) fornece um mecanismo de publicação e instalação muito mais abrangente do que FTP. Ele não só lhe permite publicar arquivos, mas também permite que você publique configurações do Servidor Web IIS, esquemas de Bancos de Dados, Scripts de Alteração de Banco de Dados, ACLs de Segurança, e muito mais.

O Web Deploy pode ser usado para instalar aplicações tanto em único servidor, bem como em vários servidores dentro de uma web farm (fazenda web). O Web Deploy agora também é suportado por muitos provedores de hospedagem Windows baratos (alguns tão baratos quanto $3.50/month ou R$5,81/mês [dolar a R$ 1,66] para uma conta ASP.NET + SQL). Você pode encontrar ótimos serviços de hospedagem ASP.NET que suportam o Web Deploy visitando esta página: http://asp.net/find-a-hoster (em Inglês).

Barra de Ferrramentas de Publicação One Click

Clicando no botão "Publish" dentro da janela de diálogo "Publish Web" publicará uma aplicação web (e opcionalmente o esquema/conteúdo do banco de dados associado) em um servidor web remoto. 

O VS 2010 também suporta uma barra de ferramentas de publicação "one click" (um clique) que você pode adicionar ao seu IDE para publicar/re-publicar seu projeto rapidamente sem ter que carregar a janela de diálogo "Publish Web":

imagem

Basta selecionar o perfil de publicação a partir da lista drop-down na barra de ferramentas e clicar no ícone de publicação à direita desta para começar a publicar/instalar sua aplicação. 

Transformações Web.Config

Na maioria dos cenários de implantação/instalação do mundo real, o arquivo web.config que você usa para o ambiente de desenvolvimento é diferente daquele que você usa para a instalação da aplicação no ambiente produção. Normalmente você deseja alterar as configurações de ambiente, como strings de conexão de bancos de dados, tendo certeza que a opção de debug esteja desligada, e habilitando erros customizados para que os usuários finais (e hackers) não vejam os aspectos internos de sua aplicação.

O VS 2010, agora torna fácil personalizar/ajustar/alterar seus arquivos web.config como parte de seu processo de publicação/instalação. Especificamente, agora você pode facilmente ter arquivos de transformação específicos para configuração de build (contrução) que podem personalizar seu arquivo web.config, antes que a aplicação seja instalada:

imagem

Você pode manter um arquivo de transformação separado para cada ambiente de construção/compilação do Visual Studio. Por exemplo, você pode configurar seu projeto/solução para que esta tenha uma configuração de construção/compilação "Debug" (para o desenvolvimento), "Staging" (para testes internos) e "Release" (para distribuição) - caso em que o VS irá manter três arquivos de transformação separados para você. O VS irá automaticamente aplicar o arquivo de transformação adequado no tempo de publicação/instalação, dependendo do ambiente de construção/compilação setado dentro do VS.

Eu vou detalhar mais a fundo como executar transformações nos arquivos web.config em um futuro post.

Instalação do Banco de Dados

O VS 2010 permite que você opcionalmente instale o banco de dados, juntamente com os arquivos de sua aplicação web, quando você estiver usando a opção "Web Deploy" como seu mecanismo de instalação. Bancos de dados implantados/instalados desta forma podem incluir ambos esquema e dados, e pode, opcionalmente também incluir scripts de alteração para atualizar bancos de dados existentes.

ASP.NET Web Projects (Projetos Web ASP.NET) no VS 2010 possuem uma página especial dentro das configurações do projeto que permite configurar a instalação do banco de dados:

imagem

Eu vou detalhar mais a fundo como realizar instalações de banco de dados em posts futuros.

Instalação de Pacotes Web

O VS 2010 suporta também uma opção de empacotamento que te permite empacotar sua aplicação Web ASP.NET (junto com suas dependências, como web.config, bancos de dados, ACLs, etc) em um arquivo de pacote de instalação .zip que você pode, opcionalmente, passar para um administrador de TI que pode facilmente instalá-lo, quer através da ferramenta de administração do IIS ou através de um script de linha de comando/powershell. 

O pacote de instalação que você cria pode opcionalmente expor as propriedades de configuração da aplicação que podem ser substituídas (como locais de diretório, strings de conexão de bancos de dados, etc.)  Ao usar a ferramenta de administração do IIS7, o assistente de instalação pode solicitar ao administrador a customização de cada propriedade - permitindo-lhe fornecer uma experiência de customização limpa sem ter que escrever qualquer código personalizado para que isto aconteça. As propriedades também podem obviamente ser passadas como argumentos/parâmetros na linha de comando quando se utiliza um script de linha de comando ou um script Powershell para instalar a aplicação.

Para criar um pacote Web dentro do Visual Studio 2010, basta clicar com o botão direito do mouse sobre o nó do Projeto Web ASP.NET no Solution Explorer e selecionar a opção do menu de contexto "Build Deployment Package" (Criar Pacote de Instalação):

imagem

Isso irá compilar a aplicação, executar as transformações adequadas no arquivo web.config, opcionalmente, criará os scripts .sql para o esquema de seu banco de dados e arquivos de dados, e então empacotará tudo em um arquivo de instalação .zip. Junto ao arquivo .zip você vai encontrar um arquivo de script de instalação que você pode usar para automatizar a implantação do pacote em um servidor remoto.

Eu vou detalhar mais a fundo como criar pacotes de instalação Web em posts futuros.

Integração Contínua com o Team Build

A maior parte dos recursos de instalação web do VS 2010 que eu descrevi acima são construídos tendo como base tasks (tarefas) e targets (alvos) do MSBuild. O recurso "Team Build" do TFS também usa o MSBuild, e suporta a execução de builds noturnos, builds contínuos, permitindo integração contínua. Isso significa que você pode criar pacotes de instalação, ou publicar automaticamente suas aplicações web a partir de um ambiente Team Build.

Eu vou detalhar mais a fundo como habilitar isso em posts futuros.

Resumo

O post de hoje cobriu alguns dos novos recursos de instalação web do VS 2010 em alto nível. Todas os recursos acima funcionam tanto com o VS 2010, bem como com o gratuito Visual Web Developer 2010 Express Edition.

Espero que o post de hoje tenha dado uma descrição geral e ampla de todos os novos recursos de instalação voltados a projetos web, e que tenha ajudado a definir o contexto de onde e como eles são úteis. Nos próximos posts eu vou ir mais fundo e explicarei passo a passo os detalhes de como realmente tirar o máximo proveito deles.

Espero que ajude,

Scott

PS Além do blog, eu também estou agora utilizando o Twitter para atualizações rápidas e para compartilhar links.Siga-me em: twitter.com/ScottGu

 

Texto traduzido do post original por Leniel Macaferi

No Comments