Main Points

Master pages are not what their name suggests. They are quirky. They are problematic. However, they also combine some of the best features of an ASP.NET server control and a server side include (SSI). Basically they're a great idea that loses a little in the execution. Still, they are a superior method to condense key XHTML blocks in one location when compared to SSI. This makes the code more portable, more modular, more flexible, more powerful. Sounds like it's worth at least checking out. ;)

Beginning Master Page (1-5)

This is the first attempt at building an ASP.NET master page. Pushing and stretching them to see what they can do and then systematically working through our most recent XHTML template to see how to most flexibly and maintainably set up a new template based on master pages.

  • 1. Master Page Test - This is our first stab at a master page. It is not perfect. It isn't even good, but then it isn't meant to be. It's meant to break every basic rule that we can think of to see what we can and can't get away with. Oh, and provide enough basic functionality so that you can get out of the page. Wouldn't that be nice?

    [chroniclemaster1, 2008/01/16]

  • 2. Master Page Template Code - This is an attempt to build a working template for our website using a master page. This page details the header and main content sections of the template.

    [chroniclemaster1, 2008/01/19]

  • 3. Master Page Footer Code - This is an attempt to build a working template for our website using a master page. This page details the footer of the template.

    [chroniclemaster1, 2008/01/19]

  • 4. Master Page Contact Form - This page describes the function of the contact form in HTML code.

    [chroniclemaster1, 2008/08/04]

  • 5. Master Page Navigation - This page elucidates the details in building the site's navigation, clearly one of the most critical portions of the website.

    [chroniclemaster1, 2008/08/04]

Troubleshooting, Testing, and Head Banging (6-9)

This was a particularly long and frustrating period in the master page development. It was fine setting up a practice test page, but several different factors conspired to make implementation on the real site much more difficult to pull off. There were problems making references that worked on both the development and production servers. There were user controls that had to be added for content which probably belonged on a master page but which would have left tags opening in one page and closing in another. It taught us a lot about the ins and outs of putting together a web page, but you couldn't say that we had a lot of fun doing it.

  • 6. Master Page Live Demo - This demo begins to set up some of the structural changes necessary to take master pages site wide.

    [chroniclemaster1, 2008/08/05]

  • 7. Master Page User Controls - This demo offloads sections of the code into user controls to increase the use of Object Oriented principles on the page, maximizing its ease of maintenance.

    [chroniclemaster1, 2008/08/05]

  • 8. Wiring It All Up - This demo strives to hook up all the last pieces in the creation of a new template.

    [chroniclemaster1, 2008/08/05]

  • 9. Subdirectory Test - This demo tests the new template from a subdirectory.

    [chroniclemaster1, 2008/08/05]

Template Fine Tuning (10-13+)

We adjusted the master page template to work with submasters (ie ASP.NET nested Master Pages). This allows us to set certain things which will be consistent across all websites, but at the same time apply adjustments for the beta site on it's nested master page. We also fine tuned our code to maximize the new master page templates throughout implemenation.

  • 10. Nested Master Page - This demo tests the first attempt at a nested master page. It allows us to create a main master page for all the websites in the Earth Chronicle family and use nested master pages to provide variations for each individual website.

    [chroniclemaster1, 2008/10/05]

  • 11. Nested Master Page Subdirectory Test - This demo tests the new nested template from a subdirectory.

    [chroniclemaster1, 2008/10/29]

  • 12. Earth Chronicle Beta Template - This is a working template for the new nested master page structure for the three websites.

    [chroniclemaster1, 2008/10/29]

  • 13. Nested Master Implementation - This is our initial thoughts while instituting Master Pages and their fallout.

    [chroniclemaster1, 2009/04/14]

  • Content Demo 2009/01/25 - Here are the results of our first live version of the master page templates as implemented across the entire website.

    [chroniclemaster1, 2009/09/22]

  • 14. Post Launch Changes - This is a discussion of changes after the master pages were implemented: duplicate contentplaceholder ids, ResolveClientUrl(), and other master page modifications since we went live.

    [chroniclemaster1, 2009/09/22]

  • 15. ResolveClientUrl() Method - This page illustrates a new method we ran across which is vital for programming with master pages.

    [chroniclemaster1, 2009/10/10]

Master Pages Live

The nested master page architecture is up and running, but it's more of a beginning rather than an end. We're formalizing an iterative development methodology for ongoing upgrades to Earth Chronicle Beta and the rest of the websites. We'll test, research, and find new ways to improve the website. Once it reaches a critical mass, once we have a nice addition for the "house" - not just a some new wiring and a couple walls - we can push the changes to the live website. Without master pages these changes would be death-defying at the very least, so our ongoing development from now on is tied up with master page development. Taking Earth Chronicle live, in particular, forced us to think about some things in more detail as well as what belonged in which master pages. Here are some of our resources for ongoing master page work.

  • Ongoing Testing - Now that the master pages are built into the site, see how our live development has progressed. Our testing records the history of development since master pages were introduced.

    [chroniclemaster1, 2009/09/22]

  • ~BetaCorePageTemplate.aspx - This is the XHTML output from the current Beta website core page template; see where we've gone since the beginning . :)

    [chroniclemaster1, 2008/10/29]

  • ~BetaTestingPageTemplate.aspx - This is the XHTML output from the current Beta website testing page template; see where we've gone since the beginning. :)

    [chroniclemaster1, 2008/10/29]