O artigo trata de como dados podem ser
armazenados temporariamente em aplicações ASP.NET que empreguem a tecnologia
Web Forms. A forma de tratar informações dá-se o nome de controle de estado
(são eles: Caching, Cookie, Session, ViewState etc). Em que situação o tema é útil É útil em situações que envolvam a manipulação temporária de
informações. Esta é a principal justificativa para o uso dos recursos de
gerenciamento de estado. Existirão casos em que não será necessária a gravação
imediata de uma informação numa base relacional ou até mesmo, a própria
aplicação disponibilizará um conjunto de dados em memória para um acesso mais
rápido dos mesmos por parte de alguma funcionalidade. A exibição de
determinados tipos de informações após requisições sucessivas dentro de uma
mesma página, a obtenção de preferências de navegação/aparência selecionadas
anteriormente e dados temporários que devem permanecer ativos enquanto um
usuário estiver conectado (e não disparar uma possível ação) são outros bons motivos
para o uso dos dispositivos de controle de estado. Gerenciamento de
Estado em Web Forms - Armazenamento temporário de informações Nem sempre os dados
necessários para a execução de funcionalidades de uma página da Web serão
gravados de maneira permanente (em uma base de dados relacional, por exemplo).
A manipulação de informações em um projeto criado a partir da tecnologia Web
Forms envolverá, ao longo da execução de uma série de atividades, o acesso a um
conjunto de dados muitas vezes por um limitado intervalo de tempo. Além disso,
tais informações podem tanto ser de cunho geral, assim como restritas a
determinados usuários dado seu caráter confidencial. O processo de
armazenamento temporário de informações dentro de uma aplicação ASP.NET é
conhecido como controle de estado, sendo que em inúmeros casos este tipo de ação
estará relacionada à exibição de informações em controles visuais. O ASP.NET
disponibiliza diversos objetos para o gerenciamento de estado em sistemas
criados a partir da tecnologia Web Forms. Cabe aos desenvolvedores entender as
diferentes necessidades dentro de um projeto para, a partir de tal análise,
selecionar as alternativas mais adequadas a cada cenário.
Desde suas primeiras versões, a plataforma .NET possui um excelente suporte para a construção de sites dinâmicos: trata-se do ASP.NET, pois disponibiliza um conjunto extenso de recursos conhecido como Web Forms.
A tecnologia Web Forms foi desenvolvida utilizando como fundamento um conceito chamado de RAD (Rapid Application Development). Esta metodologia enfatiza a construção de interfaces gráficas que possam ser modeladas facilmente a partir de uma ferramenta gráfica (no caso, o Visual Studio). Além disto, controles visuais são empregados extensivamente, aliando-se a técnicas de orientação a objetos e programação orientada a eventos; tudo isto procura tornar mais ágil e flexível o processo de desenvolvimento de novas aplicações.
Páginas criadas em ASP.NET Web Forms podem se prestar às mais variadas finalidades, sendo que uma forma de uso bastante comum é a construção de funcionalidades do tipo CRUD (telas de cadastro/consulta). Embora a utilização de bancos de dados seja praticamente certa dentro de muitas aplicações, não será raro que determinadas informações sejam manipuladas em memória devido ao seu caráter provisório (e cuja confirmação poderá envolver ainda a persistência em uma base relacional posteriormente).
Nota do DevMan
RAD é um modelo que algumas tecnologias seguem para o desenvolvimento de aplicações rápidas. Utiliza o famoso Drag-and-Drop (arrasta e solta), onde você basicamente possui uma lista de componentes prontos e não tem a necessidade de construir a base de código.
Programação orientada a eventos é um paradigma de programação. Diferente do procedural que seguem um fluxo de controle padronizado, o controle de fluxo de programas orientados a evento é guiado por indicações externas, chamadas eventos. O mesmo é muito utilizado no desenvolvimento de interface com o usuário.
A manipulação temporária de informações é suportada pelo ASP.NET por meio do mecanismo de gerenciamento de estados. O mesmo oferece alternativas que tornam possível o armazenamento de objetos e outros tipos de dados, tanto do lado servidor, quanto no cliente (browser). A escolha de qual recurso é mais adequado depende de questões como, por quanto tempo uma informação estará acessível, quem poderá consumir a mesma, dentre outros aspectos.
Este artigo tem por finalidade apresentar alguns dos dispositivos que podem ser empregados no controle de estado dentro de aplicações Web Forms. Serão discutidos, assim, cenários em que variáveis de sessão ou aplicação, cookies, informações em cache e o mecanismo de ViewState podem ser considerados, apresentando ainda exemplos de uso de tais elementos.
Nota do DevMan
CRUD (sigla do inglês “Create, Retrieve, Update and Delete) é um termo que se refere a páginas Web construídas com fins de inclusão (Create), consulta (Retrieve), atualização (Update) e exclusão (Delete) de registros em uma base ou outro tipo de repositório de dados.
Controle de Estado em Web Forms: uma visão geral
O ASP.NET permite que informações de estado sejam armazenadas de diferentes maneiras:
• Através de uma referência comum a toda a aplicação disponível, portanto, às diversas partes que constituem a mesma (objeto Application);
• Como parte do objeto que corresponde à sessão de um usuário ativo num determinado instante (propriedade Session de uma página criada em Web Forms);
• Dentro da página que está sendo utilizada por um usuário para a realização de uma sequência de operações (objeto ViewState);
• Em um dispositivo de armazenamento temporário, com o acesso aos dados sendo permitido apenas durante um intervalo específico de tempo e que, uma vez expirado, forçará a uma nova atualização das informações envolvidas (técnica conhecida como caching);
• Como um arquivo armazenado dentro de um diretório específico do browser utilizado para acesso a um site, sendo que tal meio apresenta geralmente um prazo de validade (tais mecanismos são conhecidos como cookies).
A escolha por qual tipo de recurso empregar no controle de estado dentro de um site construído em Web Forms, dependerá de diversos fatores. Pesarão neste caso questões como:
• Por quanto tempo um conjunto de dados deverá estar disponível para acesso;
• Em que locais da aplicação tais informações serão consumidas;
• Se os dados serão armazenados no servidor ou devido a outros fatores, do lado do cliente (valendo-se de mecanismos oferecidos pelo browser que o mesmo utiliza);
• A finalidade a que se prestarão as informações a serem manipuladas, se de cunho geral ou específicas a um determinado usuário.
Levando em conta o desenvolvimento de grandes aplicações, é comum que uma série de procedimentos sejam adotados com o intuito de assegurar que a performance permaneça dentro de níveis aceitáveis. Diversas técnicas são normalmente empregadas com o objetivo de minimizar a utilização de memória nos servidores em que tais soluções encontram-se hospedadas. Diante do exposto, sistemas com um grande número de acessos simultâneos precisarão ter cautela ao manipular informações de estado: o uso deste tipo de recurso sem maiores critérios pode afetar a performance, diminuindo assim a escalabilidade das aplicações consideradas." [...] continue lendo...