I've decided to write a small, concise and helpful guide to developing tools, sites and applications for the web. I'll cover various topics from choosing a platform down to integrating it and finally supporting it in today's rapidly changing industry. I will also be highlighting these guides from the perspective of a developer, designer & tester and again from that of the webmaster, who will likely be in charge of the live integration.
Through these guides, I hope to better inform our clients of exactly what to expect from their web site or web application; and also to educate them on the process, as well as the field of web development. Due to this, I will be highlighting many of the technologies we use here at NYNdesigns. I also hope that these will help new web developers, designers and firms along the way, as many tend to make an early mistake which propagates along their development cycle and haunts them for a long time (ex. choosing the wrong platform or framework could result in days, or even months, of porting & hacking code).
* If you need help with any of the guides, please contact an NYNdesigns representative and we can help to clear up your concern or question.
Choosing a Platform
The first problem all web developers have to face is: Which platforms do wish to support? The obvious choices are Linux, Windows, and Unix. To make this guide more concise, I'll group Linux (, Mac) and Unix together as they offer the same tools and a similar environment. For those who wish to develop ASP.NET ("Microsoft's web language") applications & sites, you don't have much choice but to choose a Windows platform. If, however, you decided to use the open source PHP language, you are free to use either.
We decided on PHP because of the supported development tools, the developing community, and vast experience we have with the language. This meant that we can tailor our web applications and sites quicker than if we had chose to use ASP.NET. I won't attempt to compare the languages for obvious reasons (they offer a broad number of advantages / disadvantages that are already widely discussed), but we found that by using an open source language, you get away from the proprietary nature we've grown accustom to being forced to deal with. For us, this meant access to more information, guides, help and frameworks; as well as tools and libraries. We are one of the few web development firms that openly admits that we use all of these resources regularly (we often use these resources; customizing them for our clients is a Win-Win for everyone). Why? In response, a rhetorical question: Why would anyone turn down free information that could potentially strengthen their business and product? It is, after all, why you're reading this article; and potentinally a factor in why you chose NYNdesigns.
In keeping with this philosophy, we also selected Linux as our web operating platform. It offered us more access to development tools, as well as other server related software (Email, DNS, SSH, (S)FTP, etc). We found that Windows' support of these basic server processes (which continued on to the more complex ones) was similar to the support you get for their Operating Systems; nonexistent in some areas and slow in the rest. This is not to say we dislike Microsoft; I personally had a research partnership governed by Microsoft technology through the University here in Windsor; and it performed well. We were comforted by the millions of other Linux Web Servers (they control roughly 60% of the server market), including web giants like Facebook, which also selected a Linux & PHP combo.
If you select a Windows platform, there isn't much else to do in terms of selecting a version; however, if you choose Linux, you'll be faced with a number of options. Again, to keep this article as concise as possible, I won't be covering the different Linux distributions (there are a number of articles on the web relating to this already), though I'll talk briefly about our choice. We selected the Ubuntu operating system. It is widely known for it's popularity as a personal desktop replacement for Windows users, and is the most used distribution of Linux. We selected the server edition of Ubuntu because of its long standing use on the web, its ease of use, and the number of technologies which are supported by it's Debian based foundation. Many of the North American Universities agree, as it is widely used by their computer science departments, and from what I've personally witnessed, by their current and former CS students.
Choosing the right platform can vastly affect your product and development time. You should consider your business, personal & clients' goals before rushing into a selection. You may wish to setup a Virtual Servers (using VirtualBox or VMware) to test, side-by-side, the benefits of each one. We recommended using open source languages, frameworks, tools and servers because of their wide use, support, transparency, increased security and nature (search: Unix philosophy).
I'll be covering web server / database selection and server configuration as it relates to project design.