Início > .NET, SharePoint > SharePoint Disposable Pattern

SharePoint Disposable Pattern

DisposeMemory Alguns objetos do SharePoint implementam a interface IDisposable, para facilitar a liberação de memória. Mas por que, você deve estar se perguntando, precisamos nos preocupar com a memória se o Garbage Collector faz o “trabalho sujo” por nós?

Objetos como SPWeb e SPSite utilizam tanto código gerenciado como código não gerenciado. Dessa forma, o Garbage Collector cuida da memória utilizada pela parte gerenciada do código. O problema é que a porção não gerenciada do código utilizada por esses objetos é muito maior que a porção gerenciada. Assim é preciso que liberemos essa parte da memória para evitar problemas maiores, os memory leaks.

O método Dispose da IDisposable libera a memória (gerenciada e não gerenciada) associada àquele objeto. Após a chamada desse método o objeto fica inutilizado e qualquer referência feita a ele causa um erro.

Você agora deve estar pensando: “Ok, eu já sei por que utilizar o método Dispose. Mas em que situações eu vou precisar chamá-lo?”

De maneira geral, sempre que você instancia um objeto SPWeb ou SPSite usando a palavra chave new em seu código você precisará usar o método Dispose. Por exemplo:

SPSite site = new SPSite(“http://site”);

Por outro lado, objetos retornados por SPContext.Current.Web, SPContext.Current.Site, SPContext.Web, SPContext.Site não devem chamar o método Dispose no seu código.

A ferramenta SharePoint Dispose Check ajuda o desenvolvedor a saber quando é preciso usar esse método. Ela pode ser encontrada em http://code.msdn.microsoft.com/SPDisposeCheck.

Caso você queira saber mais sobre o assunto, leia o artigo “Best Practices: Using Disposable Windows SharePoint Services Objects” em http://msdn.microsoft.com/en-us/library/aa973248.aspx.

Anúncios
Categorias:.NET, SharePoint
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

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

%d blogueiros gostam disto: