You probably already have a live website running, or at least, are planning to start one. Take this simple test to find if your website would benefit from a content management tool:
Would you like your website to have a consistent look and feel throughout?
Would you benefit from being able to apply a new look and feel to the website without reloading all of your information?
Do you wish you could share content across pages without duplicating it all over the place?
Do you want to avoid getting feedback from users about incorrect information posted online?
Would you like to be able to pull out all pages that meet certain criteria, such as being newly created in the last 10 days?
Would you like to give your content authors a simple, user-friendly interface to create web content with?
Do you need to find out exactly where in the publishing process a page could be at any point in time?
If you answered 'yes' to any of the above questions, your website could benefit from a content management application. Microsoft Content Management Server is one of the most comprehensive applications on the market providing you with a ready-to-use publishing solution.
Like many packaged solutions, MCMS has been marketed to various organizations in different ways giving you different ideas about how this product could fit into your organization. If you are evaluating the software, you may be required to provide an analysis of what the product can and cannot do. And if you have already purchased it, your boss is likely to ask you to provide solutions to real problems, and fast. Before you begin, it's important that you get a good idea of what MCMS really is.
In this chapter, we provide you with a quick overview of what MCMS is all about. We also explain some core concepts behind the inner workings of the Server. In the coming chapters, we will examine how MCMS works in greater detail.
The dot-com boom years saw many companies creating a presence on the Internet. Product brochures, company profiles, quarterly reports, and organizational charts found their way from filing cabinets and wall charts to web pages.
Who did all that work? A team of technical people in every organization was responsible for cranking out web pages as fast as their fingers could type and they gained the name of webmasters. It was a job that was popular when the Internet started. Webmasters were the resident gurus in hacking out scripts and HTML: in fact these skills are often prerequisites for the position.
As websites grew in importance and size, it came to the point where a single webmaster (or even a team of webmasters) was not able to cope with the large volume of information that needed to make its way online.
Content started to become unmanageable. While a single team of webmasters could manage the website in its infant stages, it was clear that either processes had to be changed or super-webmasters would have to be recruited to keep the site going as it grew.
Frustrated with being at the mercy of overworked webmasters, some content providers or authors took up the task of trying to publish their own content online. Without a proper content management system, this usually meant that authors had to take on the role of the webmaster and learn the dark art of web publishing. They went through boot camps that taught them how to use various web editing tools. Most authors did not have programming backgrounds. It was often a hair-tearing, time-consuming and difficult process.
The dot-com boom years saw many companies creating a presence on the Internet. Product brochures, company profiles, quarterly reports, and organizational charts found their way from filing cabinets and wall charts to web pages.
Who did all that work? A team of technical people in every organization was responsible for cranking out web pages as fast as their fingers could type and they gained the name of webmasters. It was a job that was popular when the Internet started. Webmasters were the resident gurus in hacking out scripts and HTML: in fact these skills are often prerequisites for the position.
As websites grew in importance and size, it came to the point where a single webmaster (or even a team of webmasters) was not able to cope with the large volume of information that needed to make its way online.
Content started to become unmanageable. While a single team of webmasters could manage the website in its infant stages, it was clear that either processes had to be changed or super-webmasters would have to be recruited to keep the site going as it grew.
Frustrated with being at the mercy of overworked webmasters, some content providers or authors took up the task of trying to publish their own content online. Without a proper content management system, this usually meant that authors had to take on the role of the webmaster and learn the dark art of web publishing. They went through boot camps that taught them how to use various web editing tools. Most authors did not have programming backgrounds. It was often a hair-tearing, time-consuming and difficult process.
An emerging technology that has gained popularity in recent years is that of content management systems (CMS). They come in many flavors and designs, the most common of which are web content management systems, designed to manage the process of uploading content from the desktop to the website.
Microsoft Content Management Server 2002 is one such solution.
It is a solution that can help you with almost all aspects of content management, from template development, content authoring, site management, and deployment, to data storage and retrieval. MCMS can efficiently handle the smallest of websites with tens of pages to large enterprise solutions that contain hundreds of thousands of pages. It also offers tight integration with Microsoft's suite of products including its ubiquitous word processor, Microsoft Word.
Microsoft Content Management Server 2002 runs on the Windows platform (Windows 2000 Professional, Windows 2000 Server, Windows XP, and Windows Server 2003). It makes use of Internet Information Services (IIS) to deliver dynamic web pages and Microsoft SQL Server 2000 as its content repository.
Authoring is performed using either the browser-based component (Web Author), or Microsoft Word (when installed with Authoring Connector).
Developers use Visual Studio .NET to develop ASP.NET template files, a special kind of web form that defines the layout and behavior of each dynamically generated web page. Templates in the content repository are managed using MCMS Template Explorer, an add-on within Visual Studio .NET. The MCMS Publishing Application Programming Interface (API) is used for retrieving and updating content in the repository.
Several administrative interfaces are provided for managing the site structure and global settings: Site Manager, Database Configuration Application, and the Server Configuration Application.
Content is transported from one server to another using the Site Deployment Manager, and custom scripts are built using the Site Deployment API. Site Stager can be used to generate a static image of an ASP-based MCMS website (but does not work with ASP.NET-based MCMS sites).
The following diagram shows the architecture and how the components connect with each other. The subsections that follow briefly describe what each module does.
![]() |
MCMS uses Internet Information Services (IIS) to serve MCMS-driven websites. IIS is the engine that receives and processes HTTP requests from clients: MCMS does not get involved with any of that. It does, however, have a part to play in how content is transformed from data in the backend database to HTML pages—called postings in MCMS—for the browser.
To understand this better, let's follow the path of a single HTTP request and see how IIS and MCMS work together to render content.
When visitors to your site request a page, they send its URL to the web server. For example, this could be: http://www.TropicalGreen.net/PlantCatalog/hibiscus.htm. The HTTP request is first received by IIS.
MCMS has two ISAPI filters, which are then applied:
Resolution HTML Packager (
REHTMLPackager.dll
) is the first filter to intercept requests. It ensures that client-side scripts are handled correctly when a user wishes to compare two different versions of a single posting. It does this by injecting a JavaScript routine on the fly, modifying the output of the page doing the comparison.MCMS ISAPI Filter (
ReAuthFilt.dll
) checks the incoming URL against the MCMS repository to see if the request is for an MCMS object. Non-CMS objects are handled by IIS just as they would be without MCMS.
Should the MCMS ISAPI Filter find that the request is for an MCMS object, it proceeds to check to see if the user requesting the object has rights to it. If so, it transforms the incoming URL. The transformed URL contains information that maps to an object in the MCMS database and takes this form (for clarity, this URL has been split onto multiple lines):
It's not a pretty URL but it conveys a lot of information. The request is then passed to IIS and ASP.NET to process the web form, which in the above case is Plants.aspx
. The MCMS HTTP modules (registered in the web application's web.config
file) query the database for an object with a key that matches the value in the NRNODEGUID
(the unique identifier or GUID), NRMODE
, NRORIGINALURL
, and NRCACHEHINT
parameters and create a so-called CmsHttpContext
giving the code in the web form access to the associated repository items. The form will render the content according to these repository items.
With these instructions, control is passed over to IIS. IIS sends the response back to the browser that made the request. All these processes are carried out transparently. The visitor to the website would not be aware that any URL transformation has taken place.
![]() |
And that is how MCMS delivers pages.
Naturally, MCMS makes use of caching—an important concept that is used to boost its performance by minimizing database queries. For a more detailed explanation on how MCMS processes requests with caching, read Chapter 22.
The filter is installed globally on your MCMS server. To see it:
1. Select
Start | Administrative Tools | Internet Services Manager
(If this does not appear, you may need to turn on this option in your Start Menu options, or you can access the Administrative Tools through the Control Panel.)2. Right-click on the node representing your server and select
Properties
from the pop-up menu.3. In the properties dialog, select the
ISAPI Filters
tab. You should see a dialog similar to the following screenshot.
![]() |
Note
I can't find the filter in the ISAPI Filter section
You have to install MCMS first (see Chapter 2). The filters are applied on a global level (on your web server). Check that you are looking at the properties of the server (represented by the icon of a computer:
) and not the individual website.
Not everyone should be given access to author the website or view confidential information. MCMS provides security checks through the Security service (see Chapter 10 for a detailed discussion of security).
A service named AESecurityService
runs on all servers loaded with MCMS. The AESecurityService
ensures that authentication is working correctly. When it is stopped, it is not possible to author your website as the web authoring tool will not be displayed. It is also responsible for maintaining the disk cache. If you stop the service, the disk cache is cleared.
You can see the presence of the AESecurityService
by selecting Start | Administrative Tools | Services
(or by going to the Control Panel). By default, it is configured to start automatically when Windows loads.
As we've said, MCMS connects to a backend SQL Server 2000 database. All MCMS objects—such as content entered by authors—are stored in this database.
One of the greatest sources of confusion for developers is that web pages rendered by MCMS do not have a "physical" form. If you search your server's hard drive for the about+us.htm
file or the summary.htm
in the WoodgroveNet sample site that ships with the CD (or can be downloaded from the Microsoft website at www.microsoft.com/cmserver), you won't find any.
The reason is because the pages are not stored in the file system. Chunks of information are stored in the content repository (namely SQL Server database) instead. They are assembled on the fly when requested, based on the logic coded by developers using the template files discussed in the earlier section How MCMS Renders Content.
Template files are a special kind of a web form. They are stored in the file system and contain the logic that governs the look and feel of the pages and how they behave. As a developer, you will work with template files to write all code-behind scripts and HTML. We discuss template files in Chapter 6.
MCMS provides native support for Visual Studio .NET. It's the preferred tool for developers to construct the template files necessary for creating websites built with MCMS.
We will be assuming that you are working with Visual Studio .NET throughout the book. While it is technically possible to use other development environments to create the code and template files, you will not benefit from several conveniences that result from the integration of MCMS and Visual Studio .NET, such as integration with the MCMS Template Explorer.
It's easy to find developers who can work with MCMS because it supports the popular Microsoft .NET framework, and you can develop websites using either C# or VB.NET. In this book, we present all code samples in C#.
There are also connectors available for you to integrate MCMS with other Microsoft Server products like Commerce Server and SharePoint Portal Server.
Microsoft does not recommend direct updates to the MCMS database: documentation on how the database is updated is not even available. You should not attempt to do this yourself as doing so may cause your system to become unusable.
Instead, Microsoft has provided a set of library files, known as the Publishing Application Programming Interface (PAPI). This provides a safe and structured way to retrieve, update, and delete the contents of the database.
As a developer, you may have a natural inclination towards working with the database directly by writing Transact-SQL scripts to do additions, updates, and deletions. You may find that working with the MCMS PAPI requires some getting used to. However, because the PAPI contains pre-packaged code, you would not need to write much of the code yourself, saving you valuable time. All you need to do is to call the appropriate functions when and where you need them.
The same PAPI is used internally within the MCMS Web Author application.
There are two versions of the PAPI shipped with MCMS 2002:
The managed .NET framework version
The unmanaged COM version
The COM version exists mainly for backward compatibility and works primarily with ASP-based template files. You will use this set of library files if you work with templates that were migrated from an existing MCMS 2001 website. When starting a website from scratch, it is highly recommended to develop with the ASP.NET version of the API. Not only does it provide better performance, it offers many new features that are not available with the COM version. In addition it is most likely that Microsoft will remove the COM-based API from the next version of MCMS. So to ensure compatibility with future versions, you should use the managed PAPI rather then the COM-based PAPI.
The PAPI is one of the central features of MCMS. We will make use of it extensively throughout the book.
There are several ways authors can get their content from the desktop to the Web. They can enter content through:
A web browser using the Web Author
Microsoft Word with Authoring Connector
MCMS provides data-entry components that have rich editing capabilities. These run on web pages, so all authoring can be done through the browser. There is no need to learn other web editing tools. In fact, it allows authors to copy and paste pre-formatted text as well as drag and drop attachments.
Business users are in total control over when and where the content is updated on the website. At the click of the Approve
button, the material is made available online in real time—bypassing the need to have the material sent to a webmaster.
User-friendly web content management systems do not require authors to know any scripting languages. Microsoft Content Management Server goes the extra length to ensure tight integration with Microsoft Word. Authors don't have to leave the authoring environment they are already comfortable with, doing everything from the familiar Word interface, and with a few clicks of the mouse, their material can be published online.
As a web authoring tool, you will find many basic features embedded within MCMS.
Authors can write into rich text boxes and format text directly from Web Author. They can use familiar functions like applying bold, underline, and italics to selected text.
It is possible to schedule when pages should be made live or expired. A publish date could be scheduled such that the information is uploaded to the system but made available only at midnight. Similarly, expiry dates may be set to remove the content at a specified time. This automation makes things really convenient for authors who would otherwise have to add or remove the content manually at the appropriate times.
Reusing content in multiple places on the website is easy, and avoids having to maintain separate versions and the consequent need to manually copy from one page to another.
Links that reference expired or deleted pages are immediately removed. Say goodbye to broken links on your websites. Of course, only links that point to MCMS objects are managed.
The product provides an integrated workflow solution that can be used to ensure the accuracy and integrity of the content that gets posted online.
The workflow is completely extensible. In Chapter 16 we show you how it can be customized to follow almost any business process in the organization.
In real websites, content may change frequently. MCMS tracks changes to content by keeping each copy as a separate version. You can query the system to find out how the web page appeared on the live site at particular date and time. You can also compare two versions of a page to see what portions have been added or deleted since the last change.
Templates govern the look and feel of web pages and define their behavior. The use of templates drives the process of creating content to the business users. Webmasters are no longer needed to handcraft web pages one at a time. Business users enter content within specified text boxes, click the Save
button and a web page is automatically created based on the selected template.
There are several tools available for site administrators to manage MCMS.
Once called Site Builder back in MCMS 2001, this was renamed to Site Manager in MCMS 2002 to better reflect what it does in the new version. Site Manager is the tool that enables Site Administrators and Channel Managers to work with container objects in MCMS. However, it does not allow the addition or editing of content: that is the job of the Web Author.
We explore the Server Configuration Application in Chapter 4. There are some global settings that are applied to MCMS that can be configured using the Server Configuration Application.
This is the tool that links an MCMS Server to a SQL Server 2000 database. Although you can only have one database behind each MCMS Server, you can switch from one database to another using the Database Configuration Application. Chapter 3 provides a detailed discussion of the Database Configuration Application.
The MCMS Site Deployment Manager, part of the Site Manager application, packages selected objects in an MCMS site into distributable object files. This way, you can transport an entire MCMS site (or a selected portion of it) from one MCMS server to another.
You can also write scripts based on the Site Deployment APIs to automate the process of incremental deployments from one MCMS server to another.
There are many occasions where you may want to extract content and use it in applications outside MCMS. With ASP.NET being the preferred development platform, developers can create web services based on the Publishing API. Web services are excellent tools for use in syndicating content across systems.
Web services can also be used as a means for external applications to interact with content stored in the content repository. For example, a billing application can trigger the creation of postings through a web service.
Site Stager takes a snapshot of the pages of your website and creates static images of them. It is useful for creating offline versions of ASP-based sites.
Document Management Systems focus on individual files. You upload documents to a website, check them out when you need to work with them and check them back in when you are done.
MCMS's focus is on the entire web page, not the individual files. Here, documents are called attachments or resources and you manage the web page in its entirety. For example, when a web page is approved, all attachments within it are collectively approved at the same time.
Portals are made up of portlets or mini-pages that provide information drawn from a wide variety of applications or other websites. They typically provide users with the ability to manage what they see on their portal. Users drag and drop portlets into neat little columns and subscribe to their content. An example of a popular portal is My Yahoo!
MCMS does not provide portal management features. You won't find out of the box solutions for personalization and membership. However, these features can be added with other Microsoft software like Commerce Server or Sharepoint Portal Services that offer integration with MCMS.
If you are looking for solutions with team calendaring, discussion forums, or list-bots, this solution may not be the one for you. While you could fashion templates to deliver these features, there aren't any immediate out of the box solutions that will do this.
Microsoft Content Management Server really is a great tool for managing web pages and content. Over the course of the rest of this book, we demonstrate how to use MCMS to solve today's typical content-management problem scenarios.
Throughout the book, we will be using several key terms describing the various data objects employed by MCMS. They can be broadly classified under two categories:
Containers for holding logical groupings of objects
Objects, which can be postings (pages), page resources, templates, and even users
The diagram below shows the relationship between containers and objects.
Channels are like folders in Windows Explorer. They organize postings and other sub-channels in very much the same way files are organized in folders. Usually, the channel hierarchy determines the URL of the web page, but we will find out about exceptions to this in Chapter 5.
In MCMS, channels are represented by this icon:
In MCMS, a posting is a web page, but not your traditional web page of course. Postings are assembled on the fly by piecing together data stored in the database and the template file.
Postings are represented by this icon:
Resource galleries store resources (and other sub-resource galleries). This is the icon that represents a resource gallery:
Resources are objects that are inserted into a posting. These can be anything from images or Word documents to plain text documents. MCMS stores resources as BLOBs in the content repository.
MCMS does not have a particular icon for resources. The icon used to represent a resource depends on its file type.
Template galleries store templates (and other sub-template galleries). In MCMS, they are represented by this icon:
Templates shape the content stored in the content management system and are used by authors to generate postings (web pages) that have the same form and shape. In MCMS, they are represented by this icon:
Rights groups are logical groupings of users. In MCMS, there are eight different types of rights groups, each corresponding to one of the following roles: administrators, channel managers, template designers, resource managers, moderators, editors, authors, and subscribers. Unlike other container type objects, rights groups can't be nested. You can, however, assign both NT/Active Directory (AD) users and NT/AD groups to a rights group.
This chapter has worked through the basic concepts behind MCMS 2002. We've seen that MCMS is made up of a content server, uses SQL Server 2000 as a content repository, and has modules that provide integration with Visual Studio .NET. For authors, it provides both a browser interface and integration with Word for a user-friendly authoring experience. In addition, it has website management capabilities.
Next, we discussed the main objects in MCMS: channels, postings, resource galleries, resources, template galleries, templates, rights groups, and users.
Throughout the course of the book, you will find that despite the large number of modules that make up the product, MCMS is really very easy to use. You will use the knowledge you gain from the book in virtually every MCMS project that you work on.
Now that we have covered the basic concepts, we are ready to move on and lay the foundations for the TropicalGreen website that we will build in the remaining chapters of the book.