asp.net page flow (user controls) #2

A propósito do artigo asp.net page flow (user controls), um colega aqui do meu departamento na Primavera alertou-me (e bem) do eventual perigo da utilização da variáveis estáticas.

Onde eu dizia “Outro pormenor interessante é a utilização de variáveis estáticas (static / shared) que basicamente persistem o seu valor entre postbacks e estão logo disponiveis no primeiro evento – Init.”

Deveria ter dito: Naturalmente as variáveis estáticas (static / shared) mantêm o seu valor entre postbacks precisamente pelo facto de serem estáticas e por isso não implicarem a criação de uma nova instância. Ao fim e ao cabo é o padrão singleton em acção. No caso do ASP.Net, como tudo corre dentro do mesmo processo isto quase que se traduz numa espécie de variavel do tipo Application.

alguns links:

Shared Variables in Classes – A shared variable is created just once for any objects that are declared of a certain class type.
Persistent to a client action (postback) in ASPNET are
A viewstate item (belongs to the page)
A session item (belongs as IIS part to the client)
A shared variable (belongs to the application)
A cache item (is used by the total application)

When you store data in a static variable, the data is available to all users on the entire AppDomain. If you need a single instance of some object per user, put it in the Session instead.

por Vitor Silva



Leave a Reply