Artigo Originalmente publicado na WebMobile 05
rc="/imagens/webmobile/wm05_capa.JPG" width=149 border=0>

Clique aqui para ler todos os artigos desta edição

ASP.NET – Aumentando a performance de suas aplicações web

Parte III – Session, ViewState, Cache e State Server

Nesta última parte de uma série onde estamos discutindo um importante tema no desenvolvimento web (performance), vamos conhecer os diversos objetos disponíveis no ASP.NET que possibilitam o gerenciamento de estado e sessão, incluindo Session, ViewState e Cache. No final deste artigo, também veremos um importante recurso do ASP.NET que permite a definição de um servidor de estado (State Server) que poderá aumentar consideravelmente a escalabilidade e disponibilidade de suas soluções web.

Vou supor aqui que o leitor não possui experiência ainda com o tratamento de sessão em aplicações web, de forma que iniciaremos pelo básico, com um exemplo bem simples. Aproveitaremos para examinar o modelo de execução do ASP.NET e porque precisamos gerenciar estado/sessão nesse contexto. Além disso, você aprenderá quando deve utilizar cada um dos objetos disponíveis no ASP.NET de acordo com o problema proposto.

Windows Forms (Desktop) x ASP.NET Web Forms (Web)

Para entendermos o funcionamento básico do porquê de existir o tratamento de estado/sessão em aplicações ASP.NET (e aplicações web como um todo), vamos fazer um exemplo prático e em cima dele aplicar as técnicas disponíveis. Esta será uma aplicação que frequentemente utilizo ao iniciar palestras e treinamentos sobre desenvolvimento ASP.NET, pois demonstra claramente a quebra de paradigma Windows Forms vs. Web e o modelo de execução do ASP.NET.

Esse entendimento inicial é fundamental para que possamos prosseguir nossos estudos neste artigo, principalmente se você está vindo (leia-se “migrando”) de um ambiente desktop. Caso esteja apenas iniciando no desenvolvimento web, é importantíssimo que compreenda desde o princípio como o ASP.NET gerencia requisições HTTP e seu modelo de execução, para evitar problemas futuros.

Para começar, vamos criar uma aplicação Windows Forms típica. A seguir, vamos fazer exatamente a mesma aplicação com ASP.NET Web Forms, usando os mesmos controles e o mesmo código, e você verá que, apesar dela funcionar perfeitamente em ambiente Windows, não funciona em ambiente web.

Você pode utilizar o Visual Studio .NET 2003 para criar estes exemplos, vou tomar o cuidado de usar apenas o recursos disponíveis no .NET Framework 1.1 (apesar de que teremos grandes novidades relacionadas ao assunto na versão 2.0, abordadas em futuras oportunidades). Aqui vou utilizar o Visual C# 2005 Express Edition Beta 2 para criar a aplicação Windows Forms e o Visual Web Developer 2005 Express Edition Beta 2 para criar a aplicação web.

No Visual C# Express clique em File>New Project e a seguir escolha a opção Windows Application (Figura 1). Dê um nome para a aplicação usando a opção Name.

 

image001.png

Figura 1. Criando uma aplicação Windows Forms no Visual C# 2005 Express Edition Beta 2.

No formulário principal, a partir da Toolbox, coloque dois controles TextBox e dois Buttons, ajustando-os conforme mostrado na Figura 2.

 

image003.png

Figura 2. Formulário principal da aplicação Windows Forms.

O código para o evento Click de cada um dos botões é mostrado na Listagem 1. Observe que declaramos uma variável privada chamada str, do tipo string. O código é simples: quando o botão Gravar for clicado, o valor digitado no TextBox1 é guardado em str. A seguir, quando o segundo botão (Ler) for clicado, recuperamos o valor armazenado em memória (variável str) e exibimos no TextBox2.

 

        private string str;

 

        private void btnGravar_Click(object sender, EventArgs e)

        {

            str = textBox1.Text; ...

Quer ler esse conteúdo completo? Tenha acesso completo