Partilhar via


Projetos de aplicativos Web versus projetos de sites da Web

Visual Studio você pode criarWebaplicativo projects ouprojetos de site daWeb . Cada tipo de projeto tem vantagens e desvantagens, e é útil entender as diferenças entre eles para selecionar o melhor tipo de projeto para suas necessidades. Você deve selecionar o tipo de projeto de apropriado antes de você criar um projeto, porque não é prático para converter do tipo de um projeto para outro.

Dica

Em alguns cenários, você não tem uma opção.Por exemplo, se você deseja criar um ASP.NET MVC aplicativo, você deve usar umprojetodeaplicativode Web.

This topic contains the following sections:

  • Scenarios

  • Resumo das diferenças

  • Estrutura do Arquivo de projeto

  • Compilação

  • Deployment

Scenarios

Cenários nos quais os projetos deaplicativo Websão a opção preferida incluem o seguinte:

  • Você deseja ser capaz de edição o código sem interromper uma sessão de depuração .

  • Você deseja executar testes de unidade no código que está nos arquivos de classe que estão associados a ASP.NET páginas.

  • Deseja fazer referência às classes que estão associadas a páginas e controles de usuário a partir de classes de autônomo.

  • Você deseja estabelecer as dependências do projeto entre os vários projetos Web .

  • Você deseja que o compilador para criar um único assembly para todo o site.

  • Você deseja o controle sobre o número de versão e o nome de assembly gerado para o site.

  • Você deseja usar MSBuild ou o Team Build para compilar o projeto. Por exemplo, você talvez queira adicionar pre-de compilação e lançar etapas de criação de-.

  • Você deseja evitar colocar o código fonte em um servidor de produção.

  • Você deseja usar as ferramentas automatizadas de implantação que estão disponíveis em Visual Studio 2010.

Cenários nos quais os projetos de site da Web são a opção preferida incluem o seguinte:

  • Você deseja incluir o código de C# e Visual Basic em um únicoprojetode Web. (Por padrão, umaplicativo de Webé compilado com base nas configurações de idioma no arquivo de projeto . Exceções podem ser feitas, mas é relativamente difícil).

  • Você deseja em aberto a produção de sites no Visual Studio e atualização ele em tempo real, usando o FTP.

  • Você não deseja ter explicitamente compilar o projeto no pedido para implantar .

  • Se você pré-compilar o site, você deseja que o compilador para criar vários conjuntos de módulos para o site, que pode incluir um assembly por página ou controle de usuário ou um ou mais assemblies por pasta.

  • Você deseja ser capaz de atualização os arquivos individuais em produção, copiando apenas as novas versões para o servidor de produção ou editando os arquivos diretamente no servidor de produção.

  • Se você pré-compilar o site, você deseja ser capaz de atualização individuais ASP.NETpáginas daWeb (arquivos. aspx) sem ter que recompilar Web .

  • Como manter o seu código fonte no servidor de produção, pois pode servir como uma cópia de backup adicional.

Resumo das diferenças

A tabela a seguir resume as principais diferenças.

Área

Webprojetos deaplicativo

Projetos de site daWeb

estruturado arquivo de projeto

Um arquivo deprojeto Visual Studio(. csproj ou. vbproj) armazena informações sobre o projeto, como, por exemplo, a lista de arquivos que estão incluídos no projetoe qualquer projeto- para - referências doprojeto .

Não há nenhum arquivo de projeto (. csproj ou. vbproj). Tudo que arquivos em uma estrutura de pasta são incluídos automaticamente no site.

Compilação

  • Você explicitamente compilar a fonte do código no computador que é usado para controle de fonte ou de desenvolvimento.

  • Por padrão, a compilação de arquivos de código (excluindo os arquivos. aspx e. ascx) produz um único assembly.

  • O código fonte normalmente é compilado dinamicamente (automaticamente) por ASP.NET sobre o servidor na primeira vez que uma solicitação é recebida após o site foi instalado ou atualizado.

    Você pode pré-compilar o site (compilar previamente em um computador de desenvolvimento ou no servidor).

  • Por padrão, a compilação produz vários assemblies.

Namespaces

Por padrão, os espaços para nome explícitos são adicionados a páginas, controles e classes.

Espaços para nome explícitos não são adicionados a páginas, controles e classes por padrão, mas você pode adicioná-los manualmente.

Deployment

  • Para copiar o assembly em um servidor. O assembly é produzida por compilar o aplicativo.

  • Visual Studio fornece ferramentas que integram-se a ferramenta deimplantação da Webdo IIS para automatizar muitas tarefas de implantação .

  • Você pode copiar os arquivos defonte do aplicativoem um computador que tem o IIS instalado nele.

  • Se você pré-compilar o site em um computador de desenvolvimento, você pode copiar os assemblies produzidos pela compilação para o servidor IIS.

  • Visual Studio fornece ferramentas para implantação, mas não automatizar tantas tarefas de implantação como as ferramentas disponíveis para projetos deaplicativo Web.

Estrutura do Arquivo de projeto

Webprojetos deaplicativo usam arquivos deprojeto de Visual Studio(. csproj ou. vbproj) para controlar informações sobre o projeto. Entre outras tarefas, isso torna possível especificar quais arquivos são incluídos em ou excluídos do projetoe, portanto, quais arquivos são compilados durante uma compilação.

Para projetos de site da Web , todos os arquivos em uma estrutura de pasta serão automaticamente considerados a serem incluídos no site da Web . Se você deseja excluir algo de compilação, você deve remover o arquivo da pasta de projeto de site da Web ou alterar a sua extensão de nome de arquivo-para uma extensão que não é compilada e não é atendido pelo IIS.

Uma vantagem de usar arquivos de projeto em projetos deaplicativo da Webé o seguinte:

  • É fácil remover temporariamente os arquivos do site, mas ainda não se esqueça de que você não perca o controle deles, porque eles permanecerão na estruturade pasta. Por exemplo, se uma página não está pronta para ser implantada, você pode temporariamente excluí-lo da compilação sem excluí-lo a partir da estruturade pasta. Você pode implantar o assemblycompilado e incluir o arquivo do projeto novamente. Isso é especialmente importante se você estiver trabalhando com um repositório de controle de fonte .

Uma vantagem de usar a estrutura de pastas sem arquivos de projeto em projetos de site da Web é o seguinte:

  • Não é necessário que gerenciar o projetoda estrutura exclusivamente na Visual Studio. Por exemplo, você pode copiar arquivos no projeto ou excluir -os do projeto usando o Windows Explorer.

Compilação

Para projetos deaplicativo da Web, normalmente você construir o projeto no Visual Studio ou usando o ASP.NET compilador de lote em um computador que não é o servidor IIS de produção. -Tudo o código por trás de arquivos de classe e os arquivos de classe autônomos no projeto são compilados em um único assembly, que é inserido na pasta do Webaplicativoprojetodo Bin. (Os arquivos. aspx e. ascx são compilados dinamicamente de maneira semelhante, o que é feito para projetos de site da Web .)

Para projetos de site da Web , você não precisará manualmente compilar o projeto. Projetos de site daWeb normalmente são compilados dinamicamente por ASP.NET (no computador de desenvolvimento e o servidor IIS de produção). Você pode escolher entre o modo de compilação em lotes, que geralmente produz um assembly por pasta e o modo de compilação fixo, que geralmente produz um assembly para cada página ou controle de usuário .

Vantagens do modelo de compilação para projetos deaplicativo Webincluem o seguinte:

  • Você pode usar MSBuild para criar um personalizado lote o processode compilação de-.

  • É fácil especificar atributos como nome e versãodo assembly .

  • Compilando antecipadamente certifica-se de que os usuários não precisam aguardar enquanto o site é compilado no servidor de produção. (Se o site for muito grande, a compilação dinâmica de um projeto de site de Web pode levar uma quantidade considerável de tempo. Compilação dinâmica ocorre quando uma solicitação para um recurso do site for recebida após uma atualização para o site e a solicitação que dispara a compilação pode ser adiada enquanto os recursos necessários são compilados. Se o atraso é inaceitável, você pode pré-compilar o site. No entanto, em seguida, algumas das vantagens de compilação dinâmica são perdidas.)

  • Você tem total controle sobre onde colocar os arquivos de código em que a estruturada pasta de projeto e como você, como as classes no projeto referir uns aos outros. (Compilação dinâmica requer que o código fonte para as classes que são usadas em todo o site deve estar na pasta App_Code. Você não pode consultar uma página ou usuário controle classe de uma classe em App_Code.)

Vantagens do modelo de compilação para projetos de site da Web incluem o seguinte:

  • Você pode teste páginas específicas, independentemente do estado de outras páginas. Isso ocorre porque a execução de uma página individual não requer que todo o site compilar com êxito, somente a página e quaisquer componentes que ele depende, como, por exemplo, o código na pasta App_Code ou o arquivo global. asax. (Em umaplicativo Webdoprojeto, se houver erros de compilação em qualquer lugar no site, você não pode criar o assembly e, portanto, não é possível teste até mesmo as partes do site que compilar.)

  • É fácil de atualização um site Web em produção. Você pode atualização arquivos de código de fonte individual no servidor de produção sem ter que recompilar explicitamente o site. Você pode atualização individuais arquivos estão prontos para implantação , mesmo se outros arquivos não estão prontos devido a erros de compilar . Você também pode em aberto Web</c2> .

  • Pré-compilação para vários assemblies pode ter uma vantagem de desempenho em alguns cenários. Um exemplo típico é um site que tenha várias páginas com muita código escrito para eles. A maioria das páginas raramente é solicitada e apenas alguns são usados com freqüência. Se você compilar um site que isso em vários assemblies, o servidor de produção pode carregar assemblies que são necessários para as solicitações atuais. Se uma página não for solicitada, seu assembly de correspondente não está carregado.

Dica

Não há nenhuma diferença no desempenho entre um projeto de site de Web e Webaplicativoprojeto. As exceções só significativas são aqueles que já foram apontadas e como uma prática importam, eles aplicar somente para grandes sites.A primeira solicitação para Web pode exigir o site a ser compilado, o que pode resultar em um atraso.E se Web estiver sendo executado em um servidor IIS é curto na memória, incluindo todo o site em um único assembly pode usar mais memória do que seria necessário para vários assemblies.

Deployment

Para implantar umprojetodeaplicativode Web, você pode copiar o assembly é criado por meio da compilação do projeto para um servidor IIS. Por outro lado, para implantar um projetode site de Web , você normalmente copiar os arquivos defonte do projetopara um servidor IIS.

Vantagens da estratégia de implantação para projetos deaplicativo Webincluem o seguinte:

  • Você pode evitar a implantação de código fonte para o servidor IIS. Em alguns cenários, como ambientes de hospedagem compartilhada, você talvez preocupado com o acesso não autorizado, o código fonte no servidor IIS. (Para um Web site projeto, você pode evitar esse risco de pré-compilação de um computador de desenvolvimento e implantação os assemblies gerados em vez de código fonte . No entanto, nesse caso você perderá alguns dos benefícios das atualizações do site fácil.)

  • Implantação geralmente envolve outras tarefas, além de copiar os assemblies ou código para um servidor. Por exemplo, scripts de banco de dados podem ter que executar em produção e seqüências de conexão no arquivo Web. config talvez precise ser alterado para um servidor de produção. Visual Studio fornece ferramentas, como publicação com um clique que funcionam com projetos deaplicativo da Webpara automatizar muitas dessas tarefas. Essas ferramentas não estão disponíveis para projetos de site da Web .

Vantagens da estratégia de implantação para projetos de site da Web incluem o seguinte:

  • Se você fizer uma pequena alteração em umaplicativode Web, não é necessário reimplantar todo o aplicativo. Em vez disso, pode copiar apenas o arquivo alterado ou os arquivos para o servidor IIS de produção. Você também pode edição arquivos diretamente no servidor de produção. (Porque os arquivos de umaplicativo Webprojetodo código são compilados em um único assembly de arquivo, você deve implantar o site inteiro, mesmo para pequenas alterações, a menos que a única alteração é para um arquivo. aspx ou. ascx.)

Consulte também

Conceitos

Projetos de aplicativos da Web do ASP.NET

Projetos de criação (compilação) de sites

Pastas de Código Compartilhadas em Projetos Web do ASP.NET

Passo a passo: Convertendo um Projeto de Site um Projeto de Aplicativo da Web no Visual Studio

Mapa de conteúdo de implantação do ASP.NET

Outros recursos

Projetos da Web do ASP.NET

Projetos de sites do ASP.NET

Controle de código fonte para Projetos Web do ASP.NET

Web Projetos de aplicativo vs projetos de Site da Web