Introdução aos Property Bags no Sharepoint 

Tags: Developers

DEFINIÇÕES

 

Para quem não está familiarizado com os Property Bags, o que são?

 

Não é nada mais nem menos que um local para armazenar metadados ou propriedades dos teus sites no SharePoint. Os Property Bags são implementados sob a forma de uma tabela hash que consistem de nomes de propriedades e valores ao Nível do Site Collection etc... Por outro lado podemos armazenar no web.config parâmetros, mas esses mesmos parâmetros não estão ao Nível que queremos (ver níveis) o que por si só é uma desvantagem.

NÍVEIS

 

Podemos definir Property Bags nos seguintes níveis:

 

Farm (SPFarm class)
Web application (SPWebApplication class)
Site collection (SPSite class)
Site (SPWeb class)
List (SPList class)

 

EXEMPLO

 

Analisando um exemplo real, imaginemos que temos a nossa Aplicação dividida por áreas, e a cada área está adstrita uma Site Collection, seria bom logo à partida sabermos em que área estamos, good.. por outro lado podemos persistir um ID de Cliente de uma LOB Application ao nível do Site, logo só temos de defini-lo e invoca-lo sem termos de estar sempre a fazer requests à base de dados. Vejamos o diagrama em baixo

Neste caso persistimos logo a informação da área onde estamos, se mostra ou não a ribbon, e no 3.º caso sabemos logo o ID do Cliente e Empresa bastando apenas utilizar pequenos métodos ou propriedades para obter a informação como vemos em baixo.

 

O CÓDIGO

 

DEFINIR

 

SPSite siteCollection = new SPSite("http://site");
SPWeb site = siteCollection.RootWeb;

site.Properties.Add("SiteKey", "SiteValue");
site.Properties.Update();

 

LÊR

 

SPWeb.AllProperties["SiteKey"].ToString()
 

REMOVER
 
 
SPWeb.AllProperties.Remove("SiteKey");
SPWeb.Properties["SiteKey"] = null;
SPWeb.Update();
SPWeb.Properties.Update();
 
 

Podemos também definir no SharePoint Designer, mas estes ficarão estáticos e não dinâmicos.

 

CONCLUSÃO

 

Esta é uma solução perfeita quando tens que armazenar as configurações de um site específico enquanto for válido o SPWeb.

 

Existem outras formas de o fazer que podemos ver em detalhe:

Six ways to store settings in SharePoint

 

João Tito Lívio
SharePoint Consultant, Project Manager 
www.primesoft.pt
Microsoft Most Valuable Professional Office Systems desde 2002

 
Posted em 5-Jan-12
3 Comentários  |  Trackback Url  |  Link para este post | Bookmark este post com:        
 

Links para este post

Comentários


Sérgio Fernandes comentou em Thursday, 5-Jan-2012
Bom artigo João.


Ricardo Calejo comentou em Sunday, 8-Jan-2012
Viva, Exista ainda uma solução para o Central Admin para gerir as PropertyBags seja em WebApp, SiteColl, Site ou Web - http://pbs2010.codeplex.com/.


joao comentou em Monday, 9-Jan-2012
Eu fazia de maneira diferente mas agora que vou começar a usar este conceito do Property Bags. Bom artigo João, Thanks

Nome:
URL:
Email:
Comentário: