I spent a little bit on time understanding Site Definitions lately, particularly the Publishing ones like BLANKINTERNET. One very frustrating thing is to make sense of all the WEBTEMP* configurations, the site definitions, the features, the features dependencies, and the stapled features ... When you start doing Windows search on a "text containing this Feature GUID" and then you open up a bunch of Notepads, you get lost :)
So I created this little Windows application with .NET 2.0. It basically ask you for which Site Definition folder you want to read and it will then create a complete TreeView showing the following information :
Other features enabled:
** UPDATE ** : I updated the application to not show an error when the feature.xml file doesn't load. Some installations have a few empty folders and I was showing up lots of message boxes. They have been removed.
Here's what it looks like for BLANKINTERNET:
You can see here the all files (manifests) defined with the Publishing feature:
You can see here the properties for the NavigationProperties feature:
You can see that the Publishing feature also defines a receiver class (when you are doing reverse engineering of a feature to understand it, the receiver class is very practical):
Last, you can see that the PublishingSite and PublishingWeb are stapled to all BLANKINTERNET definitions (even though they are defined in the site definition anyway) :
This tool is simply there to help you read all the parameters quickly. It's working fine for me but I haven't done extensive testing and it's not doing everything. Also, I read the WEBTEMP*.xml files in 1033 (english) only but that's also configurable in the configuration file.
Maxime