Auto-Save do Profile


A utilização do Profile em aplicações escritas sob o ASP.NET 2.0 tem crescido bastante e, com isso, há um detalhe importante que deve ser analisado quando utilizamos esta funcionalidade.

O que me refiro é com relação ao auto-save do mesmo. Por padrão, quando a página finaliza a sua execução, o módulo ProfileModule invocará o evento ProfileAutoSaving durante o evento EndRequest, chamando o método Save da classe ProfileBase, responsável por persistir os dados do mesmo na DB.

A questão é que, na maioria dos casos, as informações do Profile são alteradas em apenas uma página (página de configurações) e, nas demais, é apenas lido essas informações. Com isso, o resto das páginas invocam todas essas rotinas desnecessariamente. Se este é o seu cenário, ou ainda, se em algumas páginas altera o conteúdo, então o que pode fazer é desabilitar o auto-save e, explicitamente, salvar quando for necessário para ter uma melhor performance.

Essa configuração é definida no arquivo Web.Config, através do atributo automaticSaveEnabled do elemento profile. Para desabilitar, basta definir o atributo automaticSaveEnabled para false, como é mostrado abaixo:

<profile defaultProvider=”SqlProfileProvider” automaticSaveEnabled=”false”>
   ….
</profile>

… depois, quando em alguma página precisar alterar o conteúdo, faz:

Profile.CurrentLanguage = “pt-BR”;
Profile.Save();

Anúncios

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s