We never realize how good we have it. In the good old days before the internet, I thought windows development was challenging.
Our software applications had access to virtually all the methods within an operating system. We were true herdin' cowboys back then.
But this web stuff. Cut us poor developers a break.
Now software solutions must occur within the confines of this contraption we
call a browser. My software must co-exist with the software of millions of other web businesses. It is ultimately up to the browser
to ensure that each application is well-behaved in its use of resources and to prevent the end-user's confidential information from being compromised.
To accomplish this, the browser has no choice but to handcuff the developer. Attached to the handcuff is a long leash. You know the
one – long enough to hang yourself. And the tools? I laugh in your face! The base building block is HTML, a few cumbersome
commands with the express purpose of formatting a document.
To fill this gaping hole, client scripting languages such as Javascript were developed. Scripting tools allow an application to be event driven, such as on a mouse
click. They also pull back the browser covers and expose a few of the window's properties and methods. An additional feature,
Cascading Style Sheets, was deleveloped to help incorporate graphic design elements into a web page.
We now have a nice looking web page with one-way communication. As Brigitta said in The Sound of Music, "But it doesn't mean anything!" This
is where forms come into play. Forms capture user input and transport the data to the server. Therein lies the power of the internet.
An end-user and their wallet can interact with the web application.
Typically, a session must be established in which the user logs into the application's system. What exactly is this "system"? Simply put,
it's a database. But make no mistake, a database is the crown jewel of every business. Half the battle of software development evolves
around the database. It is defined, churned through multiple levels of normalization, and surrounded by firewalls. All user input
is carefully validated, hopefully, before it is incorporated into the database.
A unique session-id is assigned which indicates that the user has signed on. Most web sites now require that cookies are enabled to store
the session-id. The browser protects the session-id cookie from prying eyes and from other applications. The session-id can also be stored
in hidden fields on the web page, but this is a less secure approach.
Using data from the database, true dynamic web content can be built. Uh...yeah. Remember that HTML front-end delivery tool?
This is no easy task. It is accomplished in conjunction with one of the Server Side Scripting languages, which includes PHP, ASP, JSP, and ColdFusion
(See Decoding Database Lingo). Combined with HTML,
dynamic web pages can be thrown together. Right. Did I mention frames, those lovely containers that allows us to target output to a
specific section of the page. Here's the thing about frames. It always comes down to, I'm over here, but I want output over there.
This flavor of browser doesn't handle "over there" very well. You get the picture.
This site uses PHP/MySQL, two wonderful open-source products. (If you are a PHP developer, you must be some kind of genius if you're not using
ZEND Development Environment debugger, not free, but worth every penny.) There are several open-source PHP Template tools that allow you to
piecemeal your components into a web page. These include Smarty and
vLIB. Where these are nice tools, they come with the baggge inherent in full blown applications. This site's
web pages are built from a very basic template pulled out of a PHP manual. It's flexible, easy, and I wouldn't change a thing. Well, I
would like to accomplish total world domination, but that will be covered in next week's article.