Notes
Slide Show
Outline
1
Use ASP.NET to Simplify
Web Site Maintenance
2
Why Content Management?
  • The Problem: With static pages, difficult to maintain consistency; creating and updating content is labor-intensive
  • The Solution: Content Management Systems (CMS) address these issues by separating content from presentation. Content is stored in database, formatted and displayed on request
3
Content Management Options
  • Low-End Systems (e.g., Web Logs, IBuySpy) are inexpensive, but offer limited flexibility, capability
  • Mid-Range/High-End Systems start at tens of thousands of dollars per server. A complete implementation can easily total hundreds of thousands of dollars in software and consulting fees
4
Roll Your Own?
  • A simple, homegrown system allows you to test the content management waters without spending a fortune
  • You’ll get the code for our ASP.NET content management framework, and may modify or enhance it to meet your needs
    • Demo
5
How Does It Work?
  • Design goal: Low maintenance!
  • SQL Server database stores content,
    user information
    • Pluggable data access layer (cmsDB) allows
      use of other databases (Access, Oracle, etc.)
  • Schema considerations
    • Content elements in table columns?
    • Use XML to simulate OODB?
    • We chose hybrid approach: Best of both worlds
6
Content Object Model
  • Take 1: Implementation Inheritance
  • Overview
    • Base content class knows how to load and
      save itself via object serialization
    • Specific content types inherit from base class
    • User controls handle display, editing
  • Issues
    • New content types require developer involvement
    • Content in database is version-specific
7
Content Object Model (cont’d)
  • Take 2: Generic Content Object
  • Overview
    • Implemented as collection of name-value pairs
    • Single class can handle any content, without developer involvement
    • Solves data versioning problem
  • Tradeoffs
    • No type-safety: Can’t make assumptions about nature of content
8
Object Serialization
  • Overview
  • Issues
    • Not all .NET types support serialization
    • Controlling serialization with attributes
    • Generating XML-friendly HTML
    • XML is case-sensitive (duh!)
9
Management Interface
  • XML-based UI eases maintenance
    • XML files describe edit pages
    • Page generated dynamically at runtime
    • Page saves values to content object,
      which persists self to database
  • Single class handles all content editing
    • New content types require only XML edit form definition and HTML display template
    • No code changes required!
10
Workflow
  • Role-based security
    • Contributor, Editor, Managing Editor,
      Administrator
  • Simple go/no-go approval
    • Design supports more complex workflow
      scenarios
11
Presentation Layer
  • Page Templates
    • Templates enforce consistent look & feel
    • Content inserted into placeholders at runtime
  • User Controls
    • Page templates implemented as user controls
    • Data-bound controls display content
    • Can be maintained by production staff;
      no programming required
  • Caching