Building Websites with Microsoft Content Management Server

By Joel Ward , Lim Mei Ying , Stefan Goßner
  • Instant online access to over 7,500+ books and videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Overview of Microsoft Content Management Server

About this book

Microsoft Content Management Server 2002 is a dynamic web publishing system with which you can build websites quickly and cost-efficiently. MCMS provides the administration, authoring, and data management functionality, and you provide the website interface, logic, and workflow. Once your website is up and running, your content contributors can add and edit content on their own, without the need to work with developers or the IT department.

First time developers of Microsoft Content Management Server 2002 face a relatively steep learning curve. Not only are they expected to be conversant in the Microsoft .NET Framework, they are also required to be familiar with the concepts of MCMS 2002.

Many beginners to MCMS start out by looking at the example site that ships with the product; tweaking it, dissecting it and turning it inside out using the obscure code comments as markers. However, when it comes to starting their own website from scratch, many are baffled - where do they begin?

This book exists to answer that question; teaching the essential concepts of MCMS 2002 in a clear, straightforward and practical manner.

Containing answers to some of the most asked questions in developer newsgroups, this book is a treasure trove of tricks and tips for solving the problems faced by MCMS developers.

This is a unique resource focused exclusively on the needs of developers using MCMS. It doesn?t waste time and pages on user or administrator level information that is well covered in other documentation. It's a distillation of practical experience that developers need to get results, fast. The authors carefully structured example project complements and extends the knowledge gained from an initial look at the examples that ship with MCMS.

Publication date:
January 2005
Publisher
Packt
Pages
660
ISBN
9781904811169

 

Chapter 1. Overview of Microsoft Content Management Server

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.

Why Content Management?

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.

 

Why Content Management?


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 Solution—Content Management Servers


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.

 

The Components of MCMS


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 is a Content Server


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.

How MCMS Renders 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):

http://www.tropicalgreen.net/Templates/Plants.aspx?NRMODE=Published&NRORIGINALURL=%2fTropicalGreen%2fPlantCatalog&NRNODEGUID=%7bA9261BA7-A58B-4760-850D-512CCF77BAC8%7d&NRCACHEHINT=NoModifyGuest

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.

How to Locate the MCMS ISAPI Filters

The filter is installed globally on your MCMS server. To see it:

  1. 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. 2. Right-click on the node representing your server and select Properties from the pop-up menu.

  3. 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.

Security Service

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.

 

MCMS Is a Content Repository


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 Integrates with Visual Studio .NET


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.

.NET Framework

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#.

Integration with other Microsoft Server Products

There are also connectors available for you to integrate MCMS with other Microsoft Server products like Commerce Server and SharePoint Portal Server.

Publishing API

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.

 

MCMS Is a Web Authoring Tool


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

Web Author

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.

Authoring Connector

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.

What Authors can do with MCMS Web Authoring Tools

As a web authoring tool, you will find many basic features embedded within MCMS.

A Rich Editing Experience

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.

Content Scheduling

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.

Content Reuse

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.

Link Management

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.

Publishing Workflow

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.

Versioning

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.

Template-Based Publishing

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.

 

MCMS is a Website Manager


There are several tools available for site administrators to manage MCMS.

Site Manager

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.

Server Configuration Application

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.

Database 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.

MCMS Enables Deployment of Content Across Systems

MCMS provides several means for you to share content with other MCMS systems as well as non-MCMS systems.

Site Deployment

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.

Site Deployment Scripts

You can also write scripts based on the Site Deployment APIs to automate the process of incremental deployments from one MCMS server to another.

Custom Web Services

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

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.

What Microsoft Content Management Server Is Not

Unfortunately, the words "Content Management" have been used by people to mean too many things. We will now clear up some misconceptions by telling you what MCMS is not.

MCMS Is Not a Document Management System

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.

MCMS Is Not a Portal Management System

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.

MCMS Is Not a Team Collaboration Tool

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.

 

MCMS Objects


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

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:

Postings

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

Resource galleries store resources (and other sub-resource galleries). This is the icon that represents a resource gallery:

Resources

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

Template galleries store templates (and other sub-template galleries). In MCMS, they are represented by this icon:

Templates

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:

Roles and Rights Groups

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.

Users

Users are members of rights groups. In MCMS, users are represented by this icon: and groups by this icon:

 

Summary


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.

About the Authors

  • Joel Ward

    Joel Ward works as a web developer and technical manager. Once destined to be an architect, he switched tracks midway through college and instead graduated with a degree in Integrative Arts from the Pennsylvania State University. His professional career has taken him on a journey through design, programming, usability, and accessibility. Joel has worked with MCMS since its first release in 2001. Over the years, he has been recognized as a Microsoft Most Valuable Professional for his work in the MCMS community. Joel lives in the Commonwealth of Virginia in the United States.

    Browse publications by this author
  • Lim Mei Ying

    Lim Mei Ying has extensive experience in designing, implementing and supporting Blue Prism processes as well as setting up a Robotic Operating Model for the enterprise. She has spent many hours figuring out the dos and don'ts of Blue Prism technologies and thrives on the challenge of finding new ways to solve automation problems. Mei Ying lives on the sunny island of Singapore.

    Browse publications by this author
  • Stefan Goßner

    Stefan Goßner works for Microsoft as an Escalation Engineer in the Developer Support department. He provides customers with technical solutions to problems related to Microsoft Internet Server Products. Stefan has breadth and depth in all areas of MCMS.

    His contributions to the newsgroup have helped many people to implement MCMS solutions in corporations around the globe to the point where it has been said that if you don't know Stefan, then you're probably new to MCMS.

    Stefan maintains a huge MCMS 2002 FAQ on the Microsoft Website and provides MCMS tips and tricks on his personal blog: http://blogs.technet.com/stefan_gossner.

    He lives in Munich, Germany.

    Browse publications by this author
Book Title
Unlock this full book FREE 10 day trial
Start Free Trial