XHTML Prototype Management was originally posted on the main page of LDSTech. It was written by Clifton Labrum.
-----------------------------------------------------
Here at the Church, we develop projects of various sizes that require designing and building prototypes of varying complexity. Much of my experience has been with large prototypes, and I wish to offer three suggestions for handling 20+ XHTML pages and numerous other assets.
#1: File Organization
A good Web application will have a domain structure that mirrors the content structure. This allows users to see where they are both on the Web page and the address bar of their Web browser.
For example:
“domain.org/temples”
is much cleaner and clearer than:
“www4.domain.org/webservices/construct/pagecontent/pageGenerator?id=temples&mode=981ASDFKH171ASDKFJ19”
In my projects, I like to separate page structure from assets like this:
As seen above, “family,” “scriptures,” and “temples” would contain site content. The “ui” folder is for site assets. This folder can contain any number of things related to supporting the site content. Here are a few suggestions:
While any number of names could be used instead of “ui,” this particular word is quick to type when typing paths in your XHTML code. Placing all of the assets in a single folder will reduce confusion around what is content and what is an asset. This becomes particularly helpful if your customers browse the site using the file listings on your server.
#2: Server-Side Includes
Many parts of your application will be used over and over again. A header containing the logo and site navigation is likely to appear on every page. If you copy and paste that code from page to page, it becomes very difficult to manage once you get into the range of 20 to 30 pages. Implementing even a small change will be an arduous task unless you’re very confident in your global search-and-replace skills. Instead, make a single instance of that code as a server-side include and reference it on each page.
Several methods are available, but here’s a quick example of how to do it in PHP:
Create a file called header.html and put all the code in it that you would like to reuse. In this example, we would put in all the logo and navigation code.
Then, on each page where the logo and navigation would normally be, simply make a statement like this to reference your external file:
<? include(“/ui/includes/header.html”); ?>
As changes are requested, you can edit the code in header.html and it will be reflected everywhere in your application where the “include” is used. This technique is a huge time-saver for any reusable code snippets in your site.
#3: Subversion
Subversion, commonly known as “SVN,” is a widely used technology that keeps track of your site files. It monitors who is working on the code and what changes they make. If you are part of a prototyping effort with multiple people, this method will ensure that you don’t overwrite each other’s work. Subversion has a variety of tools for merging changes when two or more people edit the same code, as well as the means to roll code back to previous versions if something breaks.
If you are the sole designer or coder on a project, SVN can sometimes be overkill, but there are still some advantages. Most corporate SVN environments are on reliable servers with backup measures. Checking your code in will put it in a safe place and make it easy to get if someone else needs to pick up where you left off. The code revision history is also helpful if you mistakenly introduce a bug and you need to go back to a working version of your code.
While these tools may seem to add unnecessary complexity to a Web project, investing some time in their use will yield huge dividends of time and efficiency as your project grows and changes.
Clifton Labrum is an interaction designer for the Church.
XHTML Prototype Management
Discuss the feature articles on the Tech Home Page.
- McDanielCA
- Member
- Posts: 486
- Joined: Wed Jul 18, 2007 4:38 pm
- Location: Salt Lake City, Utah
Return to “Featured Article Discussions”
Jump to
- What's New
- ↳ Announcements & Policies
- ↳ Virtual Meetings
- ↳ In The News
- ↳ Links & Resources
- Church Technology for Members
- ↳ Main Church Website
- ↳ Calendar
- ↳ Ward Directory and Map
- ↳ Leader and Clerk Resources
- ↳ Notes and Journal, and Online Scriptures
- ↳ Online Donations
- ↳ Beta Testing
- ↳ Beta Calendar
- ↳ Beta Directory
- ↳ Beta Lesson Schedules
- ↳ Beta Maps
- ↳ Beta Newsletter
- ↳ Beta Clerk Resources
- ↳ Other Websites
- ↳ Mobile Applications
- ↳ Gospel Library
- ↳ Android Gospel Library
- ↳ iPhone/iPad Gospel Library
- ↳ Gospel Library for Windows
- ↳ Gospel Living App
- ↳ Gospel Media
- ↳ Member Tools
- ↳ Android Member Tools App
- ↳ iPhone/iPad Member Tools App
- ↳ Mormon Radio Channel
- ↳ Church Account
- ↳ Family History
- ↳ FamilySearch Products
- ↳ FamilySearch Family Tree Application
- ↳ FamilySearch Indexing
- ↳ Family History Centers
- ↳ Genealogy Industry Issues
- ↳ Software Development
- ↳ Other Member Technologies
- ↳ Church Historical Timeline
- ↳ Emerging Technologies
- ↳ Accessibility to Church Technology Products
- ↳ ePublishing
- ↳ Audiobooks
- ↳ E-Books
- ↳ Interactive Books & Magazines
- Community Discussions
- ↳ General Discussions
- ↳ Family Safety with Technology
- Clerk Support
- ↳ Getting Started for New Clerks
- ↳ Reports and Forms
- ↳ Local Unit Finance
- ↳ Membership Help
- ↳ General Clerk Discussions
- Meetinghouse Technologies
- ↳ Meetinghouse Internet
- ↳ Clerk Computers
- ↳ Printers, Copiers, and Multi-Function Devices
- ↳ FAQs for Local Unit Copier Program
- ↳ Broadcasts and Conferences
- ↳ Interactive Virtual Meetings
- ↳ Non-Interactive Webcasting
- ↳ Stake Conference with Remote Participants
- ↳ Satellite
- ↳ Receiving Internet Broadcasts
- ↳ Rich Media in Lessons and Training
- ↳ Meetinghouse Audio
- ↳ Phones
- ↳ Other Meetinghouse Technologies
- ↳ Stake Technology Specialist Training
- Audiovisual Media and Emerging Technologies
- ↳ Getting Started
- ↳ Digital Media
- ↳ General Media Discussions
- Help & Feedback
- ↳ Help with this forum
- ↳ Archive
- ↳ Classic Ward & Stake Sites (LUWS)
- ↳ Ideas & Suggestions
- ↳ Adobe Flex
- ↳ Enterprise Change Management
- ↳ Personal Ancestral File (PAF)
- ↳ Temple-Ready
- ↳ FamilySearch Wiki
- ↳ Australia Area Technical Support
- ↳ Lesson Schedules
- ↳ Newsletter
- ↳ BlackBerry Gospel Library
- ↳ WebOS Gospel Library
- ↳ Windows Phone Gospel Library
- ↳ BlackBerry LDS Tools
- ↳ WebOS LDS Tools
- ↳ Windows 8 LDS Tools
- ↳ Windows Phone LDS Tools
- ↳ Feedback on Tech
- ↳ Gospel App & Game Contest
- ↳ Help Center Website (Formerly RKATS)
- ↳ Community Development Projects
- ↳ Emma
- ↳ Mobile Development
- ↳ Interactive Music Project
- ↳ Java Web Project Support (Stack)
- ↳ Featured Article Discussions
- ↳ Technical Recruiting
- ↳ Development Help Wanted
- ↳ Personal Video Conferencing
- ↳ MLS Support, Help, and Feedback