Sitecore Idiosyncrasies: Master

This blog post explains multiple uses of the term "master" in the Sitecore ASP.NET web Content Management System (CMS) in an attempt to reduce confusion that could result from that overlap.

ASP.NET provides the concept of master pages to apply a consistent design for multiple URLs on a site without code duplication. While Sitecore supports ASP.NET master pages, the Sitecore rendering engine and its concepts of layouts, layout details, and layout deltas provide a superset of the functionality provided by master pages. In general, Sitecore developers avoid master pages.

Before the advent of ASP.NET master pages, Sitecore named one of its databases Master. The Master database contains all versions of all content, including unpublished content. Publishing transfers publishable versions of publishable items from the Master database to one or more publishing target databases.

Older versions of Sitecore used the Staging module to separate the content management (CM) environment  accessed by CMS users from the Content Delivery (CD) environment accessed by visitors to the published sites. The Staging module referred to the CM environment as a master and the CD environment as a slave. Luckily, Sitecore 6.3 retired the Staging module and this terminology.

Before Sitecore 6, which introduced the concept of standard values, Sitecore used the term master in yet another way. In those versions, a master worked something like a constructor for new items. Masters were predefined items or branches of items that you could assign in insert options to provide prototypes for new items and hierarchies of items, to define initial values for new items, and to control the types of items that users could create beneath existing items. Standard values, command templates, and branch templates introduced in Sitecore 6 eliminated the need for this concept of masters, though you can still find the term masters in specific APIs (Application Programming Interfaces) and occasionally even user interfaces.

If you have any additional information about these issues or usage of the term "master" in Sitecore, please comment on this blog post.