quinta-feira, 10 de fevereiro de 2011

Ciclo de vida do ASP.Net

Umas das primeiras coisa que um desenvolvedor ASP.net deve saber é o caminho que uma requisição a paginas ASP.net faz. Já perdir as contas de quantas vezes fui dar suporte a desenvolvedores com problemas ao utilizar componentes Web no método Page_PreInit.
O ciclo de vida de uma pagina AspNet pode ser dividida da seguinte forma:

  • Request - Momento antes da pagina AspNet ser iniciada, nesse momento ocorre a decisão se a pagina vai ser iniciada ao vai ser utilizado uma versão em cache da pagina sem passar pelo seu ciclo de vida, nesse caso e entregue ao usuário uma versão construída anteriormente.
  • Start - Como o nome desse momento diz, esse é o marco inicial da requisição da pagina, é o inicio da construção da pagina. Nesse momento e vinculo os dados de post da pagina (Request) e o retorno (Response) que a pagina vai gerar, nele também identificamos se a requisição é Postback  e a cultura.
  • Init - Esse é o primeiro evento relacionado a criação do retorno da requisição (se for fez uma chamada/requisição ao ASpNet você espera por um retorno), nele são criados os ID de cada componente da pagina, o Thema e a MasterPage são vinculados à pagina nesse momento, o ViewState ainda não foi carregado e os componentes internos a DataContainers ainda não pode ser utilizados.
  • Load - durante o load no caso de um postback os valores do viewState são carregados e restaurados nos componentes.
  • Eventos Handling - Nós eventos de manipulação ocorre os DataBinds, RowCommands, Selecting etc. Apos esses eventos ocorre a chamada dos eventos de Validação, todos os controles de validação são chamados e cada um seta sua variável  IsValid e o de toda pagina.
  • Rendering - Nesse momento todos os controles possuem informação e é feita a criação do HTML que deve ser gerado para o cliente, chamado um método Render() para cada componente. O retorno desse metodo e colocado no OutPutStream do Response da Pagina.
  • Unload - Ocorre apos da entrega dos dados para o cliente, nesse momento as variáveis de Request e Response são descartadas e junto com o proprio objeto da página.

Esses são os estágios que uma pagina AspNet possui, no próximo post explico os eventos e usos dos componentes nesses eventos.

Nenhum comentário:

Postar um comentário