uso sitio sincronizar porque podemos office especificado entre diferencia conectar cliente carpetas sharepoint sharepoint-2007 global-variables wss-3.0

sincronizar - ¿Cuál es una forma adecuada de almacenar variables globales a nivel de sitio en un sitio de SharePoint?



sincronizar sharepoint pc (3)

La bolsa de propiedades se puede usar para almacenar propiedades de tipo clave / valor. Creo que es para lo que parecen ser tus propósitos.

Personalmente, tengo más necesidad de propiedades de recopilación entre sitios (como cadenas de conexión db) y las utilizo para almacenarlas.

Una cosa que me ha vuelto loco sobre SharePoint2007 es la aparente incapacidad de tener configuraciones definibles que se apliquen específicamente a un sitio o colección de sitios en sí, y no al contenido. Quiero decir, tienes algunas configuraciones predefinidas como el Logotipo del sitio, el Nombre del sitio y otras cosas, pero no parece haber ningún lugar donde agregar nuevos tipos de configuraciones.

La aplicación en la que estoy trabajando necesita poder crear múltiples tipos de "colecciones de sitios de proyectos" que sigan una plantilla básica, pero tienen ciertas configuraciones adicionales que se aplican específicamente a esa colección de sitios y solo a esa. Además del nombre del sitio estándar, también debemos definir el Número del proyecto, el Nombre del proyecto y el Nombre del cliente. Y debido a las solicitudes de algunos de nuestros clientes, también llegamos a un punto en el que tenemos que tener configuraciones configurables que modifiquen el funcionamiento de algunos de los flujos de trabajo, como si los archivos están marcados con letras o números.

Nuestra solución actual, sobre la cual tengo dudas, ha sido almacenar un archivo XML en el servidor de SharePoint. Este archivo contiene un nodo para cada colección de sitios, identificado por la URL del sitio raíz. Dentro del nodo están todos los elementos que necesitan definirse para esa colección de sitios. Cuando los necesitamos, tenemos que acceder al archivo XML (que siempre requerirá SPSecurity.RunWithElevatedPrivileges para acceder a los archivos directamente en el servidor) cada vez que se cargue y recupere los datos. Hay muchos procesos automatizados que tendrán que hacer esto, y tengo dudas sobre la estabilidad de este método cuando llegamos a cientos de sitios con miles de archivos ejecutando decenas de miles de flujos de trabajo, todos queriendo acceder a este archivo. Tal vez son preocupaciones infundadas, pero prefiero preocuparme que arriesgarme a romper todo en un par de años.

Estaba buscando en el objeto SPWeb y encontré la tabla hash AllProperties . Parece el tipo de cosa que podría funcionar, pero no sé qué tan seguro es modificar esto. Leí tanto MSDN como el SDK de WSS pero no encontré nada que aclarara al agregar propiedades completamente nuevas en AllProperties . ¿Es seguro usar AllProperties para este tipo de cosas? ¿O hay otra característica que me falta, que podría manejar el concepto de variables globales en la colección de sitios o el alcance del sitio?


La forma recomendada de hacerlo es usar PropertyBag (pares clave / valor) a través de .Properties de SPFarm, SPWeb.RootWeb (para colecciones de sitios), SPWeb, SPList, etc. (dependiendo del alcance que necesite).

MSDN - Administración de las opciones de configuración personalizadas para una aplicación de SharePoint

Hay un código listo para producción disponible como parte del

MSDN: la biblioteca de orientación de SharePoint

Ver administrador de configuración jerárquica

Esto le da acceso programático para leer / escribir estos valores. Si desea hacer esto sin usar la biblioteca de orientación, entonces usaría algo como el siguiente código.

SPWeb web = SPContext.Current.Web; if (web.Properties.ContainsKey("MyProperty")) string myProperty = web.Properties["MyProperty"];

Si desea que la interfaz de usuario permita a los administradores configurar fácilmente los valores, utilice SharePoint Designer (urghhhh!) O algo así como SharePoint Property Bag Settings