In talking to various people over the course of the last few months, I’ve found that there is a bit of a disconnect with some of the names and terms surrounding Web Content Management (WCM) in MOSS 2007. This post is an effort to try to clear it up a bit and explain how it fits into MOSS at the same time.
This is the free version of SharePoint that gives you the core SharePoint functionality: sites, lists, document libraries, workflow (via Windows Workflow), alerts, Web Parts (via ASP.NET 2.0), simple search, etc.
This is the non-free version of SharePoint that includes things like Forms Services (web enabled InfoPath), Excel Services (server-based spreadsheets), robust searching, and Enterprise Content Management (ECM). Some of these things depend on which license you purchase, but that’s a bit beyond the scope of this post. So far Microsoft has said that WCM will be included in the Core CAL.
ECM is a part of MOSS 2007 and it includes things like Records Management (RM), Document Management (DM), Policy & Compliance, and Web Content Management (WCM).
WCM is the label commonly used to collectively refer to the functionality that replaces the previous product, Microsoft Content Management Server 2002, that was used to facilitate content-centric Web sites (Internet/intranet/extranet). A significant part of this functionality is wrapped up in to the Publishing Feature (click here for more information on what a SharePoint Feature is, explained by my good friend Ted Pattison … a new concept in WSS v3).
The Publishing Feature is scoped at a site collection level. This means if you have a top-level WSS site that includes any number of subsites (and optionally subsites within them), when you activate the Publishing Feature in any of the sites within this site collection, it will now be available to all sites within that site collection. Once a site (or site collection) has had the Publishing Feature activated, this site is now referred to as a “Publishing Site.” You may have seen many people refer to them as “WCM sites” (I’ve done it many times in the past), but I understand the correct way is to refer to them as “Publishing Sites.”
The Publishing Feature (which is actually not just one Feature, but a collection of a handful of Features, you’re just activating a Feature that depends on the activation of a bunch of other Features, which will automatically be activated when it’s activated) includes things such as a new content type, master pages, page layouts, site definition and other cool things.
A page layout can be thought of as a template for content pages. When combined with a mater page, it defines the layout and branding of a content page. Page designers and developers add field controls, Web Part Zones and Web Parts to a page essentially carving out places on a page that can contain dynamic content (entered by content owners/authors). I’ll assume you know what a Web Part is… a Web Part in a Publishing site is no different from a Web Part added to any other type of SharePoint site.
When a page is created, it must be associated with exactly one page layout (which can be changed later). The page contains the actual data/content in the page. When a page is requested, SharePoint combines the master page & page layout to form the layout, then pulls the content from the page and injects it into the layout. That isn’t exactly what happens, it is more of a very high level view of what’s going on.
For those who are familiar with MCMS, a page layout is very similar to a template ASPX file.
Field controls are added to page layouts by designers & developers to mark specific places where content owners & authors can manage content. Developers can specify different attributes and rules on field controls controlling the content they can accept. For example, you can say no images are allowed in a typical HTML field control.
How is a field control different from a Web Part? Field controls can’t be moved around or added/removed from a page layout by content owners & authors, only by developers. This allows you to enforce specific rules on page layouts, such as the type of content that can be added to a page and permitted formatting in a field control. Web Parts on the other hand can be managed by content owners & administrators as they can be added/removed to the provided Web Part Zones on a page layout.
Another very significant difference is the content in a Web Part is not versioned while the content if a field control is versioned.
For those who are familiar with MCMS, a field control is very similar to a placeholder control you’d add to a template ASPX file.