Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

A RAD (Rapid Application Deployment).ASP Architecture: Introduction

0.00/5 (No votes)
31 May 2003 1  
The first article of a series that will lay out the framework for a non .NET implementation of XML and XSLT using SSIs (server-side includes).

Introduction

Truthfully, how many sites have *you* really built?  Then, ask yourself how many have you actually maintained?  By maintaining, I mean creating new content pages and linking them in -- not merely updating the text on a site (which I view as an administrative effort).   This article will explain many facets of how to design an architecture for a web site that you will be able to reproduce, and place the management of content (where it is usually most cost-effective) with a site administrator almost effortlessly.

NOTE: This article is a work-in-progress and will be updated periodically.

Background

I am a do-it-yourself kinda guy.  I am from the days way-back-when you had to scour bulletin boards to glean the programming voodoo that we do.  Although books can be helpful, many times they miss the mark or are examples of generic stuff.  When the internet came around this offered a huge medium for us programmers to learn with, this article is an attempt to give something back to all of those folks who have religiously offered up their ideas for free to everyone else.

I started programming very young around 1984. I have worked through a bunch of different programming languages and when the web came around I thought - what an easy way of programming.  I jumped into HTML and started building page after page after page after page.  Wonderful I thought!  Then I had to start updating content.

In my experience, there are two types of programmers -- those that are great at proto-typing, and design and those that are great at maintenance.  Each has a very distinct and undeniable purpose.  Sometimes you find one that crosses-over into each field.  I am the creative type and if you want to truly take a proto-typing programmer and turn them into a mass of vegetable mush, relegate them to updating text in a site.

Then... this great thing called Active Server Pages (ASP) came around.  "FINALLY", I said.  I can hook a database to all of this content and allow my clients to more cost-effectively maintain it.  Well, that is what I told them of course -- that was about 20% of my motivation, the other 80% was my sanity.

To pull this off, I then found out that instead of having to update a hundred "content" pages all the time, I had to now build 100 data-entry pages for an administrator to be able to "update" that content.

Now, I have this big architecture of both site content and administrative management pages that if I would like to reuse to any degree for another client, I have to completely retool their layout (so it doesn't look the same).  Anyone that has done this knows just how daunting a step this can be.

To solve this cross-client problem, a new technology called XML looked intriguing (albeit a bit bloated from a datastream perspective) and I thought, "hey what if I put the whole page in XML", used server-side includes and XSLT to transform the page layouts.  This way I could still have 100-plus pages, but only have to minimally update the few items that change on a page-per-page basis by putting each page into a XML tag.  Then, when a new client comes along I can just change the XSLT template that transforms that XML "page layout data" into a new client-specific layout.

*NOW* I can crank sites out and not have to retool the whole site top-to-bottom each time I build a new one.

This also better segments the roles of the people involved.  I can throw in an Architect to figure out the layout / business process flow initially to prototype the framework, then have an Engineer "own" the thing as new items are needed, and an Administrator manage the day-to-day content of the site.  This approach seems to work well for me, and is cost-effective and intellectually gratifying from a people perspective (which can actually be a big factor in rollouts).

NOTE: This architecture, was actually put together before .NET came around, so some of it might be useful to those of you who haven't taken the leap.  That said, the application of this could be accomplished in any web / server scripting language and is not limited to just using ASP. I do however believe that migrating to .NET in whole or at least in part can offer a few new optimizations.

The Series

The series of articles I will be publishing will be as follows:

  • 100 - An Introduction
  • 101 - The Business Processes
  • 102 - The Site Layout
  • 103 - The Database
  • 104 - Server-Side Includes (SSIs)
  • 105 - XML Data-Islands
  • 106 - XSLT - Layout Implementation and CSS (Cascading Stylesheets)
  • 107 - XML Layout Templates

100 - An Introduction

This article, the first article of the series, outlines and describes all of the other series articles and their content.

101 - The Business Processes

This article will discuss some of the considerations that need to be understood of the business processes you are implementing as well as their importance.

102 - The Site Layout

This article will discuss some layout and design considerations and things to think about when designing a layout.

103 - The Database

This article will discuss some of the database considerations for our architecture.  While I will most likely use SQL Server, any database should do, although I have a huge preference for databases which support GUIDs.

104 - Server-Side Includes (SSIs)

This article will discuss the concept of Server-Side Includes (SSIs), how to use them, and some of the "gotchas" when they are used.

105 - XML Data-Islands

Now that we have the business processes, the data, and the layout defined - we can start building XML.  This data we will later use when building each page.

106 - XSLT

This article will discuss how to use a technology called XSLT to convert our XML data into HTML

107 - XML Layout Templates

Instead of hard-coding each page, we will take a look at using XML and XSLT to actually build the layout portion of our pages and then point the items in the page to various XML data-islands.

Points of Interest

I have to give some credit to Kundan Narendra for writing his article on Server-Side Includes to help kick me in the butt and just write this thing.  I have been wanting to for some time.

History

  • 05.07.2003 - Initial Introduction Written

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here