Website Development

Client side coding:


Flash Adobe Flash Player is a ubiquitous browser plugin ready for RIAs. Flex 2 is also deployed to the Flash Player (version 9+).


Microsoft Silverlight Microsoft’s browser plugin that enables animation, vector graphics and high-definition video playback, programmed using XAML and .NET programming languages.


Looking at these items from an “umbrella approach”, client side coding such as XHTML is executed and stored on a local client (in a web browser) whereas server side code is not available to a client and is executed on a web server which generates the appropriate XHTML which is then sent to the client. The nature of client side coding allows one to alter the HTML on a local client and refresh the pages with updated content (locally), web designers must bear in mind the importance and relevance to security with their server side scripts. If a server side script accepts content from a locally modified client side script, the web development of that page is poorly sanitized with relation to security.

Server side coding[edit]

ASP (Microsoft proprietary)

ColdFusion (Adobe proprietary, formerly Macromedia, formerly Allaire)


Erlang, with Linux, Yaws, Mnesia, Erlang (LYME) solution stack

Groovy, using the Grails framework

Java, e.g. Java Servlets, JSP or WebObjects
Lotus Domino


Perl, e.g. Catalyst, Dancer or Mojolicious (all open source)

PHP (open source)

Ruby, e.g. Ruby on Rails (open source)


.NET and .NET MVC Frameworks (Microsoft proprietary)
The World Wide Web has become a major delivery platform for web development a variety of complex and sophisticated enterprise applications in several domains. In addition to their inherent multifaceted functionality, these web applications exhibit complex behavior and place some unique demands on their usability, performance, security and ability to grow and evolve. However, a vast majority of these applications continue to be developed in an ad-hoc way, contributing to problems of usability, maintainability, quality and reliability.(1)(2) While web development can benefit from established practices from other related disciplines, it has certain distinguishing characteristics that demand special considerations. In recent years of web development there have been some developments towards addressing these problems and requirements. As an emerging discipline, web engineering actively promotes systematic, disciplined and quantifiable approaches towards successful development of high-quality, ubiquitously usable web-based systems and applications.(3)(4) In particular, web engineering focuses on the methodologies, techniques and tools that are the foundation of web application development and which support their design, development, evolution, and evaluation. Web application development has certain characteristics that make it different from traditional software, information system, or computer application development.

Web engineering is multidisciplinary and encompasses contributions from diverse areas: systems analysis and design, software engineering, hypermedia/hypertext engineering, requirements engineering, human-computer interaction, user interface, information engineering, information indexing and retrieval, testing, modelling and simulation, project management, and graphic design and presentation. Web engineering is neither a clone, nor a subset of software engineering, although both involve programming and software development. While web engineering uses software engineering principles, web development encompasses new approaches, methodologies, tools, techniques, and guidelines to meet the unique requirements for web-based applications.

Client side + server side

Google Web Toolkit provides tools to create and maintain
complex JavaScript front-end applications in Java.
Dart provides tools to create and maintain complex JavaScript front-end applications as well as supporting server-side code in Dart (programming language).

Opa is a high-level language in which both the client and the server parts are implemented. The compiler then decides which parts run on the client (and are translated automatically to JavaScript) and which parts run on the server. The developer can tune those decisions with simple directives. (open source)

Pyjamas is a tool and framework for developing Ajax applications and Rich Internet Applications in Python.

Tersus is a platform for the development of rich web applications by visually defining user interface, client side behavior and server side processing. (open source)

However languages like Ruby and Python are often paired with database servers other than MySQL (the M in LAMP). Below are example of other databases currently in wide use on the web. For instance some developers prefer a LAPR (Linux/Apache/PostgreSQL/Ruby on Rails) setup for development.

Database technology

Apache Derby *
Firebird *
Microsoft SQL Server
MariaDB *
PostgreSQL *
SQLite *
Redis *
MongoDB *
CouchDB *
* open source / public domain

Practical web development


In practice, many web developers will have basic interdisciplinary skills / roles, including:
Graphic design / web design
Information architecture and copywriting/copyediting with web usability, accessibility and search engine optimization in mind

The above list is a simple website development hierarchy and can be extended to include all client side and server side aspects. It is still important to remember that web development is generally split up into client side coding, covering aspects such as the layout and design, and server side coding, which covers the website’s functionality and back-end systems.


Some more advanced web developers will also have these interdisciplinary skills / roles:

GUI (Graphic User Interface) design
Audio, Video and Animation processing and encoding (for web usage)

Flash Capabilities (animation, audio, video, scripting)
Web content management system Deployment and/or Content management infrastructure design, development and integration

Web applications development, integration and deployment

Web server stress testing (how much traffic can a web

server running a specific application endure before collapsing)

Web site security analysis & testing

Web site code optimization (which is an important aspect of search engine optimization)

Project management, QA and other aspects common to IT development

Security considerations[edit]

Web development takes into account many security considerations, such as data entry error checking through forms, filtering output, and encryption.[2] Malicious practices such as SQL injection can be executed by users with ill intent yet with only primitive knowledge of web development as a whole. Scripts can be used to exploit websites by granting unauthorized access to malicious users that try to collect information such as email addresses, passwords and protected content like credit card numbers.

Some of this is dependent on the server environment (most commonly Apache or Microsoft IIS) on which the scripting language, such as PHP, Ruby, Python, Perl or ASP is running, and therefore is not necessarily down to the web developer themselves to maintain. However, stringent testing of web applications before public release is encouraged to prevent such exploits from occurring. If some contact form is provided in a website it should include a captcha field in it which prevents computer programs from automatically filling forms and also mail spamming.

Keeping a web server safe from intrusion is often called Server Port Hardening. Many technologies come into play to keep information on the internet safe when it is transmitted from one location to another. For instance Secure Socket Layer Encryption (SSL) Certificates are issued by certificate authorities to help prevent internet fraud. Many developers often employ different forms of encryption when transmitting and storing sensitive information. A basic understanding of information technology security concerns is often part of a web developer’s knowledge.



The start of the web and web design
Evolution of web design
End of the first browser wars
Since the start of the 21st century the web has become more and more integrated into peoples lives, as this has happened the technology of the web has also moved on. There have also been significant changes in the way people use and access the web, and this has changed how sites are designed.
Modern browsers
Since the end of the browsers wars there have been new browsers coming onto the scene. Many of these are open source meaning that they tend to have faster development and are more supportive of new standards. The new options are considered by many to be better that Microsoft’s Internet Explorer.
New standards
The W3C has released new standards of HTML (HTML5) and CSS (CSS3), as well as new JavaScript API’s each as a new but individual standard. However, while the term HTML5 is only used to refer to the new version of HTML and some of the JavaScript API’s, it has become common to use it to refer to the entire suite of new standards (HTML5, CSS3 and JavaScript)
Tools and technologies

Web designers use a variety of different tools depending on what part of the production process they are involved in. These tools are updated over time by newer standards and software but the principles behind them remain the same. Web graphic designers use vector and raster graphics packages for creating web formatted imagery or design prototypes. Technologies used for creating websites include standardized mark-up, which could be hand-coded or generated by WYSIWYG editing software. There is also proprietary software based on plug-ins that bypasses the client’s browsers versions. These are often WYSIWYG but with the option of using the software’s scripting language. Search engine optimization tools may be used to check search engine ranking and suggest improvements.
Other tools web designers might use include mark up validators[7] and other testing tools for usability and accessibility to ensure their web sites meet web accessibility guidelines.[8]
Skills and techniques

Marketing and communication design
User experience design and interactive design
Users understanding the content of a website often depends on users understanding how the website works. This is part of the user experience design. User experience is related to layout, clear instructions and labeling on a website. How well a user understands how they can interact on a site may also depend on the interactive design of the site. If a user perceives the usefulness of that website, they are more likely to continue using it. Users who are skilled and well versed with website use may find a more unique, yet less intuitive or less user-friendly website interface useful nonetheless. However, users with less experience are less likely to see the advantages or usefulness of a less intuitive website interface. This drives the trend for a more universal user experience and ease of access to accommodate as many users as possible regardless of user skill.[10] Much of the user experience design and interactive design are considered in the user interface design.
Advanced interactive functions may require plug-ins if not advanced coding language skills. Choosing whether or not to use interactivity that requires plug-ins is a critical decision in user experience design. If the plug-in doesn’t come pre-installed with most browsers, there’s a risk that the user will have neither the know how, nor the patience to install a plug-in just to access the content. If the function requires advanced coding language skills, it may be too costly in either time or money to code compared to the amount of enhancement the function will add to the user experience. There’s also a risk that advanced interactivity may be incompatible with older browsers or hardware configurations. Publishing a function that doesn’t work reliably is potentially worse for the user experience than making no attempt. It depends on the target audience if it’s likely to be needed or worth any risks.
Page layout
Fluid layouts increased in popularity around 2000 as an alternative to HTML-table-based layouts and grid-based design in both page layout design principle, and in coding technique, but were very slow to be adopted.[note 1] This was due to considerations of screen reading devices and windows varying in sizes which designers have no control over. Accordingly, a design may be broken down into units (sidebars, content blocks, embedded advertising areas, navigation areas) that are sent to the browser and which will be fitted into the display window by the browser, as best it can. As the browser does recognize the details of the reader’s screen (window size, font size relative to window etc.) the browser can make user-specific layout adjustments to fluid layouts, but not fixed-width layouts. Although such a display may often change the relative position of major content units, sidebars may be displaced below body text rather than to the side of it. This is a more flexible display than a hard-coded grid-based layout that doesn’t fit the device window. In particular, the relative position of content blocks may change while leaving the content within the block unaffected. This also minimizes the user’s need to horizontally scroll the page.
Responsive Web Design is a newer approach, based on CSS3, and a deeper level of per-device specification within the page’s stylesheet through an enhanced use of the CSS @media pseudo-selector.
Most layouts on a site incorporate negative space to break the text up into paragraphs and also avoid center-aligned text.[12]
Motion graphics
Quality of code
Homepage design

[17] However practitioners into the 2000s were starting to find that a growing number of website traffic was bypassing the homepage, going directly to internal content pages through search engines, e-newsletters and RSS feeds.[18] Leading many practitioners to argue that homepages are less important than most people think.[19]
[22] Jared Spool argued in 2007 that a site’s homepage was actually the least important page on a website.[23]
In 2012 and 2013, carousels (also called ‘sliders’ and ‘rotating banners’) have become an extremely popular design element on homepages, often used to showcase featured or recent content in a confined space.[24]
[25] Many practitioners argue that carousels are an ineffective design element and hurt a website’s search engine optimisation and usability.[25]

There are two primary jobs involved in creating a website: the web designer and web developer, who often work closely together on a website.[28] The web designers are responsible for the visual aspect, which includes the layout, coloring and typography of a web page. Web designers will also have a working knowledge of using a variety of languages such as HTML, CSS, JavaScript, PHP and Flash to create a site, although the extent of their knowledge will differ from one web designer to another. Particularly in smaller organizations one person will need the necessary skills for designing and programming the full web page, while larger organizations may have a web designer responsible for the visual aspect alone.[29]
Further jobs, which under particular circumstances may become involved during the creation of a website include: