Vamos a empezar enumerando las opciones que disponemos:
1.- Almacenando la información en el Web.Config
Esta opción es la más simple, pero también la menos profesional de todas. Si estamos desarrollando un producto no es nada profesional que tengamos estos valores en el Web.Config. Motivos:
Además, el Web.Config en una de estas modas hipster tiene los dias contados. Ahora cada desarrollador/producto puede elegir su fichero de configuración y no necesariamente tiene que ser un web.config. Quien quiera leer un poco más información al respecto recomiendo este post del maestro Jose Maria Aguilar
2.- Crear listas ocultas con los valores de configuración
Al utilizar esta opción, estamos utilizando elementos naturales de SharePoint. Creamos una lista y le añadimos los campos que necesitemos con sus respectivos valores. Podemos acceder a la lista utilizando las API de SharePoint, los usuarios desde la interfaz gráfica no se dan cuenta de que esta lista existe. Esta opción es utilizada por la propia Microsoft para almacenar diversos valores utilizados en nuestro servidor favorito. Si alguien tiene curiosidad que se descargue la herramienta SharePoint Manager y que observe cuantas listas ocultas hay en un Site Collection.
La principal desventaja que tiene esta forma es que una lista no esta pensada como lugar para almacenar información, su acceso no es el más rápido posible, además dependiendo de si esta configuración puede ser compartida por más de un site collection debemos de duplicar la lista y mantener la información en dos sistemas. Como ejemplo tengo un site de Tareas, y queremos tener el número de tareas asignadas al usuario que esta logado en cualquier aplicación de la organización. De acuerdo a esta opción tengo que desplegar una lista en cada Site que tenga e introducir la url del Site de Tareas. Ahora bien dado un requerimiento de negocio, se modifica la ubicación de las tareas y esta en otro Site. El mantenimiento de todas estas listas es algo que no es muy mantenible.
3.- Mediante Propiedades de nuestro WebPart
Esta opción es ideal para pequeños WebParts en los que es necesario cierta interacción con el usuario, es la forma en la que Microsoft indica que añadamos los parámetros de configuración. Para ello con añadir las siguientes lineas dentro del code behind del WebPart lo tendríamos implementado:
[Category("Configuración"), Personalizable(PersonalizationScope.Shared), WebBrowsable(true), WebDisplayName("Número de elementos"), WebDescription("Introduce el número de elementos a mostrar.")] public int NumElementos { get { } set { } }
Ahora bien esta opción, como principal ventaja tiene que es muy simple de modificar, no hace falta volver a actualizar la solución, y tan solo con ir a las propiedades del propio WebPart lo podemos de modificar. Ahora bien su principal defecto, es que los parámetros de configuración pueden ser visibles por todo el mundo, por lo que si queremos añadir una cadena de conexión como propiedad, esta puede ser accesible por personas que no deberían (siempre que tengan ciertos «permisos» dentro del site colection). Además si este WebPart lo estamos utilizando en más de una página el mantenimiento del mismo también se puede volver una locura.
4.- Mediante Property Bag
Lo primero de todo vamos a definir que es una «Property Bag», es un lugar donde podemos almacenar cualquier clave-valor dentro de SharePoint. Las propertys bugs pueden almacenar y recuperar la configuración en los siguientes niveles:
Para crear estas propertys las podemos hacer utilizando tanto código C#,PowerShell o JavaScript.
SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite currentSiteCollection = new SPSite("http://myserver")) { using (SPWeb currentWeb = currentSiteCollection.OpenWeb()) { currentWeb.AllowUnsafeUpdates = true; if (!currentWeb.AllProperties.ContainsKey(key)) currentWeb.Properties.Add(key, value.Value.ToString()); else currentWeb.AllProperties[key] = value; currentWeb.Properties.Update(); currentWeb.AllowUnsafeUpdates = false; } } });
Además mediante SharePoint Designer (en una de sus pocas utilidades) se puede consultar/modificar/añadir estas propiedades:
Como podemos observar, podemos crear/consultar todas estas propiedades independientemente del contexto en el que se estén ejecutando. Se pueden compartir propiedades entre distintos «Site Collection». Están ocultas para todos los usuarios del sistema y la modificación de las mismas solamente las pueden hacer aquellas personas que sean encargadas para ello (administradores de SharePoint o encargados del desarrollo)
Hay muchas opciones para poder almacenar los datos de nuestra aplicación, hay muchas opciones. Por lo descrito la mejor opción es Property Bug, pero no es la única forma y el utilizar otra alternativa no tiene porque estar mal. El utilizar las propiedades que hay dentro de un WebPart es una alternativa que podemos utilizar en muchas ocasiones. Ejemplo: tengo un WebPart que lee de una fuente de RSS. ¿Donde almaceno la fuente de RSS? Sin más requisitos, la mejor opción en este caso es utilizar las propiedades del WebPart. Ahora bien pongamos por ejemplo que hemos implementado una SPA y en nuestra capa de servicio tenemos que buscar determinados grupos de seguridad propios de SharePoint. Esta claro que en este caso, la opción que se recomendaría seria la utilización de las Property Bugs. Como en muchos aspectos relacionados con el desarrollo del software, el desarrollo hay que ponerlo en el contexto en el cual se implementa.
Este sitio web utiliza cookies para que tengas la mejor experiencia de usuario. Si continuas navegando, estás dando tu consentimiento para aceptar las cookies y también nuestra política de cookies (esperemos que no te empaches con tanta cookie 😊)