Now and again I come across code with hardcoded SharePoint ID’s in it. Or scary loops matching a field, list or property name.
SharePoint provides some classes containing the out of the box ID’s, you only have to know they exist.
I made an overview so nobody has to hardcode those pesky GUID’s, ContentTypeId’s or property names any longer.
WSS/Core - Microsoft.SharePoint.SPBuiltInFieldId
The SPBuiltInFieldId class contains 314 GUID's for the default SharePoint fields. You can find them all on the SPBuiltInFieldId fields page, but I name some of the more common ones:
Created
Created_x0020_By
ID
Modified
Modified_x0020_By
Title
UniqueId
WSS/Core - Microsoft.SharePoint.SPBuiltInContentTypeId
The SPBuiltInContentTypeId class contains 34 content type ID’s for the default SharePoint content types. You can find them all on the SPBuiltInContentTypeId fields page, but I name some of the more common ones:
Announcement
Document
Folder
Item
Task
WSS/Core - Microsoft.SharePoint.SPListTemplateType
The SPListTemplateType enumeration is more commonly known and used but what’s more special about this enumeration is to use it in combination with the SPSite.GetCatalog method.
With this method you can easily retrieve the MasterPageCatalog
for the current site collection:
var site = SPContext.Current.Site; var masterPageGallery = site.GetCatalog(SPListTemplateType.MasterPageCatalog) as SPDocumentLibrary; if (masterPageGallery != null) { // DoStuff() }
The enumerations contain four list template ID's for the default SharePoint catalogs.
ListTemplateCatalog
MasterPageCatalog
WebPartCatalog
WebTemplateCatalog
MOSS - Microsoft.SharePoint.Publishing.FeatureIds
The FeatureIds class contains 16 GUID's for the MOSS publishing features. You can find them all on the FeatureIds fields page, but I name the most common ones:
Navigation
Publishing
Server - Microsoft.SharePoint.Publishing.Internal.WssFeatureIds
This class is not documented and the namespace implies its internal. The WssFeatureIds
class however is public and the only place the 24 WSS feature ID's are available.
Because this class is not documented I list all fields:
AnnouncementsList
BasicWebParts
ContactsList
CustomList
DataConnectionLibrary
DataSourceLibrary
DiscussionsList
DocumentLibrary
EventsList
GanttTasksList
GlobalContentTypes
GlobalFields
GlobalMobilityRedirect
GridList
IssuesList
LinksList
NoCodeWorkflowLibrary
PictureLibrary
SurveysList
TasksList
TeamCollaboration
WebPageLibrary
WorkflowHistoryList
XmlFormLibrary
Server - Microsoft.SharePoint.Publishing.FieldId
The FieldId class contains 61 GUID’s for the publishing fields. You can find them all on the FieldId properties page, but I name some of the more common ones:
Contact
PageLayout
PreviewImage
PublishingPageContent
PublishingPageImage
RollupImage
Server - Microsoft.SharePoint.Publishing.ContentTypeId
The ContentTypeId class contains 10 content type ID's for the publishing content types. You can find them all on the ContentTypeId properties page, but I name some of the more common ones:
ArticlePage
MasterPage
PageLayout
WelcomePage
MOSS - Microsoft.Office.Server.UserProfiles.PropertyConstants
The PropertyConstants class contains 42 names of the standard user profile properties. You can find them all on the PropertyConstants fields page, but I name some of the more common ones:
BirthDay
CellPhone
Department
FirstName
LastName
Manager
PictureUrl
PreferredName
Title
WorkEmail
WorkPhone