ASP.NET Modelo de codificação da página web
Uma página ASP.NET consiste em duas partes:
- Elementos visuais, que inclui marcação específica(server controls ) e html(textos estáticos)
- Lógica de programação da página, que contêm eventos e outros códigos
Existem dois modelos para gerenciar os elementos visuais e códigos, ambos funcionam da mesma maneira, mas diferenciam em sua utilização: Single File(Arquivo único) e Code Behind.
Single File (Arquivo único)
Neste modelo tanto o visual quanto o código ficam num arquivo único. Isto facilita a manutenção para páginas simples e serviços como renomear arquivos.
Code Behind(Arquivo de código separado)
Neste modelo a parte de código é separado da parte visual. Isto é bastante interessante, pois passamos a ter um controle separado da parte visual e código, facilitando o trabalho entre desenvolvedores e designers.
Page Class
As requisições aos recursos ASP.NET são repassados pelo IIS pelo executor de ASP.NET. Neste momento estou limitando a citar a requisição de páginas, do ASPX.
Ao requisitar uma página, o executor do ASP.NET combina a página, elementos de servidor, como controles, para manipulação de eventos que escrevemos. Como não temos que compilar as páginas em assemblies, netes casos o ASP.NET compila a página na primeira requisição a página. Caso a página ou algum recurso que a página depende sofra alguma alteração a página é recompilada automaticamente.
O ASP.NET pode compilar as páginas previamente para melhorar o desempenho da aplicação: http://msdn2.microsoft.com/en-us/library/399f057w.aspx
Ciclo de vida da página
A página ASP.NET é executada num ciclo de vida que passa por várias etapas. Estas incluem inicialização, instanciar controles, recuperar e manter estado, executar manipuladores de eventos e renderizar. É importante dominar o ciclo de vida da página para utilizar os eventos apropriados quando necessário.
Estágio | Descrição |
Solicitação de página | A solicitação de página ocorre antes que o ciclo de vida da página comece. Quando a página é solicitada por um usuário, ASP.NET determina se a página precisa ser analisada e compilada (portanto, começando a vida de uma página) ou se uma versão em cache da página pode ser enviada em resposta sem executar a página. |
Iniciar | Na etapa inicial, as propriedades da página, como Request e Response são definidas. Nesse estágio, a página também determina se o Request é um Postback ou um novo Request e define a IsPostBack Propriedade. Além disso, durante a etapa inicial, a propriedade UICulture da página é definida. |
Inicialização da página | Durante a inicialização de página, os controles da página estão disponíveis e é definido a propriedade UniqueID de cada controle. Os temas também são aplicados para a página. Se a solicitação atual for um postback, os dados PostBack ainda não foram carregados e valores da propriedade do controle não foram restaurados com os valores do ViewState. |
Carga | Durante o carregamento, se a solicitação atual é um postback, as propriedades de controle serão carregadas com informações recuperadas do ViewState e do ControlState. |
Validação | Durante a validação, o método Validate de todos os controles de validação são chamados, este define a propriedade IsValid de cada um dos controles validadores da página. |
Tratamento de evento PostBack | Se a solicitação for uma postback, quaisquer manipuladores de eventos são chamados. |
Renderização | Antes da renderização, o viewstate é salvo para a página e todos os controles. Durante a fase de renderização, a página chamará o método Render para cada controle, fornecendo um escritor de texto que grava a saída para o Stream de saída da propriedade Response da página. |
Descarregar | O descarregar é chamado quando a página tiver sido processada, enviada para o cliente e está pronta para ser descarregada. Neste ponto, as propriedades da página, como Response e Request são descarregados e toda limpeza será executada. |