Site Definition Viewer - a Windows (.NET 2.0) tool to read Site Definition and Features configurations (version 0.1)

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 :

  • All Site Definition Configurations
  • All Site Features as well as Web Features
  • All manifests files in any feature used by the site definition configuration
  • All receiver classes in any feature used by the site definition configuration
  • All stapled features to the site definition configuration
  • All properties for any feature used by the site definition

 

Other features enabled:

  • On the feature GUID/NAME, a tooltip will appear with its description
  • Double-clicking on the site definition configuration will open ONET.XML with your default XML launcher
  • Double-clicking on a manifest file will open the file with its default launcher (usually XML)
  • Double-click on a feature name will open the file with your default XML launcher
  • There's a configuration file if you installed your 12 folder elsewhere, you can also specify the site definition to automatically select (practical if you launch the tool often and want to read the same definition :))

 

** 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:

sitedefinitionviewer_tooltip

 

You can see here the all files (manifests) defined with the Publishing feature:

sitedefinitionviewer_manifests

 

You can see here the properties for the NavigationProperties feature:

sitedefinitionviewer_properties

 

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):

sitedefinitionviewer_receiverclass

 

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) :

sitedefinitionviewer_stapledfeatures

 

 

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.

 

** 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.

 

Maxime