SharePoint 2010: Configuración y uso de Property Bags (I)!

SharePoint dispone del concepto de Property Bags como mecanismo para almacenar configuraciones que puedan necesitar las soluciones que se desplieguen. Una Property Bag es una Hash Table en la que se puede almacenar cualquier metadato en la forma clave-valor: strings de conexión, nombres de servidor, rutas de archivos, etc. Las Property Bags se definen de acuerdo a la misma jerarquía de la propia arquitectura de SharePoint de forma que tenemos los siguientes niveles:

  • Granja (Clase SPFarm).
  • Aplicación Web (Clase SPWebApplication).
  • Coleción de sitios (Clase SPSite).
  • Sitio (Clase SPWeb).
  • Lista (Clase SPList).

Para trabajar ver como configurar y usar Property Bags en estos niveles:

  • En Visual Studio 2010 creamos un proyecto de tipo aplicación de consola (Nota: La versión de .NET Framework del proyecto tiene que ser la 3.5).
  • A través del Configuration Manaer de Visual Studio 2010 cambiamos la plataforma de x86 a x64.
  • Codificamos la clase Program.cs de la siguiente forma:
    • Como vemos, se han añadido directivas using a Microsoft.SharePoint, Microsoft.SharePoint.Administration, System.Collections.
    • Para trabajar con las Property Bags a nivel de granjas necesitamos un objeto de tipo SPFarm y luego acceder a la colección de Property Bags disponibles en la propiedad Properties.
    • A partir de aquí, simplemente se trata de seguir la definición de Property Bag comentada al inicio.
   1: using System;

   2: using System.Collections.Generic;

   3: using System.Linq;

   4: using System.Text;

   5:  

   6: //Espacios de nombres necesarios

   7: using System.Collections;

   8: using Microsoft.SharePoint;

   9: using Microsoft.SharePoint.Administration;

  10:  

  11: namespace SPPropertyBagsConfigurator

  12: {

  13:     class Program

  14:     {

  15:         static void Main(string[] args)

  16:         {

  17:             Console.WriteLine("Introduzca el tipo de operación:");

  18:             Console.WriteLine("1 .- Visualizar las Property Bags");

  19:             Console.WriteLine("2 .- Crear una nueva Property Bag");

  20:             Console.WriteLine("3 .- Actualizar una Property Bag");

  21:             Console.WriteLine("4 .- Eliminar una Property Bag");

  22:  

  23:             string sOpcion = Console.ReadLine();

  24:             ManageFarmPropertyBags(sOpcion);

  25:             Console.ReadLine();

  26:         }

  27:         /// <summary>

  28:         /// Permite manegar las Property Bags a nivel de granja

  29:         /// </summary>

  30:         /// <param name="sOpcion">Operación a realizar</param>

  31:         static void ManageFarmPropertyBags(string sOpcion)

  32:         {

  33:             try

  34:             {

  35:                 SPFarm spfGranja = SPFarm.Local;

  36:                 switch (sOpcion)

  37:                 {

  38:                         //Visualizar Property Bags

  39:                     case "1":

  40:                         if (spfGranja.Properties!=null 

  41:                             && spfGranja.Properties.Count>0)

  42:                         {

  43:                             Console.WriteLine(

  44:                                 "-----------------------------------");                                

  45:                             Console.WriteLine(

  46:                                 "Property Bags disponibles");

  47:                             Console.WriteLine(

  48:                                 "-----------------------------------");    

  49:                             foreach (DictionaryEntry deEntry in spfGranja.Properties)

  50:                             {

  51:                                 Console.WriteLine(

  52:                                     "Propiedad: {0} - Valor: {1}",

  53:                                     deEntry.Key,deEntry.Value);

  54:                             }

  55:                         }

  56:                         else

  57:                         {

  58:                             Console.WriteLine(

  59:                                 "-----------------------------------");  

  60:                             Console.WriteLine(

  61:                                 "No hay Property Bags definidas a nivel de granja");

  62:                             Console.WriteLine(

  63:                                 "-----------------------------------");  

  64:                         }

  65:  

  66:                         break;

  67:                         //Añadir una Property Bag

  68:                     case "2":

  69:                         spfGranja.Properties.Add("SPFarmKey", "SPFarmValue");

  70:                         spfGranja.Update();

  71:                         Console.WriteLine(

  72:                             "-----------------------------------");  

  73:                         Console.WriteLine(

  74:                             "Property Bag añadida");

  75:                         Console.WriteLine(

  76:                             "-----------------------------------");  

  77:                         break;

  78:                         //Actualizar una Property Bag

  79:                     case "3":

  80:                         spfGranja.Properties["SPFarmKey"]="SPFarmValueUpdate";

  81:                         spfGranja.Update();

  82:                         Console.WriteLine(

  83:                             "-----------------------------------");  

  84:                         Console.WriteLine(

  85:                             "Property Bag Actualizada");

  86:                         Console.WriteLine(

  87:                             "-----------------------------------");  

  88:                         break;

  89:                         //Borrar una Property Bag

  90:                     case "4":

  91:                         spfGranja.Properties["SPFarmKey"] = null;

  92:                         spfGranja.Properties.Remove(

  93:                             "SPFarmKey");

  94:                         spfGranja.Update();

  95:                         Console.WriteLine(

  96:                             "-----------------------------------");  

  97:                         Console.WriteLine(

  98:                             "Property Bag eliminada");

  99:                         Console.WriteLine(

 100:                             "-----------------------------------");  

 101:                         break;

 102:                     default:

 103:                         Console.WriteLine(

 104:                             "-----------------------------------");  

 105:                         Console.WriteLine(

 106:                             "Opción seleccionada no valida");

 107:                         Console.WriteLine(

 108:                             "-----------------------------------");  

 109:                         break;

 110:                 }

 111:                 Console.WriteLine();

 112:                 Main(null);

 113:             }

 114:             catch (Exception ex)

 115:             {

 116:                 Console.WriteLine("Error: {0}",

 117:                     ex.Message);

 118:             }

 119:         }

 120:     }

 121: }

  • Compilamos el proyecto y lo probamos, en primer lugar añadimos una primer Property Bag.
  • Comprobamos que la Property Bag se ha añadido y la mostramos por pantalla.
image image image

 

Referencias:

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

2 comentarios en “SharePoint 2010: Configuración y uso de Property Bags (I)!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *