Managing SharePoint Configuration
This section describes how configuration information is stored in SharePoint.
Hierarchical Object Store
The hierarchical object store is the mechanism by which Windows SharePoint Services stores information about the farm, Web applications, features, and so on. You can use it to store custom configuration data by creating classes that inherit from the SPPersistedObject class. This option is appropriate if you need to store complex objects. The hierarchical object store allows you to store data at either the farm or Web application level. Additionally, you can create a custom hierarchy of SPPersistedObjects rooted by an instance of SPFarm or SPWebApplication.
Property Bags
A property bag enables you to add and retrieve properties to objects. Property bags are implemented as a simple hash table of property names and values. Do not attempt to store anything in property bags unless you are sure it can be serialized.
At the site level, a property bag can be accessed with the Properties property of an instance of the SPWeb class. If you want to store list-level configuration data, use the property bag of the root folder of the list.
You can use a property bag to store configuration information at different levels of the SharePoint hierarchy. The following table summarizes the options.
Level |
Storage location |
---|---|
SPFarm |
The Properties property that is inherited from the SPPersistedObject class. |
SPWebApplication |
The Properties property that is inherited from the SPPersistedObject class. |
SPSite |
The AllProperties property of the root Web. |
SPWeb |
The AllProperties property. |
SPList |
The RootFolder.Properties property. |
Make sure to use prefixes with your keys to help you distinguish your custom configuration properties from other properties. In particular, be careful not to remove properties that are added by SharePoint. You must call the Update method when you add, change, or remove a property bag entry.
Lists
Use lists if you want to store configuration data that end users can edit. Otherwise, consider using property bags. Lists can also be used as a way of storing configuration data at different levels of the SharePoint hierarchy. The following table summarizes the options.
Level |
Storage location |
---|---|
SPFarm |
List in Central Administration site or subsite. |
SPSite |
List in the root Web of the site collection. |
SPWeb |
List in the SPWeb |
More Information
To learn more about using the Web.config file to store configuration data, see Working with Web.config Files on MSDN.
There is a tool named Web.config Modification Manager for SharePoint that you can use to add, edit, and delete modifications to the Web.config file made through the SPWebConfigModification API. This tool was created by Vincent Rothwell and is available on his blog.