You are previewing Microsoft Content Management Server.
O'Reilly logo
Microsoft Content Management Server

Book Description

A fast-paced and practical tutorial guide for C# developers starting out with MCMS 2002

  • Learn directly from recognized community experts

  • Rapid developer level tutorials build logically through out the book

  • Develops a feature rich custom site incrementally

  • Tips and Tricks from developer newsgroups and online communities

  • In Detail 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. What you will learn from this book?
  • The basic concepts of MCMS

  • Preparing, installing and configuring MCMS and its supporting technologies

  • Creating an MCMS website from scratch

  • Creating and debugging templates files and channel rendering scripts

  • Working with dynamic navigation

  • Establishing user roles and rights

  • Authoring with MCMS and improving the authoring experience

  • Understanding and customizing workflow

  • Working with the Publishing API

  • Site deployment techniques

  • Enhancing your site's performance with caching

  • Approach Years of active participation in MCMS newsgroups and mailing lists mean that the authors? hard-won experience puts them in the ideal position to tell you what you really need to know to master the system.

    An example site is developed throughout the book, at every point providing clear and practical demonstrations of the relevant ideas. Once you have mastered the basics, the book leads you onto more advanced and powerful techniques, allowing you to get the most from this awesome system. Who this book is written for? This book is written for developers who are part of a dynamic organization that has decided to evaluate or deploy MCMS and require the skills to make it happen.The book presumes a working knowledge of the .NET Framework and familiarity with the C# language, but no prior knowledge of MCMS is required. To use this book, you will need access to Visual Studio. NET 2002 or 2003, SQL Server 2000, and an installation of MCMS 2002.

    This book is not aimed at the specific information needs of administrators or users of MCMS.

    Table of Contents

    1. Copyright
    2. Credits
    3. About the Authors
      1. Shared Acknowledgements
    4. Introduction
      1. What This Book Covers
      2. What You Need for Using This Book
      3. Conventions
      4. Reader Feedback
      5. Customer Support
        1. Downloading the Example Code for the Book
        2. Errata
        3. Questions
    5. 1. Overview of Microsoft Content Management Server
      1. Why Content Management?
      2. The Solution—Content Management Servers
      3. The Components of MCMS
      4. MCMS is a Content Server
        1. How MCMS Renders Content
        2. How to Locate the MCMS ISAPI Filters
        3. Security Service
      5. MCMS Is a Content Repository
      6. MCMS Integrates with Visual Studio .NET
        1. .NET Framework
        2. Integration with other Microsoft Server Products
        3. Publishing API
      7. MCMS Is a Web Authoring Tool
        1. Web Author
        2. Authoring Connector
        3. What Authors can do with MCMS Web Authoring Tools
          1. A Rich Editing Experience
          2. Content Scheduling
          3. Content Reuse
          4. Link Management
          5. Publishing Workflow
          6. Versioning
          7. Template-Based Publishing
      8. MCMS is a Website Manager
        1. Site Manager
        2. Server Configuration Application
        3. Database Configuration Application
          1. MCMS Enables Deployment of Content Across Systems
        4. Site Deployment
        5. Site Deployment Scripts
        6. Custom Web Services
        7. Site Stager
          1. What Microsoft Content Management Server Is Not
        8. MCMS Is Not a Document Management System
        9. MCMS Is Not a Portal Management System
        10. MCMS Is Not a Team Collaboration Tool
      9. MCMS Objects
        1. Channels
        2. Postings
        3. Resource Galleries
        4. Resources
        5. Template Galleries
        6. Templates
        7. Roles and Rights Groups
        8. Users
      10. Summary
    6. 2. Installing Microsoft Content Management Server 2002 for the Developer
      1. Pre-Installation Checklist for the Developer
        1. Ensuring that the Computer Meets the Minimum Hardware Requirements
        2. Running Windows Update
        3. Configuring Internet Information Services (IIS)
          1. Computers Running Windows 2000 (all editions) or Windows XP Professional
          2. Computers Running Windows Server 2003
        4. Ensuring that Internet Explorer is Version 6.0 or Above
        5. Installing Microsoft Visual Studio .NET 2002 or 2003
          1. Applying the Latest Service Pack for .NET Framework 1.0
          2. Installing Visual Source Safe
        6. Installing Microsoft SQL Server 2000
          1. Applying the Latest Service Pack for SQL 2000
        7. Deciding on an MCMS System Account
        8. Creating the MCMS Database in SQL Server 2000
          1. Assigning Users and Specifying Role Membership to the MCMS Database
        9. Creating the MCMS Web and Server Configuration Application Entry Points (Windows 2000 Server and Windows Server 2003 only)
          1. Virtual Site for Hosting MCMS Managed Websites
          2. Virtual Site for Hosting the Server Configuration Application
          3. Additional Security Measures for SCA
        10. Installing Internet Explorer Web Controls
        11. Installing the Visual J# Redistributable
        12. Setting the Maximum Size for Uploaded Resources and Site Deployment (Windows Server 2003 only)
        13. Ensuring that the Account Running the ASP.NET Process has Impersonation Privileges
        14. Considerations for Windows XP with Service Pack 2
      2. Installing Microsoft Content Management Server 2002 with SP1a
      3. Installing from the Released To Manufacturing version of MCMS
        1. Applying SP1a on the RTM version of MCMS
          1. Installing Site Manager and Developer Tools with Sp1a
      4. What has been Installed on My Computer?
        1. New Additions to the Start Menu
        2. Additional Items in the File System
        3. New Service Available
        4. New Keys in the System Registry
      5. Frequently Asked Questions
        1. Summary
    7. 3. The Database Configuration Application
      1. The DCA Links MCMS Server to the Database
      2. The DCA Toggles between Databases
      3. Running the DCA for the First Time
        1. Final Steps
      4. Connecting to an Existing MCMS Database
      5. DCA—Behind the Scenes
        1. New Virtual Directories in Internet Service Manager
        2. Additional Database Tables
        3. Additional Stored Procedures
        4. Background Processing
        5. Additional Keys in the Registry
        6. Addition to the Start Menu
      6. Summary
    8. 4. The Server Configuration Application
      1. Starting the SCA
      2. Launching SCA from a Remote Machine
      3. About the MCMS Host, Version, and Database
        1. MCMS Host
        2. MCMS Version
        3. MCMS Database
      4. General Settings
        1. URL Format
          1. Hierarchical URLs
          2. Unique ID-Based URLs
          3. Configuring the URL Format
        2. Map Channel Names to Host Header Names
      5. Cache Settings
        1. Configuring Cache Settings
          1. Local Disk Cache Location
          2. Maximum Disk Cache Size
          3. Maximum Nodes in Memory Cache
          4. Clear Memory Cache
      6. Web Settings
      7. Access Settings
        1. Modifying the List of Domains
        2. Security Settings
        3. MCMS System Account
          1. Configuring the System Account
          2. When the Password of the System Account Changes
          3. Configuring Guest Access
          4. Web Browser Cookie Settings
          5. Cookie Lifetime
          6. Cookie Validation by Machine IP
      8. License Settings
      9. Summary
    9. 5. Setting Up a Website from Scratch
      1. Laying the Foundations
      2. Designing and Building the Channel Structure
        1. Channel Naming Guidelines
        2. It's All for Display
        3. The Channel Structure
          1. Building Channels with Site Manager
      3. Designing and Building the Template and Resource Gallery Structure
        1. Designing the Gallery Structure for Authors
          1. Organizing by Website Structure
          2. Organizing by Functional Areas
        2. Building Template Galleries with Site Manager
        3. Building Resource Galleries with Site Manager
        4. Creating the TropicalGreen Project in Visual Studio .NET
          1. Using Visual Studio .NET to Create the TropicalGreen Project
          2. Creating Folders for Template Files and Stylesheets in the TropicalGreen Project
        5. What the MCMS Project Creation Wizard Does
          1. Adds References to MCMS Libraries
          2. Adds References to Assemblies and HttpModules in the Web.config File
          3. Creates a Default Console for your Templates
          4. Creates a Link to the CMS Virtual Directory
        6. Setting the Authentication Mode
          1. Configuring Internet Information Services for Integrated Windows Authentication
          2. Verify Settings in the Web.Config File
        7. Setting up a Multi-Developer Environment
          1. Ensure that DCA Points to the Common Development Database
          2. Add the Existing Project to Visual Source Safe
          3. Opening a Source-Controlled Project for the First Time
      4. Summary
    10. 6. Creating Templates and Postings
      1. Something About Templates
        1. MCMS Template Files
        2. Template Gallery Items
      2. Before We Begin
      3. Creating the Plant Template File
      4. Editing the Template File
        1. Adding the Default Console
      5. Creating a Template Gallery Item
        1. Viewing the MCMS Template Explorer
        2. Creating the Plant Template Gallery Item
        3. Linking the Template Gallery Item to the ASPX Template
        4. Saving the Template Gallery Item
        5. Checking In the Template Gallery Item
      6. Creating the First Posting
        1. Opening the Built-In Channel Rendering Script
        2. Creating a New Page
      7. The Difference between a Template File and a Regular ASP.NET Web Form
      8. Summary
    11. 7. Working with Placeholders
      1. Using Placeholders
        1. Placeholder Controls
        2. Placeholder Definitions
        3. Placeholder Objects
      2. Before We Begin
      3. Drafting the Prototype
      4. HtmlPlaceholder
        1. Adding an HtmlPlaceholderDefinition
        2. Properties of the HtmlPlaceholderDefinition
          1. Icons Used to Represent Attachments
          2. Formatting Content
        3. HtmlPlaceholderControls
        4. Adding an HtmlPlaceholderControl
        5. Linking the Placeholder Control to the Placeholder Definition
        6. Properties of an HtmlPlaceholderControl
          1. Properties Common Across all Placeholder Controls
          2. Properties Unique to the HtmlPlaceholderControl
      5. AttachmentPlaceholder
        1. Adding an AttachmentPlaceholderDefinition to the Template
        2. AttachmentPlaceholderDefinition Properties
        3. SingleAttachmentPlaceholderControl
        4. Adding a SingleAttachmentPlaceholderControl
      6. ImagePlaceholders
        1. Adding an ImagePlaceholderDefinition to the Template
        2. ImagePlaceholderDefinition Properties
        3. SingleImagePlaceholderControl
        4. Adding a SingleImagePlaceholderControl
        5. SingleImagePlaceholderControl Properties
      7. The Completed Page
      8. Linking a Stylesheet to the Template File
      9. Summary
    12. 8. Debugging Template Files
      1. Before We Begin
      2. Enable Debugging on the TropicalGreen Project
      3. Debugging the Template File: The Wrong Way
        1. Attempting to Test the Plant.aspx Template File: The Wrong Way
      4. Debugging the Template File: The Correct Way
        1. Debugging with a Debug Start Page
          1. Creating the Debug Page
          2. Debugging the Plant Template using the Debug Start Page
          3. Starting the Debugger
          4. Stopping the Debugger
      5. Debugging by Starting from a URL
        1. Debugging by Attaching the Debugger to the ASP.NET Worker Process
          1. Attaching the Debugger
          2. Debugging the Template File
          3. Stopping the Debugger
      6. Solving the Problem
      7. Removing Breakpoints
      8. Summary
    13. 9. Default Postings and Channel Rendering Scripts
      1. Default Postings
        1. Using Site Manager to Assign the Default Posting Name
        2. When There Are No Postings in the Channel with the Default Posting's Name
        3. When More Than One Posting Has the Default Posting's Name
        4. Coding the Summary Page
          1. The PlantCatalog_Summary Template File
          2. The PlantCatalogHome Template Object
          3. The Summary Posting
          4. Viewing the Summary Posting
      2. Channel Rendering Scripts
        1. Creating a Channel Rendering Script
          1. Using Site Manager to Assign the Channel Rendering Script to the Channel
          2. Valid Script URLs
        2. Testing the Channel Rendering Script
        3. When a Channel Rendering Script Meets a Default Posting
        4. Channel Rendering Scripts are used to 'Frame' a Page
          1. Writing a Channel Rendering Script for a Framed Site
          2. The Banner Page
          3. The Right Menu Page
          4. The Page that Defines the Framesets
          5. Setting the Default Posting and Script Url Properties
          6. Viewing the Framed Page
          7. Using Channel Script with Pages
      3. Navigation URL
      4. Wrapping up the Summary Page
      5. Tips and Tricks
      6. Summary
    14. 10. Understanding the MCMS Publishing Workflow
      1. The Eight User Roles in MCMS
      2. Rights Groups Organize Users
      3. Rights Groups are Assigned to Containers
      4. The Complete Publishing Workflow when a Posting is Created
      5. Before We Begin
        1. Creating Local Accounts for TropicalGreen Users
        2. Setting up the Environment for Testing
      6. Creating Rights Groups
      7. Assigning Users to Rights Groups
      8. Assigning Rights Groups to Containers
        1. Method 1: The Properties Dialog of the Selected Container
        2. Method 2: The Groups Rights Tab
      9. An Authors-Only Workflow
        1. Log in as Author1
        2. Edit the Hibiscus Posting as Author1
        3. Authors Can Only Edit Postings They Own
          1. Attempting to Edit a Locked Posting
          2. Unlocking a Posting
        4. Submitting a Posting
      10. An Author-Editor Workflow
        1. Assign Editors to the PlantCatalog Channel
        2. Author Submits a Posting to the Editor
        3. What Editors See in the Web Author Console
        4. Editor Declines Posting
        5. Editor Approves Posting
        6. Editor Edits Posting
        7. Editor Submits Posting
        8. Editors Do Not Get Triggered When Authors Change the Properties of a Posting
      11. An Author-Editor-Moderator Workflow
        1. Moderators Approve Changes to Posting Properties, not Content
        2. Assign Moderators to the PlantCatalog Channel
        3. Author Submits a Posting
        4. Editor Approves a Posting
        5. What Moderators See in the Web Author Console
        6. Moderator Declines Posting
        7. Moderator Approves Posting
          1. Moderator Edits Posting
        8. Moderator Submits Posting
          1. When the Workflow Skips Moderators
          2. When the Workflow Skips Editors
      12. Deleting Postings
      13. One Last Thing
      14. Summary
    15. 11. Authoring with Microsoft Content Management Server
      1. How Users Edit Postings
      2. The Default Web Author Console
        1. Investigating the Web Author Console
          1. Switching To Edit Site
          2. Switch to Live Site
          3. Page Status
          4. Lock Status
          5. Production Manager
          6. Approval Assistant
          7. Resource Manager
          8. Preview
          9. Create New Page
          10. Create Connected Page
          11. Edit
          12. Delete, Move, Copy
          13. Page Properties
          14. Revision History
          15. View Revisions by Date
          16. Channel Properties
      3. Editing the Hibiscus Posting
        1. Start Editing
        2. Adding HTML Content
          1. Inserting Tables
          2. Editing Hyperlinks
          3. Mapping the Buttons on the Authoring Toolbar to the HTML Placeholder Definition Properties
        3. Adding Pictures
        4. Adding Attachments
      4. Publishing the Changed Posting
      5. Creating a New Plant Posting
      6. Managing Workflow
        1. Using the Production Manager
        2. Using the Approval Assistant
      7. Revisions
        1. Using the Revision History
        2. Viewing Revisions by Date
        3. Clearing the Revision History
      8. Managing Resources
        1. Adding Resources to the Resource Gallery
          1. Using Web Author to Add a Resource
          2. Using Site Manager to Add Resources
        2. Using Shared Resources in Postings
        3. Replacing Resources
        4. Deleting Resources
          1. Delete Resources using Web Author
          2. Delete Resources using Site Manager
      9. Summary
    16. 12. The Publishing Application Programming Interface
      1. Setting Up the Work Area
      2. The Namespaces
      3. Accessing Objects
        1. Getting a Reference to the Current CmsHttpContext
        2. Getting the Root Channel
        3. Getting the Values of Object Properties
        4. Moving Down the Hierarchy
        5. Moving Up the Hierarchy
        6. Using GetByRelativePath() to Access other Objects
        7. Getting the Current Channel or Posting
      4. Using the Searches Class to Reference Any Object
        1. Searches.GetByPath()
        2. Searches.GetByGuid()
        3. Searches.GetByUrl()
      5. Accessing Placeholder Content
        1. The AttachmentPlaceholder
          1. Differentiating between a Local Resource and a Shared Resource
        2. The HtmlPlaceholder
        3. The ImagePlaceholder
        4. Detecting when Placeholders are Empty
          1. Detecting when an AttachmentPlaceholder is Empty
          2. Detecting when an HtmlPlaceholder is Empty
          3. Checking the Html or FilteredHtml Property for empty strings
          4. Checking the Text Property for empty strings
          5. Detecting when an ImagePlaceholder is Empty
      6. Summary
    17. 13. Building Navigation Controls
      1. Common Navigation Controls
        1. Web User Controls Promote Design Consistency
        2. A Simple Menu—Creating the Top Menu Web User Control
        3. Changing the Display Name of the TropicalGreen Channel
        4. Using Channel Custom Properties to Differentiate Between Top and Right Menu Items
          1. Using Site Manager to Add a Channel Custom Property
          2. Modifying Channel Custom Property Values
        5. Filtering the Top Menu
          1. Method 1: Using Searches.GetChannelsByCustomProperty
          2. Performance Considerations
          3. Method 2: Checking the Custom Property Values of Each Channel
      2. Menus with JavaScript—Creating the Right Menu Web User Control
        1. The First-Level Menu Items
        2. The Second-Level Menu Items
        3. Working with External URLs
          1. Creating Channels that Lead to External URLs
      3. A BreadCrumb Control
      4. Generating the Entire Site Map—A TreeView Control
        1. Adding the First Node
        2. Building the Rest of the Tree Recursively
        3. Creating the SiteMap Page
      5. Summary
    18. 14. Customizing Placeholder Controls
      1. Before We Begin
        1. Creating the TropicalGreenControlLib Project
        2. Adding References to the TropicalGreenControlLib Project
      2. Deriving from the BasePlaceholderControl Class
        1. About the BasePlaceholderControl Class
          1. Methods for Creating Child Controls
          2. Methods for Loading Placeholder Content
          3. Method for Saving Placeholder Content
        2. Building a Single-Line TextBox Placeholder Control
          1. Creating the TextBoxPlaceholderControl Class
          2. Inheriting from the BasePlaceholderControl Class
          3. Specifying the Supported Placeholder Definition Type
          4. Implementing the CreateAuthoringChildControls() Method
          5. Implementing the LoadPlaceholderForAuthoring() Method
          6. Implementing the SavePlaceholderContent() Method
          7. Implementing the CreatePresentationChildControls() Method
          8. Adding the Custom Control to the Toolbox
          9. Adding an HtmlPlaceholderDefinition
          10. Adding the Textbox Placeholder Control to the Plant Template File
        3. Populating a Custom Control with Default Content
      3. Deriving from the MCMS Placeholder Controls
        1. Building the AlignedImagePlaceholderControl
        2. Adding the AlignedImagePlaceholderControl to the Plant Template File
        3. Wrapping up the AlignedImagePlaceholderControl
      4. Using PresentationTemplates
        1. Building a Presentation Template for Flash Content
      5. Creating Custom Placeholder Controls for the XmlPlaceholder
        1. Properties of the Xml Placeholder Definition
        2. Building a CheckBoxListPlaceholderControl
          1. Adding an XmlPlaceholderDefinition
          2. Testing the CheckBoxListPlaceholderControl
        3. Summary
    19. 15. Building Custom Placeholder Definitions and Placeholders
      1. Why Build Custom Placeholder Definitions?
      2. Before We Begin
        1. Adding the Required References to the Project
        2. Setting the Version of the Project
      3. The HtmlStrippingPlaceholderDefinition / HtmlStrippingPlaceholder Pair
        1. The HtmlStrippingPlaceholderDefinition
        2. The HtmlStrippingPlaceholder
          1. Case 1: Remove the Specified Tags and Keep All Other Tags
          2. Case 2: Keep the Specified Tags and Remove All Other Tags
      4. Making the Placeholder Definition Available to Template Designers
        1. Registering the Placeholder Definition Assembly in the GAC
        2. Adding the HtmlStrippingPlaceholderDefinition to the Publishing.config File
      5. Adding the HtmlStrippingPlaceholderDefinition to the Template
      6. The HtmlStrippingPlaceholderControl Class
      7. Trying it Out
      8. Summary
    20. 16. Extending the Workflow
      1. Before We Begin
        1. MCMS Publishing Events
      2. Registering Event Handlers
      3. Monitoring Workflow Events
        1. Sequence of Events Raised when Creating a New Page
        2. Sequence of Events Raised when a Page is Saved
        3. Sequence of Events Raised when a Page is Submitted, Approved, or Declined
        4. Sequence of Events Raised when a Page is Copied
        5. Sequence of Events Raised when a Page is Deleted
        6. Sequence of Events Raised when a Page is Moved
        7. Sequence of Events Raised when Updating Page Property/Custom Property Values
        8. Sequence of Events Raised when Updating Channel Properties
      4. E-mail Notification
        1. The Notification Class
          1. Retrieving the E-mail Address of a User from the Active Directory
          2. The Submitted Event Handler
          3. ChangedEventArgs e
        2. The Approved Event Handler
        3. The Declined Event Handler
      5. Canceling an Operation
        1. Preventing Authors from Saving Pages with Identical Names
        2. Avoiding Recursive Loops
        3. Preventing Deletes
      6. Generic Event Handlers
      7. Summary
    21. 17. Publishing with Authoring Connector
      1. Before We Begin
      2. Installing Authoring Connector
      3. Columns
      4. Building the Column Template
        1. Creating the Template Object
        2. Creating the Template File
      5. The OfficeHtmlPlaceholder and OfficeAttachmentPlaceholder Definitions
      6. Publishing from Microsoft Word
      7. Updating the Page
      8. Replacing Any Page
      9. Submitting Selected Text
      10. Maintaining a Consistent Look and Feel
        1. Reducing the Spacing between Line Breaks
      11. Changing the Server Name
        1. Changing the Server Name for Hundreds of Documents
      12. Creating Publishing Tasks
        1. Modifying the Location of PublishingTasks.xml and PublishingTasks.xsd
      13. Summary
    22. 18. Implementing Forms Authentication
      1. About Forms Authentication
        1. How It Works
      2. Configuring IIS to Allow Anonymous Access
      3. Configure Settings in the Web.config File
      4. Creating the Login Page
      5. Logging on to the Site
      6. The CmsFormsAuthentication Class
        1. What's in the Cookie
      7. When Users Do Not Have Rights to View the Requested Page
      8. When the Cookie is Deleted or No Longer Valid
      9. Welcoming Guests to the Site
        1. Determining or Creating the MCMS Guest Account
        2. Turning on Guest Access in the SCA
        3. Assign the Guest Account Subscriber Rights
      10. Visiting the Site as a Guest
      11. Creating a Login/Logout Button for Authors
      12. Creating a Login Channel for Authors
      13. Summary
    23. 19. Customizing the Web Author Console
      1. Before We Begin
      2. The Different Faces of the Web Author Console
      3. The Console in the Seven Modes of the Web Author Context
        1. Using the PAPI to Determine the Current Web Author Context Mode
      4. Building Blocks of the Web Author Console
      5. Changing the Look and Feel of the Default Console
        1. Changing Colors
        2. Changing Fonts
        3. Changing Text on Action Controls
        4. Changing Action Controls from Hyperlinks to Buttons
        5. Removing Controls from the List
      6. Adding Custom Action Controls to the Console
        1. Inheriting from a BaseAction Class
          1. Creating a New Page with a Pre-Defined Template
        2. Inheriting from a BasePostbackAction Class
          1. Deleting All Connected Postings Together with the Original Posting
          2. Raising Errors within the Error Console
          3. Catching Errors in a Try-Catch Block
          4. Raising the Error
          5. Raising Custom Error Messages
        3. Releasing the Ownership of a Posting
        4. Inheriting from the BaseNewWindowAction Class
          1. Generating a List of Expired Postings
      7. Modifying Existing Actions
        1. Declining with Reason
          1. Creating the GetDeclineReason Dialog
          2. Accessing the DeclineReason Field
        2. Identifying the Person Who First Edited a Posting
          1. Creating the FirstSavedBy Custom Property Definition
          2. Capturing the Name of the First Person to Save a New Posting
          3. Capturing the Name of the First Person to Edit and Save a Previously Published Posting
          4. Modifying the AuthoringReeditSaveAndExit Action
          5. Modifying the AuthoringReeditSaveAction
      8. Summary
    24. 20. Creating Connected Templates and Pages
      1. About Connected Templates and Postings
        1. Connected Templates
        2. Connected Postings
      2. Before We Begin
      3. Creating Connected Templates
        1. The First Template
        2. The Connected Template
      4. Creating Connected Postings
        1. Creating the Original Posting
        2. Creating the Connected Posting
          1. Connected Postings Share Placeholder Content
          2. Connected Postings Have a Common Page Name
          3. Connected Postings Have a Common Description
      5. Going to a Connected Page
      6. Connected Postings Share Workflow Processes
        1. Submission or Approval of a Posting Submits or Approves all Connected Postings
        2. Connected Postings Follow the Workflow of the Posting that has been Submitted/Approved
      7. Alternatives to Connected Postings
        1. Creating Printer-Friendly Pages with Template Switching
      8. Summary
    25. 21. Aggregating Content
      1. Create the Channel Rendering Script
        1. Adding the Summary of Sections
        2. Recent Content
          1. How to Get a List of Recently Added Postings
      2. Alternative Functionality
      3. Summary
    26. 22. Enhancing Performance with Caching
      1. How MCMS Works with Caching
      2. What MCMS Caches by Default
        1. The Disk Cache
        2. The Node Cache and High-Level Caches
        3. Tuning the Node Cache
      3. Improving Performance with ASP.NET Output Caching
        1. Enabling ASP.NET Output Caching
        2. Caching the Plant Fact Sheet
          1. Caching at the Page Level
        3. Caching the Site Map
          1. Caching at the Channel Level
          2. Caching at the Control Level
        4. Personalization and Invalidation
          1. Personalization
          2. Invalidation
      4. Proving that Caching Enhances Site Performance
      5. Summary
    27. 23. Site Deployment
      1. Using the Site Deployment Manager
      2. Opening the Site Deployment Export Dialog
        1. Choosing Objects for Export
        2. Excluding Objects from the Export Package
        3. Exporting Containers Only
        4. Viewing Template Dependencies
        5. Removing Objects from the Included and Excluded Export Objects List
        6. Exporting Rights Groups and Users
        7. Specifying the Location of the Export Package
        8. Saving an Export Profile
        9. Previewing the Contents of an Export Package
          1. Report Information
          2. Selected Export Parameters
          3. Selected Containers and Items
          4. Selected Export Objects Not Currently Available for Export
          5. Selected Objects Containing Broken Links
        10. Creating the Export Package
      3. Importing Packages
        1. Creating a Fresh Database for Testing Import Jobs
        2. Opening the Site Deployment Import Dialog
        3. Container Rules
          1. When Adding Containers
          2. When Replacing Containers
          3. Rights Groups
          4. Select how Rights Groups are Imported
          5. Select how Users are Imported
          6. Orphaned Objects
        4. Importing an Existing Site Deployment Object File
          1. Previewing the Contents of an Import Package
          2. Report Information
          3. Selected Import Parameters
          4. Object Placement from Source to Destination System (Imported Objects)
          5. Destination Objects that will be Deleted on Import
          6. Destination Objects that may Contain Broken Links after Import
          7. Starting the Import Process
        5. Running Import Processes on a Live Production Site
        6. Before We Continue
      4. Automating Deployment Using the Site Deployment API
        1. Differences between the Site Deployment API and the Site Deployment Manager
        2. Writing a Server-Side Export Script
          1. Authenticating the User Running the Export Process
          2. Specifying Export Options
          3. The IncludeCreatedBy Option
          4. The IncludeRightsGroup Option
          5. Calling the Export Method
          6. Specifying the Package File Name
          7. Specifying the Time Interval
          8. Specifying the Parent Channel
          9. The Completed Script
        3. Writing a Server-Side Import Script
          1. Authenticating the User Running the Import Process
          2. Configuring Import Options
          3. The IncludeCreatedBy Option
          4. The IncludeRightsGroup Option
          5. The RightsOnAdd Option
          6. The RightsOnReplace Option
          7. Calling the Import Method
          8. The Completed Script
        4. Writing a Script to Back up and Restore Rights Groups and Users
          1. Creating a Backup of Rights Groups and Users
          2. Restoring Rights Groups and Users
        5. Server-Side Deployment Scripts vs. Client-Side Deployment Scripts
        6. Planning for Contingencies
      5. Summary
    28. 24. Hosting Multiple Websites and Adding SSL Security
      1. Hosting Multiple MCMS Websites
        1. Multiple Channels and One MCMS Application
        2. Multiple Channels and Multiple MCMS Applications
        3. Mapping Channel Names to Host Header Names
          1. Turning on MCMS Host Header Mapping
          2. Configuring Channel Names in Site Manager
          3. Register Sites with Name Resolution Service
          4. MCMS Host Header Caveats
          5. Another Benefit of Host Headers
      2. Adding SSL Security
      3. Summary
    29. A. Upgrading from MCMS 2001 to MCMS 2002
      1. Backing Up the MCMS 2001 Site
      2. Upgrading the MCMS Software
      3. Upgrading the Database
      4. Noticing the Differences
        1. Site Manager Replaces the Site Builder
        2. Visual Studio .NET for Templates
        3. Web Author Console
      5. ASP or ASP.NET?
        1. Staying with ASP
          1. Fixing the Customizable Files
          2. Checking Your Other Code
          3. Test! Test! Test!
        2. Go for Broke: ASP.NET
      6. Summary
    30. B. References
      1. Microsoft Resources
      2. Knowledge Base Articles Referenced in the Book
      3. MSDN and TechNet Articles Referenced in the Book
      4. Author Blogs
      5. Community Resources
      6. Other References from the Chapters
      7. About Tropical Plants