Apóyate en los metadatos de SharePoint


SharePoint tiene una herramienta peculiar para varios elementos, dentro del modelo de objetos. Muchos elementos tienen una propiedad a través de la cual es posible acceder a los metadatos de ese elemento. En particular, hay dos de éstos que son de mucha utilidad: SPWeb y SPListItem.

SPWeb tiene la propiedad AllProperties, mientras que SPListItem tiene la propiedad Properties. Ambas son de tipo Hashtable, así que es hora de desempolvar mi post sobre esa colección, si tienes dudas.

Ambas colecciones guardan metadatos, es decir, información adicional. SharePoint las guarda en la base de datos, como todo, y las carga al obtener el objeto dueño de los mismos. Esto los convierte en un perfecto lugar para guardar información relacionada o de configuración. Muchas veces esto es mejor que crear otras listas o guardarlas en el web.config.

La regla es así: si quieres guardar información a nivel del sitio, utiliza SPWeb.AllProperties. Por ejemplo:

SPContext.Current.Web.AllProperties.Add("Mi propiedad", "Mi valor");
SPContext.Current.Web.Update();
...
string value = SPContext.Current.Web.AllProperties["Mi propiedad"] as string;
Console.WriteLine(value); // imprime "Mi valor"

Para guardar información sobre un elemento de cualquier lista (incluyendo bibliotecas de documentos y galerías) usa SPListItem.Properties. Por ejemplo:

SPList list = SPContext.Current.Web.Lists["Mi lista"];
foreach (SPListItem item in list.Items)
{
    item.Properties.Add("Mi propiedad", "ID " + item.ID);
    item.Update();
}
...
foreach (SPListItem item in list.Items)
{
    string value = item.Properties["Mi propiedad"] as string;
    Console.WriteLine(value); // imprime "ID 1", etc
}

En general, es una buena idea usar SPWeb.AllProperties para cuestiones de configuración sobre el sitio (en lugar del web.config, por ejemplo) y usar SPListItem.Properties sobre información que no deberían ver los usuarios en la lista. Esto último, por ejemplo, es mejor que crear una columna en el SPList y ocultarla en las vistas.

Juega un rato con esto y verás qué tan útil resulta esto.

Anuncios
  1. Aún no hay comentarios.
  1. mayo 27, 2011 en 11:37 pm

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s