A Technology Roadmap - The Basic Map
I've been a programmer for a while now and when I'm faced with a problem requiring a solution it doesn't take me long to realize what language or languages will be involved and which technologies I'll be using to put it all together. Somebody just starting out however, might not intuitively know these things. To them, they need a solution but don't even know which language references to turn to for help in finding it. This can become a very frustrating show stopper; a complete roadblock.
What's needed for the budding developer is a roadmap, a step by step guide for getting from A to B, bypassing the blockages. So here we present the Goodies roadmap to language and technology selection for Web Page development. It should be pointed out at this time that this is not a start to finish solution finder, only a guide to language and technology selection -- if you need more than this there are other guides available in the HTML Goodies line-up, starting with the Non-Technical Introduction, through the Primers and Tutorials to the Webmaster Tips and Webmaster Toolbox. You'll find these and all the other Goodies features in the index list over there on the left.
The Roadmap - Basic
There are always more choices -- and this is never so true as in this rapidly evolving technological world. In the Basic Roadmap, however, the first choice is obvious. Web pages will be coded using HTML (in the Advanced, you'll see this might not hold true!)
The next choice is going to depend on what you want to do and where that needs to happen. Bear in mind, that "what you want to do" might involve several components, each of which might require a different language or technology. As you look at your problem, try to think of each part of its process in turn, and treat each one as a separate question (hopefully, you'll see what I mean by this as we progress.) There is a discussion here that you should read at this point, unless you are completely comfortable in knowing whether you should be processing on the client side or the server side.
When it comes to processing the form, which will happen when the site visitor (the user) submits the form, sending it back to the server complete with the data they entered, the processing must occur on the server side. Note that in times past we could use a "mailto:" to simply put the information into an email and send it where we want it to go, but that, for security reasons, this feature is no longer supported by modern browsers. There are discussions concerning this here, here and here.
Assuming that you read, or at least glanced over, those three
discussions of processing forms, you will have seen mention of several
server-side languages and technologies. I have selected two of these, PHP
and the FrontPage Extensions, for inclusion in the Basic Roadmap, deferring the
others for consideration in the Advanced Roadmap. My reasons for this are
that these are the most common and/or easiest to use (Perl is also very common,
but is not as frequently implemented on Windows based servers as is PHP, and was
deferred for this reason.)
The FrontPage extensions, which have to be installed on the
server hosting the website, provide very simple to use "webbots" for processing
the information from your form. These webbots include the abilities to
send out emails, capture data to text or HTML files, interface with databases
and to return confirmation pages. The downside to this technology is that
to use it you need to be using a FrontPage compatible editor, such as
FrontPage itself, and, as preciously mentioned, the extensions must be
installed on the server. There is a lot more detail about FrontPage
PHP is my language of choice for basic server-side processing
(and I don't mean Basic, which is a language for the Advanced Roadmap, despite
its name -- I mean basic as in fundamental.) There is a tutorial series for PHP
here, which includes discussion of database technology interfaces, using
MySql is a very common DataBase Management System (DBMS) for the
type of sites we are thinking of. There are other common DBMSs more
frequently associated with Enterprise applications, and other, less frequently
found DBMSs that we might use. MySQL fits all the criteria for our Basic
Roadmap. As previously mentioned, you will find an introduction to the use
of MySQL databases in conjunction with PHP in our
Series and you can find more at the
.NETFrom our own Webopedia, .NET is defined as "A Microsoft operating system platform that incorporates applications, a suite of tools and services and a change in the infrastructure of the company's Web strategy.' .NET "erases the boundaries between applications and the Internet. Instead of interacting with an application or a single Web site, .NET will connect the user to an array of computers and services that will exchange and combine objects and data." For more information on .NET and what you can do with it, visit our sister sites 15Seconds and 4GuysFromRolla.
Next, we'll be taking a look at some more options in our Advanced Roadmap.