Что надлежащий путь состоит в том, чтобы сохранить глобальные переменные уровня сайта в сайте SharePoint?

Одной вещью, которая свела меня с ума о SharePoint2007, является очевидная неспособность иметь defineable настройки, которые применяются конкретно к самому набору сайта или сайта а не содержанию. Я имею в виду, у Вас есть некоторые предопределенные настройки как Логотип Сайта, Название сайта и различные другие вещи, но, кажется, нет где угодно для добавления новых видов настроек.

Приложение я работаю над потребностями смочь создать несколько видов "наборов стройплощадки", что все следуют за основным шаблоном, но имеют определенные дополнительные настройки, которые применяются конкретно к тому набору сайта и что один один. В дополнение к стандартному названию сайта мы также должны определить Число Проекта, Название проекта и Имя клиента. И, учитывая запросы некоторых наших клиентов, мы также достигаем точки, где у нас должны быть конфигурируемые параметры, которые изменяются, как часть работы рабочих процессов, как то, отмечены ли файлы с Буквами или Числами.

Наше текущее решение, о котором я колеблюсь, состояло в том, чтобы сохранить XML-файл на сервере SharePoint. Этот файл содержит один узел для каждого набора сайта, определенного URL корневого сайта. В узле все элементы, которые должны быть определены для того набора сайта. Когда нам нужны они, мы должны получить доступ к XML-файлу (который будет всегда требовать SPSecurity. RunWithElevatedPrivileges для доступа к файлам прямо на сервере) каждый раз, чтобы загрузить его и получить данные. Существует много автоматизированных процессов, которые должны будут сделать это, и я колеблюсь об устойчивости этого метода, когда мы добираемся до сотен сайтов с тысячами файлов рабочие десятки тысяч рабочих процессов, все желающие получить доступ к этому файлу. Возможно, они - необоснованные заботы, но я взволновал бы, чем рискнул бы всем прерывающим пару лет.

Я изучал объект SPWeb и найденный AllProperties хеш-таблица. Это похоже просто на вид вещи, которая могла бы работать, но я не знаю, как безопасный это должно изменять это. Я прочитал и MSDN и SDK WSS, но не нашел ничего, что разъяснилось при добавлении абсолютно новых свойств в AllProperties. Действительно ли безопасно использовать AllProperties для такого рода вещи? Или есть ли еще одна функция, которую я пропускаю, который мог обработать понятие глобальных переменных в наборе сайта или объеме сайта?

6
задан Grace Note 9 June 2010 в 17:57
поделиться

3 ответа

Рекомендуемый способ сделать это - использовать PropertyBag (пары ключ / значение) через .Properties SPFarm, SPWeb.RootWeb ( для семейств сайтов), SPWeb, SPList и т. д. (в зависимости от нужной вам области).

MSDN - Управление параметрами настраиваемой конфигурации для приложения SharePoint

В составе

MSDN - Библиотеки руководств по SharePoint

См. Диспетчер иерархической конфигурации

Это готовый к эксплуатации код. дает вам программный доступ для чтения / записи этих значений. Если вы хотите сделать это без использования библиотеки руководств, вы должны использовать что-то вроде следующего кода.

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

Если вы хотите, чтобы пользовательский интерфейс позволял администраторам легко устанавливать значения, используйте либо SharePoint Designer (ураххх!), Либо что-то вроде Настройки корзины свойств SharePoint

5
ответ дан 17 December 2019 в 00:03
поделиться

Propertybag можно использовать для хранения свойств типа ключ/значение. Я думаю, что он предназначен для ваших целей.

Лично мне больше нужны свойства межсайтовой коллекции (например, строки подключения к БД), и я использую this для их хранения.

1
ответ дан 17 December 2019 в 00:03
поделиться

Я использовал http://pbs.codeplex.com/

1
ответ дан 17 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: