Determinar quais arquivos precisam ser implantados (VB)

por Scott Mitchell

Baixar PDF

Quais arquivos precisam ser implantados do ambiente de desenvolvimento para o ambiente de produção depende, em parte, de se o aplicativo ASP.NET foi criado usando o Modelo de Site ou o Modelo de Aplicativo Web. Saiba mais sobre esses dois modelos de projeto e como o modelo de projeto afeta a implantação.

Introdução

A implantação de um aplicativo Web ASP.NET envolve a cópia dos arquivos relacionados à ASP.NET do ambiente de desenvolvimento para o ambiente de produção. Os arquivos relacionados ao ASP.NET incluem ASP.NET marcação de página da Web e código e arquivos de suporte do lado do cliente e do servidor. Os arquivos de suporte do lado do cliente são os arquivos referenciados por suas páginas da Web e enviados diretamente para o navegador – imagens, arquivos CSS e arquivos JavaScript, por exemplo. Os arquivos de suporte do lado do servidor incluem aqueles que são usados para processar uma solicitação no lado do servidor. Isso inclui arquivos de configuração, serviços Web, arquivos de classe, Conjuntos de Dados Digitados e arquivos LINQ to SQL, entre outros.

Em geral, todos os arquivos de suporte do lado do cliente devem ser copiados do ambiente de desenvolvimento para o ambiente de produção, mas quais arquivos de suporte do lado do servidor são copiados depende se você está compilando explicitamente o código do lado do servidor em um assembly (um .dll arquivo) ou se você está tendo esses assemblies gerados automaticamente. Este tutorial destaca quais arquivos precisam ser implantados ao compilar explicitamente o código em um assembly em vez de fazer com que essa etapa de compilação ocorra automaticamente.

Compilação explícita versus compilação automática

ASP.NET páginas da Web são divididas em marcação declarativa e código-fonte. A parte de marcação declarativa inclui HTML, controles Da Web e sintaxe de associação de dados; a parte de código contém manipuladores de eventos escritos no código do Visual Basic ou C#. As partes de marcação e código normalmente são separadas em arquivos diferentes: WebPage.aspx contém a marcação declarativa enquanto WebPage.aspx.vb hospeda o código.

Considere uma página ASP.NET chamada Clock.aspx que contém um controle Label cuja propriedade Text está definida como a data e a hora atuais em que a página é carregada. A parte de marcação declarativa (em Clock.aspx) conteria a marcação de um controle Web label – <asp:Label runat="server" id="TimeLabel" /> enquanto a parte de código (em Clock.aspx.vb) teria um Page_Load manipulador de eventos com o seguinte código:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As  System.EventArgs) Handles Me.Load
    TimeLabel.Text =  "The time at the beep is: " & DateTime.Now.ToString()
End Sub

Para que o mecanismo de ASP.NET a serviço de uma solicitação para esta página, a parte de código da página (o WebPage.aspx.vb arquivo) deve primeiro ser compilada. Essa compilação pode ocorrer explicitamente ou automaticamente.

Se a compilação ocorrer explicitamente, todo o código-fonte do aplicativo será compilado em um ou mais assemblies (.dll arquivos) localizados no diretório do Bin aplicativo. Se a compilação ocorrer automaticamente, o assembly gerado automaticamente resultante será, por padrão, colocado na Temporary ASP.NET Files pasta , que pode ser encontrada em %WINDOWS%\Microsoft.NET\Framework\<version>, embora esse local seja configurável por meio do <elemento de compilação> em Web.config. Com a compilação explícita, você deve executar alguma ação para compilar o código do aplicativo ASP.NET em um assembly e essa etapa ocorre antes da implantação. Com a compilação automática, o processo de compilação ocorre no servidor Web quando o recurso é acessado pela primeira vez.

Independentemente do modelo de compilação usado, a parte de marcação de todas as ASP.NET páginas (os WebPage.aspx arquivos) precisa ser copiada para o ambiente de produção. Com a compilação explícita, você precisa copiar os assemblies na Bin pasta , mas não precisa copiar as partes de código das ASP.NET páginas (os WebPage.aspx.vb arquivos). Com a compilação automática, você precisa copiar os arquivos de parte do código para que o código esteja presente e possa ser compilado automaticamente quando a página for visitada. A parte de marcação de cada página da Web ASP.NET inclui uma @Page diretiva com atributos que indicam se o código associado da página já foi compilado explicitamente ou se precisa ser compilado automaticamente. Como resultado, o ambiente de produção pode funcionar perfeitamente com o modelo de compilação e você não precisa aplicar nenhuma configuração especial para indicar que a compilação explícita ou automática é usada.

A Tabela 1 resume os diferentes arquivos a serem implantados ao usar a compilação explícita versus a compilação automática. Observe que, independentemente do modelo de compilação usado, você sempre deve implantar os assemblies na Bin pasta , se essa pasta existir. A Bin pasta contém os assemblies específicos para o aplicativo Web, que incluem o código-fonte compilado ao usar o modelo de compilação explícito. O Bin diretório também contém assemblies de outros projetos e assemblies de software livre ou de terceiros que você possa estar usando, e eles precisam estar no servidor de produção. Portanto, como regra geral, copie a Bin pasta para produção durante a implantação. (Se você estiver usando o modelo de compilação automática e não estiver usando assemblies externos, não terá um Bin diretório , isso é OK!)

Modelo de compilação Implantar arquivo de parte de marcação? Implantar o arquivo de código-fonte? Implantar assemblies no Bin diretório?
Compilação explícita Sim Não Sim
Compilação automática Yes Sim Sim (se existir)

Tabela 1: quais arquivos você implanta dependem do modelo de compilação usado.

Fazendo uma viagem pela rota da memória

Qual abordagem de compilação é usada depende, em parte, de como o aplicativo ASP.NET é gerenciado no Visual Studio. Desde. No início do NET no ano 2000, houve quatro versões diferentes do Visual Studio : Visual Studio .NET 2002, Visual Studio .NET 2003, Visual Studio 2005 e Visual Studio 2008. Aplicativos de ASP.NET gerenciados do Visual Studio .NET 2002 e 2003 usando o modelo projeto de aplicativo Web . Os principais recursos do modelo do Projeto de Aplicativo Web são:

  • Os arquivos que compedem o projeto são definidos em um único arquivo de projeto. Todos os arquivos não definidos no arquivo de projeto não são considerados parte do aplicativo Web pelo Visual Studio.
  • Usa compilação explícita. A compilação do projeto compila os arquivos de código dentro do projeto em um único assembly que é colocado na Bin pasta .

Quando a Microsoft lançou o Visual Studio 2005, eles abandonaram o suporte para o modelo do Projeto de Aplicativo Web e o substituíram pelo modelo projeto de site. O modelo do Projeto de Site se diferenciou do modelo do Projeto de Aplicativo Web das seguintes maneiras:

  • Em vez de ter um único arquivo de projeto que soletra os arquivos do projeto, o sistema de arquivos é usado em vez disso. Em resumo, todos os arquivos dentro da pasta do aplicativo Web (ou subpastas) são considerados parte do projeto.
  • A criação de um projeto no Visual Studio não cria um assembly no Bin diretório . Em vez disso, a criação de um Projeto de Site relata erros em tempo de compilação.
  • Suporte para compilação automática. Projetos de Site normalmente são implantados copiando a marcação e o código-fonte para o ambiente de produção, embora o código possa ser pré-compilado (compilação explícita).

A Microsoft reviveu o modelo do Projeto de Aplicativo Web quando lançou o Visual Studio 2005 Service Pack 1. No entanto, o Desenvolvedor da Web visual continuou a dar suporte apenas ao modelo de Projeto de Site. A boa notícia é que essa limitação foi descartada com o Visual Web Developer 2008 Service Pack 1. Hoje você pode criar aplicativos ASP.NET no Visual Studio (e no Visual Web Developer) usando o modelo projeto de aplicativo Web ou o modelo projeto de site. Ambos os modelos têm seus prós e contras. Consulte Introdução aos projetos de aplicativo Web: comparando projetos de site e projetos de aplicativo Web para uma comparação dos dois modelos e para ajudar a decidir qual modelo de projeto funciona melhor para sua situação.

Explorando o aplicativo Web de exemplo

O download deste tutorial inclui um aplicativo ASP.NET chamado Book Reviews. O site imita um site de hobby que alguém pode criar para compartilhar suas críticas de livros com a comunidade online. Esse ASP.NET aplicativo Web é muito simples e consiste nos seguintes recursos:

  • Web.config, o arquivo de configuração do aplicativo.

  • Uma página de master (Site.master).

  • Sete páginas de ASP.NET diferentes:

    • ~/Default.aspx – página inicial do site.

    • ~/About.aspx - uma página "Sobre o Site".

    • ~/Fiction/Default.aspx - uma página que lista os livros de ficção que foram revisados.

      • ~/Fiction/Blaze.aspx - uma crítica do romance de Richard Bachman , Blaze.
    • ~/Tech/Default.aspx - uma página que lista os livros de tecnologia que foram revisados.

      • ~/Tech/CYOW.aspx – uma revisão de Criar seu próprio site.
      • ~/Tech/TYASP35.aspx – uma revisão de Teach Yourself ASP.NET 3.5 em 24 Horas.
  • Três arquivos CSS diferentes na Styles pasta .

  • Quatro arquivos de imagem - um da plataforma por ASP.NET logotipo e imagens das capas dos três livros revisados - todos localizados na Images pasta.

  • Um Web.sitemap arquivo, que define o mapa do site e é usado para exibir menus nas Default.aspx páginas no diretório raiz e Fiction nas pastas e Tech .

  • Um arquivo de classe chamado BasePage.vb que define uma classe base Page . Essa classe estende a funcionalidade da Page classe definindo automaticamente a Title propriedade com base na posição da página no mapa do site. Em poucas palavras, qualquer ASP.NET classe code-behind que se estenda BasePage (em vez de System.Web.UI.Page) terá seu título definido como um valor, dependendo de sua posição no mapa do site. Por exemplo, ao exibir a página ~/Tech/CYOW.aspx , o título é definido como "Página Inicial: Tecnologia: Criar Seu Próprio Site".

A Figura 1 mostra uma captura de tela do site revisões de livros quando exibida por meio de um navegador. Aqui você verá a página ~/Tech/TYASP35.aspx, que analisa o livro Teach Yourself ASP.NET 3.5 in 24 Hours. A trilha que abrange a parte superior da página e o menu na coluna esquerda baseiam-se na estrutura do mapa do site definida em Web.sitemap. A imagem no canto superior direito é uma das imagens de capa do livro localizadas na Images pasta. A aparência do site é definida por meio de regras de folha de estilos em cascata escritas pelos arquivos CSS na Styles pasta , enquanto o layout de página abrangente é definido na página master, Site.master.

O site de Revisões de Livros oferece revisões sobre uma variedade de títulos

Figura 1: O site revisões de livros oferece revisões sobre uma variedade de títulos (Clique para exibir a imagem em tamanho real)

Este aplicativo não usa um banco de dados; cada revisão é implementada como uma página da Web separada no aplicativo. Este tutorial (e os próximos vários tutoriais) explicam como implantar um aplicativo Web que não tem um banco de dados. No entanto, em um tutorial futuro, aprimoraremos esse aplicativo para armazenar análises, comentários de leitores e outras informações em um banco de dados e exploraremos quais etapas precisam ser executadas para implantar corretamente um aplicativo Web controlado por dados.

Observação

Esses tutoriais se concentram na hospedagem de aplicativos ASP.NET com um provedor de host da Web e não exploram tópicos auxiliares como o ASP. Sistema de mapa de site do NET ou usando uma classe page base. Para obter mais informações sobre essas tecnologias e obter mais informações sobre outros tópicos abordados ao longo do tutorial, consulte a seção Leitura adicional no final de cada tutorial.

O download deste tutorial tem duas cópias do aplicativo Web, cada uma implementada como um tipo de projeto diferente do Visual Studio: BookReviewsWAP, um Projeto de Aplicativo Web e BookReviewsWSP, um Projeto de Site. Ambos os projetos foram criados com o Visual Web Developer 2008 SP1 e usam ASP.NET 3.5 SP1. Para trabalhar com esses projetos, comece descompactando o conteúdo para sua área de trabalho. Para abrir o Projeto de Aplicativo Web (BookReviewsWAP), navegue até a BookReviewsWAP pasta e clique duas vezes no arquivo Solução, BookReviewsWAP.sln. Para abrir o Projeto do Site (BookReviewsWSP), inicie o Visual Studio e, no menu Arquivo, escolha a opção Abrir Site, navegue até a BookReviewsWSP pasta na área de trabalho e clique em OK.

As duas seções restantes neste tutorial analisam quais arquivos você precisará copiar para o ambiente de produção ao implantar o aplicativo. Os próximos dois tutoriais – Implantando seu site usando FTP e implantando seu site usando o Visual Studio – mostram diferentes maneiras de copiar esses arquivos para um provedor de host da Web.

Determinando os arquivos a serem implantados para o projeto de aplicativo Web

O modelo do Projeto de Aplicativo Web usa compilação explícita – o código-fonte do projeto é compilado em um único assembly sempre que você compila o aplicativo. Essa compilação inclui os arquivos code-behind das ASP.NET páginas (~/Default.aspx.vb, ~/About.aspx.vbe assim por diante), bem como a BasePage.vb classe . O assembly resultante é nomeado BookReviewsWAP.dll e está localizado no diretório do Bin aplicativo.

A Figura 2 mostra os arquivos que compõem o Projeto de Aplicativo Web de Revisões de Livros.

O Gerenciador de Soluções lista os arquivos que compõem o Projeto de Aplicativo Web.

Figura 2: o Gerenciador de Soluções lista os arquivos que compõem o Projeto de Aplicativo Web

Observação

Como mostra a Figura 2, os arquivos code-behind das páginas ASP.NET não são exibidos no Gerenciador de Soluções de um Projeto de Aplicativo Web do Visual Basic. Para exibir a classe code-behind de uma página, clique com o botão direito do mouse na página em Gerenciador de Soluções e escolha Exibir Código.

Para implantar um aplicativo ASP.NET desenvolvido usando o modelo do Projeto de Aplicativo Web, comece criando o aplicativo para compilar explicitamente o código-fonte mais recente em um assembly. Em seguida, copie os seguintes arquivos para o ambiente de produção:

  • Os arquivos que contêm a marcação declarativa para cada página ASP.NET, como ~/Default.aspx, ~/About.aspxe assim por diante. Além disso, copie a marcação declarativa para qualquer master páginas e Controles de Usuário.
  • Os assemblies (.dll arquivos) na Bin pasta . Você não precisa copiar os arquivos de banco de dados do programa (.pdb) ou nenhum arquivo XML que possa encontrar no Bin diretório .

Você não precisa copiar os arquivos de código-fonte das páginas ASP.NET para o ambiente de produção, nem precisa copiar o BasePage.vb arquivo de classe.

Observação

Como mostra a Figura 2, a BasePage classe é implementada como um arquivo de classe no projeto, colocado na pasta chamada HelperClasses. Quando o projeto é compilado, o código no BasePage.vb arquivo é compilado junto com as classes code-behind das ASP.NET páginas no único assembly, BookReviewsWAP.dll. ASP.NET tem uma pasta especial chamada App_Code que foi projetada para armazenar arquivos de classe para Projetos de Site. O código na App_Code pasta é compilado automaticamente e, portanto, não deve ser usado com projetos de aplicativo Web. Em vez disso, você deve colocar os arquivos de classe do aplicativo em uma pasta normal chamada HelperClasses, ou Classesou algo semelhante. Como alternativa, você pode colocar arquivos de classe em um projeto separado da Biblioteca de Classes.

Além de copiar os arquivos de marcação relacionados ao ASP.NET e o assembly na Bin pasta , você também precisa copiar os arquivos de suporte do lado do cliente - as imagens e arquivos CSS - bem como os outros arquivos de suporte do lado do servidor, Web.config e Web.sitemap. Esses arquivos de suporte do lado do cliente e do servidor precisam ser copiados para o ambiente de produção, independentemente de você usar a compilação explícita ou automática.

Determinando os arquivos a serem implantados para os arquivos de projeto do site

O modelo projeto de site dá suporte à compilação automática, um recurso não disponível ao usar o modelo de Projeto de Aplicativo Web. Com a compilação explícita, você deve compilar o código-fonte do projeto em um assembly e copiar esse assembly para o ambiente de produção. Por outro lado, com a compilação automática, você simplesmente copia o código-fonte para o ambiente de produção e ele é compilado pelo runtime sob demanda, conforme necessário.

A opção de menu Compilar no Visual Studio está presente em Projetos de Aplicativo Web e Projetos de Site. A criação de projetos de aplicativo Web compila o código-fonte do projeto em um único assembly localizado no diretório; a Bin criação de um Projeto de Site verifica se há erros em tempo de compilação, mas não cria assemblies. Para implantar um aplicativo ASP.NET desenvolvido usando o modelo projeto de site tudo o que você precisa fazer é copiar os arquivos apropriados para o ambiente de produção, mas eu recomendaria que você primeiro compilasse o projeto para garantir que não haja erros em tempo de compilação.

A Figura 3 mostra os arquivos que compõem o Projeto de Site de Revisões de Livros.

O Gerenciador de Soluções lista os arquivos que compõem o Projeto de Site.

Figura 3: o Gerenciador de Soluções lista os arquivos que compõem o Projeto de Site

A implantação de um Projeto de Site envolve a cópia de todos os arquivos relacionados à ASP.NET para o ambiente de produção , que inclui as páginas de marcação para páginas de ASP.NET, páginas master e Controles de Usuário, juntamente com seus arquivos de código. Você também precisa copiar todos os arquivos de classe, como BasePage.vb. Observe que o BasePage.vb arquivo está localizado na App_Code pasta , que é uma pasta de ASP.NET especial usada em Projetos de Site para arquivos de classe. A pasta especial também precisa ser criada na produção, pois os arquivos de classe na App_Code pasta no ambiente de desenvolvimento devem ser copiados para a App_Code pasta em produção.

Além de copiar a marcação ASP.NET e os arquivos de código-fonte, você também precisa copiar os arquivos de suporte do lado do cliente - as imagens e arquivos CSS - bem como os outros arquivos de suporte do lado do servidor, Web.config e Web.sitemap.

Observação

Projetos de Site também podem usar compilação explícita. Um tutorial futuro examinará como compilar explicitamente um Projeto de Site.

Resumo

Implantar um aplicativo ASP.NET envolve copiar os arquivos necessários do ambiente de desenvolvimento para o ambiente de produção. O conjunto preciso de arquivos que precisam ser sincronizados depende se o código do aplicativo ASP.NET é compilado explicitamente ou automaticamente. A estratégia de compilação empregada é influenciada por se o Visual Studio está configurado para gerenciar o aplicativo ASP.NET usando o modelo de Projeto de Aplicativo Web ou o modelo de Projeto de Site.

O modelo projeto de aplicativo Web usa compilação explícita e compila o código do projeto em um único assembly na Bin pasta. Ao implantar o aplicativo, a parte de marcação das páginas ASP.NET e o conteúdo da Bin pasta devem ser enviados por push para o ambiente de produção; o código-fonte no aplicativo – os arquivos de código e as classes code-behind, por exemplo – não precisam ser copiados para o ambiente de produção.

O modelo projeto de site usa a compilação automática por padrão, embora seja possível compilar explicitamente um Projeto de Site, como veremos em tutoriais futuros. A implantação de um aplicativo ASP.NET que usa a compilação automática exige que a parte de marcação e o código-fonte sejam copiados para o ambiente de produção. O código é compilado automaticamente no ambiente de produção quando é solicitado pela primeira vez.

Agora que examinamos quais arquivos precisam ser sincronizados entre os ambientes de desenvolvimento e produção, estamos prontos para implantar o aplicativo Book Reviews em um provedor de host da Web.

Programação feliz!

Leitura Adicional

Para obter mais informações sobre os tópicos discutidos neste tutorial, consulte os seguintes recursos: