Olá,

Abaixo dicas sobre como fazer deploy de aplicações Web com Visual Studio e TFS 2012:

Introdução

Um dos passos mais desafiadores dentro do ciclo de vida de uma aplicação, é justamente fazer o deploy da mesma. A princípio isso não parece nada difícil. Tendo essa visão muitas equipes acabam tendo procedimentos informais, não documentados e manuais para fazer deploy das aplicações.

O Team Foundation Build fornece uma plataforma muito rica para desenvolver procedimentos automatizados de deploy. Um dos componentes mais comumente utilizados integrado ao Team Build é o Web Deployment Tool.

Neste post veremos algumas melhorias no deploy de aplicações Web pelo Visual Studio e como integrá-las ao Team Foundation Build.

Para mais informações sobre Team Foundation Build 2012: http://msdn.microsoft.com/en-us/library/ms181709.aspx
Para mais informações sobre Web Deployment Tool: http://www.iis.net/downloads/microsoft/web-deploy 

Deploy de Aplicações Web com Visual Studio

Desde a versão 2010 o Visual Studio já apresentava o conceito de Perfil de Publicação (Publishing Profile), para facilitar o deploy de aplicações Web. Na versão 2012 o Visual Studio trouxe melhorias significativas nessa área. Sendo que a principal é o fato dos perfis serem salvos como arquivos XML e poderem ser adicionados ao controle de versão.

Para acessar a funcionalidade clique com o botão direito na aplicação Web e selecione Publish (figura 1).

 

 

Figura 1 - Selecionando a funcionalidade de Publish

O próximo passo é dar um nome para o Perfil que está sendo criado (figura 2).

 

Figura 2 - Nomeando o Perfil

Com isso chegamos a tela principal onde será configurado o Perfil (Figura 3). Vamos entender melhor cada uma das opções nesta tela.

 

Publish Method – Aqui escolhemos qual o método que será utilizado para fazer o deploy da aplicação. As opções são: Web Deploy | Web Deploy Package | FTP | File System | FPSE. Nós vamos utilizar o Web Deploy que é o método que se integra com o Web Deployment Tool. Mais informações sobre One-click Publish com Visual Studio 2012: http://msdn.microsoft.com/en-us/library/dd465337(v=vs.110).

Service URL – É o endpoint para conectar-se ao Web Deployment Tool. Existem dois endpoints disponíveis, o Web Deployment Handler e o Remote Agent Service. Mais informações sobre cada um dos métodos disponíveis: http://www.iis.net/learn/publish/using-web-deploy/introduction-to-web-deploy.

Site/application: Web site destino da nossa publicação.

User name/Password: As credenciais que serão utilizadas para executar o deploy. No caso do Web Deployment Handler pode ser utilizado credenciais do Windows ou credenciais do IIS. No caso do Remote Agent Service devemos utilizar obrigatoriamente credenciais do Windows com direitos de administrador na máquina destino.

Na próxima tela, Settings, podemos selecionar a configuração que será utilizada para compilar e fazer deploy da aplicação. Nesta tela, podemos também selecionar uma base de dados para deploy. Isso não fará parte deste post.

Por fim na tela Preview vemos as alterações que serão feitas (Figura 4).

 

Figura 4 - Preview da Publicação

E clicando em Publish a janela de Output do Visual Studio nos mostra o resultado (Figura 5).

 

Figura 5 - Resultado da publicação

Analisando a pasta <Projeto>\MyProject \PublishProfiles vemos que foi criado um arquivo Web Deploy Profile.pubxml (Figura 6).

 

Figura 6 - Arquivo com o perfil para deploy

 

Integração com Team Foundation Build

Um dos grandes benefícios de ter o perfil salvo como um arquivo XML e adicionado ao Source Control, é a possibilidade de utilizá-lo no processo de Build junto com o Team Foundation Build. Antes de explorar esse recurso é importante fazer o check-in do projeto para o Source Control do Team Foundation Server. Eu estou utilizando a VM de demonstração do Brian Keller (http://aka.ms/vs11almvm) e vou adicionar a aplicação Web dentro do Team Project FabrikamFiber, logo na raiz do mesmo.

Após adicionar o código ao Source Control vou criar um Build Definition. Na seção Process é que vamos integrar o Team Foundation Build com o Publishing Profile. Para mais informações sobre como criar um Build Definition: http://msdn.microsoft.com/en-us/library/ms181716.aspx.

Na seção Process temos o campo MSBuild Arguments. Passaremos os seguintes argumentos (figura 7): /p:DeployOnBuild=true /p:PublishProfile=”Web Deploy Profile” /p:Username=vsalm\brian /p:Password=P2ssw0rd /p:AllowUntrustedCertificate=true.

Vamos entender melhor cada um destes argumentos.

DeployOnBuild – Isso indica para o Web Publishing Pipeline (WPP) deve ser iniciado após o procedimento de Build.

PublishProfile – Indica o nome do Profile que foi criado no Visual Studio e deve ser utilizado para realizar o deploy.

Credenciais – É necessário informar novamente as credenciais que devem ser utilizadas para realizar o deploy.

Com isso basta salvar o build definition e enfileirar um novo build no Team Foundation Build. Depois de finalizado o Build basta conferir que foi feito o deploy da aplicação Web.

Esse é um cenário muito simples. Quem quiser cenários mais avançados de deploy pode verificar a série de tutoriais sobre Enterprise Deployment:

 

Abraços e até a próxima.

Daniel Oliveira – Premier Field Engineer

http://blogs.msdn.com/dfaoliveira