Как правильно хранить глобальные переменные уровня сайта на сайте SharePoint?

Одна вещь, которая сводит меня с ума в SharePoint2007, - это очевидная неспособность иметь настраиваемые параметры, которые применяются конкретно к сайту или семейству сайтов, а не к содержимому. Я имею в виду, что у вас есть некоторые предустановленные настройки, такие как логотип сайта, имя сайта и многое другое, но, похоже, нигде нет места для добавления новых видов настроек.

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

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

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

Ответы на вопрос(1)

Ваш ответ на вопрос