Technology Toolbox

Your technology Sherpa for the Microsoft platform

Jeremy Jameson - Founder and Principal



MOSS 2007 Master Page Comparison

This post originally appeared on my MSDN blog:

Since I no longer work for Microsoft, I have copied it here in case that blog ever goes away.

This morning I came across an old (June 2007) Excel spreadsheet that I created back when I was working on the Agilent Technologies project. The spreadsheet lists the various placeholder elements in both application.master and default.master for Microsoft Office SharePoint Server (MOSS) 2007.

I put this together back when I was trying to figure out how to create a single master page that could be used for:

  • Site pages (e.g. /Library/default.aspx)
  • System pages (e.g. /Library/Brochures/Forms/AllItems.aspx)
  • Application pages (e.g. /Library/_layouts/viewlsts.aspx)

Rather than make you open a spreadsheet attachment, I'll just copy the contents into a simple table:

MOSS 2007 Master Page Comparison
Placeholder application.master default.master
PlaceHolderPageTitle X X
PlaceHolderAdditionalPageHead X X
PlaceHolderGlobalNavigation X X
PlaceHolderGlobalNavigationSiteMap X X
PlaceHolderSiteName X X
PlaceHolderSearchArea X X
PlaceHolderTopNavBar X X
PlaceHolderHorizontalNav X
WSSDesignConsole X X
SPNavigation X X
PlaceHolderPageImage X X
PlaceHolderTitleLeftBorder X X
PlaceHolderTitleAreaClass X X*
PlaceHolderTitleBreadcrumb X X
PlaceHolderPageTitleInTitleArea X X
PlaceHolderMiniConsole X X
PlaceHolderTitleRightMargin X X
PlaceHolderTitleAreaSeparator X X
PlaceHolderLeftNavBarDataSource X X
PlaceHolderCalendarNavigator X X
PlaceHolderLeftNavBarTop X X
PlaceHolderLeftNavBar X X
PlaceHolderLeftActions X X
PlaceHolderNavSpacer X X
PlaceHolderLeftNavBarBorder X X
PlaceHolderBodyLeftBorder X X
MSO_ContentDiv** X
PlaceHolderBodyAreaClass X X*
PlaceHolderPageDescriptionRowAttr X
PlaceHolderPageDescription X X
PlaceHolderPageDescriptionRowAttr2 X
PlaceHolderMain X X
PlaceHolderBodyRightMargin X X
PlaceHolderFormDigest X X
PlaceHolderUtilityContent X X
* - The placeholder is tacked onto the end of the page
** - <PlaceHolder> element (not <asp:ContentPlaceHolder>)

I found the differences between the two master pages very interesting, as well as the fact that a couple of the placeholders are simply appended to the end of default.master. It made me wonder if the two master pages were originally supposed to remain in-sync (in terms of the number and names of placeholders), but began to diverge as milestones approached and the SharePoint team was pushing to simply get features working rather than strictly adhering to all of the original design goals. [C'mon now, we all know that in the world of software development, sometimes you have to do things that you fully intend to "come back and fix later" but often end up never getting reworked as other, more important, issues arise.]

What I learned from this analysis was that by creating a master page with all of the placeholder elements specified in both application.master and default.master, I would ensure that my custom master page would work for site pages, system pages, and application pages.

I'll cover the topic of using a custom master page for application pages in a separate post.



No comments posted yet.

Add Comment

Optional, but recommended (especially if you have a Gravatar). Note that your email address will not appear with your comment.
If URL is specified, it will be included as a link with your name.

To prevent spam from being submitted, please select the following fruit: Watermelon

Please add 5 and 1 and type the answer here: