The SharePoint 12-hive contains by default a number of interesting files that every developer should be aware of. The more you know the better you understand the inside of SharePoint and it allows you to create more efficient and better solutions.

Here are my top five favorite files:

ctypeswss.xml (in TEMPLATE\FEATURES\ctypes)

This is the feature elements file for all the default WSS Content Types. When creating new content types, most often I find it useful to derive them from existing content types. For example if I need to create a content type that derives from the standard content type Task, i can easily get the content type ID, which is used when creating new content type IDs, and what Site Columns that content type has.

fieldwss.xml (in TEMPLATE\FEATURES\fields)

Second favorite is the elements file for the WSS Site Columns feature. In this file all definitions for the default WSS Site Columns is found. Together with ctypeswss.xml this is really handy when creating custom content types. By finding out the ID’s of the Site Columns you can easily re-use the site columns when creating content types.

Custom List schema.xml in (TEMPLATE\FEATURES\CustomList\CustList)

Whenever I need to create a list definition and need to create a schema.xml I use the schema.xml for the Custom List feature and copy it to my definition.

STS onet.xml in (TEMPLATE\SiteTemplates\STS\Xml)

This is the file to check out when creating Site Definitions. The onet.xml file contains all Site Definitions (althought the folder is called SiteTemplates), which includes navigation, lists etc. Most often I copy this file (and all other files in the STS folder) and remove almost everything except the the blank site def.

DOCICON.xml (in TEMPLATE\XML)

Perhaps not that interesting that the four above, but on nearly all installations you update this file with the PDF icon (at least). What this file does it that it allows you to map an extension (or ProgID) to an icon and optionally specify an editor.

What’s your favorite ones?