Otimizando a compilação

by Israel Aece 16. April 2009 09:34

Quando fazemos alguma mudança no diretório bin, App_Code ou no arquivo Global.asax, toda a aplicação ASP.NET será recompilada. Para sites pequenos, isso não tem muitos problemas, já que não há muitos arquivos/recursos a serem compilados. Já quando temos um site com várias páginas, esse processo pode se tornar muito lento, principalmente na primeira requisição, que é o onde a compilação irá ocorrer.

O SP1 do .NET Framework 3.5 inclui um novo atributo chamado optimizeCompilations, dentro do elemento compilation. Quando esse atributo estiver definido como False (configuração padrão), qualquer mudança provocará a recompilação total do site; já quando voce, explicitamente, definí-lo como True, somente os arquivos afetados pela mudança serão recompilados. Abaixo temos o exemplo da utilização deste novo atributo:

<compilation optimizeCompilations="true">

Tags: ,

ASP.NET

Comments

4/22/2009 1:28:06 AM #

Giovanni Bassi

Tentei comentar no blog antigo, mas tá com pau. Segue aqui o comentário para o seu farewell post:

É isso aí, Israel, legal isso. Vai também deixar mais claro que você é você.
Já assinei o outro.
Bem melhor assim, um ponto único para acompanhar.
Vi que vc colocou lá o BE.Net, é bem legal.
Vc pegou o plano da OrcsWeb para MVPs? É legal? procurei no site deles os planos, mas não achei...
[]s

Giovanni Bassi Brazil

4/22/2009 6:12:57 PM #

IsraelAece

Sim Giovanni, utilizo e recomendo a OrcsWeb. Qualquer coisa, posso te passar mais informações em PVT.

IsraelAece Brazil

4/22/2009 6:27:31 PM #

Guilherme Cardoso

Olá,

Uma questão que tenho. Se definir esse atributo para verdadeiro, sempre que eu compilo o meu projecto, ele apenas vai compilar as páginas que foram alteradas durante essa sessão ou ele consegue ver de sessões anteriores (dias anteriores em que trabalhei no visual studio) quais os arquivos modificados?

Abraço

Guilherme Cardoso Portugal

4/22/2009 10:48:11 PM #

IsraelAece

Ola Guilherme,

A idéia deste atributo é mudar o comportamento durante a execução da aplicação. Antes dele, qualquer mudança na pastas bin, App_Code ou no arquivo Global.asax, forçava a recompilação total do projeto, incluindo as páginas previamente compiladas.

IsraelAece Brazil

4/29/2009 12:58:45 AM #

Robson

Olá Israel,

Uma dúvida. Isto impede a criação de um novo AppDomain para a aplicação (e consequente perda das variaveis de Sessao - derrubando todo mundo) ou não?

Se não, como evitar isso? Como é feita a atualização de um site grande sem derrubar os usuários conectados (ou isso é impossível)?

Obrigado e parabéns pelo ótimo blog.

Robson Brazil

4/30/2009 7:54:26 AM #

Ivan

Muito boa a dica, vlw mesmo Israel!!

Ivan Brazil

5/2/2009 1:11:54 AM #

IsraelAece

Boas Robson,

Independemente do valor deste flag, ele não afetará o comportamento do shutdown do AppDomain, ou seja, ele continuará reciclando quando alguma alteração é realizada, apenas melhorando o desempenho da requisição inicial, já que não haverá a necessidade da recompilação total do projeto.

As vezes são esses comportamentos que nos obrigam a criar algo customizado, como eu comentei aqui: www.israelaece.com/.../...-Parte-1-O-problema.aspx

IsraelAece Brazil

10/5/2010 10:39:42 PM #

One Roulette and Poker

Thanks for posting this useful information. This was just what I was on looking for. I'll come back to this blog for sure!

One Roulette and Poker United States

Comments are closed

Powered by BlogEngine.NET 1.5.0.0
Theme by Mads Kristensen

Sobre

Meu nome é Israel Aece e sou especialista em tecnologias de desenvolvimento Microsoft, atuando como desenvolvedor de aplicações para o mercado financeiro utilizando a plataforma .NET. [ Mais ]

Twitter

Host