The Mysearch Website
At
the end of 2011, it was estimated that the World-Wide Web (WWW)
contained, at least, 8.12 billion pages, although this number reflects
a smaller number of actual sites, estimated to be in the order of 150-200
million. Clearly, there are a lot of people and organisations who wish
to tell the world about something or other. As such, the chances of
coming across this specific webpage, by accident, will be very small
and, in all probability, the only way that anybody will ever find this
website, let alone one of the 500 odd pages within it, will be via one
of the popular search engines, e.g. Google. Of course, many of the 150+
million sites will be owned by organisations with the time and money
to ensure that their sites are listed at the top of any search engine
rankings, while sites like this will be lost at the end of an ever increasing
long index.
So why develop a website that nobody will ever find or read?
As has been stated elsewhere, the purpose of the Mysearch website, and associated forum, is primarily for my own education. As such, the research into the various topics discussed could have been developed within the isolation of my own PC. However, the mere perception that somebody might read these words was sufficient to impose some additional discipline on my efforts to try to understand any given subject; although whether this was entirely successful may be a 'subjective' judgement. Of course, there was also the actual challenge of developing a website for no other reason than to understand how it could be done and, in this context, this discussion is essentially a description of some of design issue associated with developing this website. Eventually, some aspects of this discussion may be moved and expanded under one of the planned Technology sections:
- Hardware: Computing
- Software: Programming
- Communications: Internet
- Information: Web Applications
The original Mysearch website was developed, and maintained, using Microsoft Frontpage, as this product made it fairly easy for a complete novice to attempt. However, following Microsoft's decision to effectively obsolete this product, it was necessary to consider an upgrade approach; although it soon became apparent that there was no obvious, or automated, process by which to convert the original Frontpage site, inclusive of its built-in navigation mechanism, to any other product on offer, including Microsoft's own replacement product Expression Web Studio. As such, it appeared that the only option was to consider an entirely new approach, which will be discussed under the following headings:
- Web Design
- Content Development
- Web Navigation
- File Organisation
- Update Automation
- Javascript Automation
- Server-Side Forum
- Upgrades & Backward Compatibility
However, before focusing on the actual design approach taken by this website, it might be useful to simply outline some of the implications of web development in its broadest sense. In its widest context, web development can include not only the look and feel design of the site, but also its content, user interfaces, client and server-side scripting, network security and e-commerce considerations. So while web development can be as simple as a single static page of plain text, the idea can be expanded to meet the demands of large commercial websites, which may contain thousands of webpages, inclusive of text, images, video and audio applications that are subject to continuous updates. As such, the web development of a large site may involve hundreds of developers and support staff, while smaller organizations may simply cope with only a single 'webmaster'. The sophistication of a website is often reflected in the type of scripting adopted:
Client-side Scripting:
This
refers to a class of programmable scripting that is executed on the
client device under the control of the user's web browser. This type
of programmed scripting is also referred to as Dynamic HTML (DHTML)
as it enables web pages to invoke different options that changes the
content, and its formatting, depending on the type of client-side device
in use or other environmental variables.
Server-side Scripting:
This refers
to a web server technology in which a request from the client-side is
verified by running a script on the web server, which then generates
a dynamic web page for a specific user. It is often used to provide
access to a huge amount of content that is stored in a database, which
is then filtered to meet the specific requirements of a client or request.
In a slightly different vein of web development, some organisation also extend the idea of a website into a content management system (CMS), which provides all the necessary procedures to manage the work flow in a collaborative distributed environment. Such procedures might include:
- Controlled access to share data.
- Controlled access based on user-defined roles.
- Version control and data protection.
- Security authorisation and authentication.
Within such systems, data can comprise of text, images, video and
audio files plus applications, which acts as a controlled central resource
within a large and possibly globally distributed organisation. In this
context, the goals of this website are 'somewhat' modest in scope
and have adopted a client-side approach because it allows the website
to be used as a local data repository or shared via the online address
www.mysearch.org.uk