When Microsoft Content Management Server (CMS) was envisioned, it was designed to do something that was not popular. At that time, most people felt that dynamically assembling Web pages was not a good strategy especially on a public-facing Web site. The main reason for this was the potential performance implication. Sites that consisted of static pages did not have to spend server resources generating HTML. But this is precisely what CMS was designed to do. Today it is clear that this practice has become extremely popular. Many sites are moving toward serving up pages of dynamic content. People expect personalized sites that offer them real-time information. They expect dynamic Web sites. Technologies such as CMS make this possible.
Furthermore, the design of CMS exposes traditionally static concepts as programmable objects. For example, CMS developers can programmatically access properties of a CMS page. This enables them to build content-centric applications on top of CMS.
In this chapter, we will discuss the architecture of CMS. Although the discussion might be a bit "low level," knowing how a program is put together will help you take full advantage of its potential.