msdn29_capa.jpg

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

 

Profiles – Gravando informações personalizadas para os usuários do site

Fritz  Onion

Este artigo discute

Este artigo usa as seguintes tecnologias

·        Fundamentos do Profile;

·        Serialização;

·        Tipos customizados;

·        Otimizações.

ASP.NET 2.0.

 

O gerenciamento de estado em aplicações Web é um assunto controverso. Devemos armazenar os dados do usuário por uma única sessão ou devemos persisti-los através das sessões? Podemos facilmente armazenar informações temporariamente enquanto alguém navega no site, usando sessão (Session). Tipicamente, teremos dados em memória, indexados por uma chave de sessão única, designada para cada novo usuário, que tem a mesma duração da "sessão" do cliente. Armazenamento de informações persistentes entre sessões é normalmente realizada construindo nosso próprio meio de armazenamento de dados, indexado por algum identificador do usuário (tipicamente obtido depois que um usuário se registra no site).

Existe uma “área cinzenta” entre esses dois níveis de armazenamento em nível de cliente. E se quisermos armazenar dados também para sessões de usuários anônimos? Não seria conveniente se pudéssemos armazenar dados de usuários de forma persistente, sem ter que implementar um meio personalizado para armazenamento? Esse nicho foi agora bem preenchido por uma nova funcionalidade do ASP.NET 2.0, conhecida como Profile.

O Profile provê um modo simples de definir informações de usuários, apoiado em banco de dados. Com algumas entradas no arquivo de configuração, podemos construir rapidamente um site que armazena as preferências do usuário (ou qualquer outros dados relativos ao assunto) em um banco de dados. Um Profile é semelhante a uma sessão, porém diferentemente deste, persiste através de sessões. Profiles são associados ao sistema de Membership do ASP.NET 2.0, de forma que os dados para clientes autenticados são armazenados em associação com as identidades reais, ao invés de usar algum identificador arbitrário. Clientes anônimos têm um identificador gerado especificamente para eles, armazenado como um cookie persistente, de forma que em acessos subseqüentes da mesma máquina, reterão as preferências dos mesmos.

Para desenvolvedores ASP.NET, é importante entender as opções disponíveis para armazenamento de estado e quando cada uma dessas opções será mais apropriada. Neste artigo veremos Profiles e onde se encaixa no espectro de gerenciamento de estado.

Fundamentos do Profile

O primeiro passo ao usarmos Profiles, é declarar as propriedades que gostaríamos de armazenar em nível de cada usuário no arquivo Web.config, sob o elemento . O exemplo na Listagem 1 mostra três declarações de propriedade para o usuário: uma para a cor favorita, outra para o número favorito e outra para o código de status HTTP favorito.

 

Listagem 1. Elemento Profile no Web.Config

<configuration>

  <system.web>

    <profile enabled="true">

      <properties>

        <add name="FavoriteColor" defaultValue="blue"

                  type="System.String"

                  allowAnonymous="true" />

 

        <add name="FavoriteNumber" defaultValue="42"

                  type="System.Int32"

                  allowAnonymous="true" />

 

        <add name="FavoriteHttpStatusCode"

                  type="System.Net.HttpStatusCode"

                  allowAnonymous="true"

                  serializeAs="String"

                  ...

Quer ler esse conteúdo completo? Tenha acesso completo