Website Development

Client side coding:

Ajax Asynchronous JavaScript provides new methods of using JavaScript, and other languages to improve the user experience.

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

JavaScript JavaScript is a ubiquitous client side platform for creating and delivering rich web applications that can also run across a wide variety of devices. It is a dialect of the scripting language ECMAScript.

jQuery Cross-browser JavaScript library designed to simplify and speed up the client-side scripting of HTML.
Microsoft Silverlight Microsoft’s browser plugin that enables animation, vector graphics and high-definition video playback, programmed using XAML and .NET programming languages.

HTML5 and CSS3 Latest HTML proposed standard combined with the latest proposed standard for CSS natively supports much of the client-side functionality provided by other frameworks such as Flash and Silverlight

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)

CGI

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

Groovy, using the Grails framework

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

Node.js

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

PHP (open source)

Python, e.g. Django (web framework) (open source)
Ruby, e.g. Ruby on Rails (open source)

SSJS Server-Side JavaScript, e.g. Aptana Jaxer, Mozilla Rhino

.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

FileMaker
Apache Derby *
IBM DB2
Firebird *
Microsoft SQL Server
MySQL *
MariaDB *
Oracle
PostgreSQL *
SQLite *
Sybase
WebDNA
Redis *
MongoDB *
CouchDB *
Mark_Logic
* open source / public domain

Practical web development

Basic

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.

Advanced[edit]

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.

Because new security holes are found in web applications even after testing and launch, security patch updates are frequent for widely used applications. It is often the job of web developers to keep applications up to date as security patches are released and new security concerns are discovered.

———————————————————————————————————————-

The start of the web and web design
In 1989, whilst working at CERN Tim Berners-Lee proposed to create a global hypertext project, which later became known as the World Wide Web. Throughout 1991 to 1993 the World Wide Web was born. Text only pages could be viewed using a simple line-mode browser.[2] In 1993 Marc Andreessen and Eric Bina, created the Mosaic browser. At the time there were multiple browsers however the majority of them were Unix-based and were naturally text heavy. There had been no integrated approach to graphical design elements such as images or sounds. The Mosaic browser broke this mould.[3] The W3C was created in October 1994, to “lead the World Wide Web to its full potential by developing common protocols that promote its evolution and ensure its interoperability.”[4] This discouraged any one company from monopolizing a propriety browser and programming language, which could have altered the effect of the World Wide Web as a whole. The W3C continues to set standards, which can today be seen with JavaScript. In 1994 Andreessen formed Communications corp. That later became known as Netscape Communications the Netscape 0.9 browser. Netscape created its own HTML tags without regards to the traditional standards process. For example Netscape 1.1 included tags for changing background colours and formatting text with tables on web pages. Throughout 1996 to 1999 the browser wars began, as Microsoft and Netscape fought for ultimate browser dominance. During this time there were many new technologies in the field, notably Cascading Style Sheets, JavaScript, and Dynamic HTML. On a whole the browser competition did lead to many positive creations and helped web design evolve at a rapid pace.[5]
Evolution of web design
In 1996, Microsoft released its first competitive browser, which was complete with its own features and tags. It was also the first browser to support style sheets, which at the time was seen as an obscure authoring technique.[5] The HTML markup for tables was originally intended for displaying tabular data. However designers quickly realized the potential of using HTML tables for creating the complex, multi-column layouts that were otherwise not possible. At this time, as design and good aesthetics seemed to take precedence over good mark-up structure, and little attention was paid to semantics and web accessibility. HTML sites were limited in their design options, even more so with earlier versions of HTML. To create complex designs, many web designers had to use complicated table structures or even use blank spacer .GIF images to stop empty table cells from collapsing.[6] CSS was introduced in December 1996 by the W3C to support presentation and layout; this allowed HTML code to be semantic rather than both semantic and presentational, and improved web accessibility, see tableless web design.
In 1996, Flash (originally known as FutureSplash) was developed. At the time, the Flash content development tool was relatively simple compared to now, using basic layout and drawing tools, a limited precursor to ActionScript, and a timeline, but it enabled web designers to go beyond the point of HTML, animated GIFs and JavaScript. However, because Flash required a plug-in, many web developers avoided using it for fear of limiting their market share from lack of compatibility. Instead, designers reverted to gif animations (if they didn’t forego using motion graphics altogether) and JavaScript for widgets. But the benefits of Flash made it popular enough among specific target markets to eventually work its way to the vast majority of browsers, and powerful enough to be used to develop entire sites.[6]
End of the first browser wars
During 1998 Netscape released Netscape Communicator code under an open source licence, enabling thousands of developers to participate in improving the software. However, they decided to stop and start from the beginning, which guided the development of the open source browser and soon expanded to a complete application platform.[5] The Web Standards Project was formed, and promoted browser compliance with HTML and CSS standards by creating Acid1, Acid2, and Acid3 tests. 2000 was a big year for Microsoft. Internet Explorer had been released for Mac, this was significant as it was the first browser that fully supported HTML 4.01 and CSS 1, raising the bar in terms of standards compliance. It was also the first browser to fully support the PNG image format.[5] During this time Netscape was sold to AOL and this was seen as Netscape’s official loss to Microsoft in the browser wars.[5]
2001—2012
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
Marketing and communication design on a website may identify what works for its target market. This can be an age group or particular strand of culture; thus the designer may understand the trends of its audience. Designers may also understand the type of website they are designing, meaning, for example, that (B2B) business-to-business website design considerations might differ greatly from a consumer targeted website such as a retail or entertainment website. Careful consideration might be made to ensure that the aesthetics or overall design of a site do not clash with the clarity and accuracy of the content or the ease of web navigation,[9] especially on a B2B website. Designers may also consider the reputation of the owner or business the site is representing to make sure they are portrayed favourably.
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
Part of the user interface design is affected by the quality of the page layout. For example, a designer may consider if the site’s page layout should remain consistent on different pages when designing the layout. Page pixel width may also be considered vital for aligning objects in the layout design. The most popular fixed-width websites generally have the same set width to match the current most popular browser window, at the current most popular screen resolution, on the current most popular monitor size. Most pages are also center-aligned for concerns of aesthetics on larger screens.[11]
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.
Typography
Web designers may choose to limit the variety of website typefaces to only a few which are of a similar style, instead of using a wide range of typefaces or type styles. Most browsers recognize a specific number of safe fonts, which designers mainly use in order to avoid complications.
Font downloading was later included in the CSS3 fonts module and has since been implemented in Safari 3.1, Opera 10 and Mozilla Firefox 3.5. This has subsequently increased interest in web typography, as well as the usage of font downloading.
Most layouts on a site incorporate negative space to break the text up into paragraphs and also avoid center-aligned text.[12]
Motion graphics
The page layout and user interface may also be affected by the use of motion graphics. The choice of whether or not to use motion graphics may depend on the target market for the website. Motion graphics may be expected or at least better received with an entertainment-oriented website. However, a website target audience with a more serious or formal interest (such as business, community, or government) might find animations unnecessary and distracting if only for entertainment or decoration purposes. This doesn’t mean that more serious content couldn’t be enhanced with animated or video presentations that is relevant to the content. In either case, motion graphic design may make the difference between more effective visuals or distracting visuals.
Quality of code
Website designers may consider it to be good practice to conform to standards. This is usually done via a description specifying what the element is doing. Failure to conform to standards may not make a website unusable or error prone, but standards can relate to the correct layout of pages for readability as well making sure coded elements are closed appropriately. This includes errors in code, more organized layout for code, and making sure IDs and classes are identified properly. Poorly-coded pages are sometimes colloquially called tag soup. Validating via W3C[7] can only be done when a correct DOCTYPE declaration is made, which is used to highlight errors in code. The system identifies the errors and areas that do not conform to web design standards. This information can then be corrected by the user.[13]
Homepage design

Usability experts, including Jakob Nielsen and Kyle Soucy, have often emphasised homepage design for website success and asserted that the homepage is the most important page on a website.[14]
[15]
[16]
[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]
[20]
[21]
[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]
[26]
[27]
Occupations

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:
Graphic designers to create visuals for the site such as logos, layouts and buttons
Internet marketing specialists to help maintain web presence through strategic solutions on targeting viewers to the site, by using marketing and promotional techniques on the internet
SEO writers to research and recommend the correct words to be incorporated into a particular website and make the website more accessible and found on numerous search engines
Internet copywriter to create the written content of the page to appeal to the targeted viewers of the site[1]
User experience (UX) designer incorporates aspects of user focused design considerations which include information architecture, user centered design, user testing, interaction design, and occasionally visual design.