Web development



Intro

  • Web development is a broad term for the work involved in developing a web site for the Internet (World Wide Web) or an intranet (a private network).
  • Web development can range from developing the simplest static single page of plain text to the most complex web-based internet applications, electronic businesses, and social network services.
  • A more comprehensive list of tasks to which web development commonly refers, may include web design, web content development, client liaison, client-side/server-side scripting, web server and network security configuration, and e-commerce development.
  • Among web professionals, "web development" usually refers to the main non-design aspects of building web sites: writing markup and coding.
  • Most recently Web development has come to mean the creation of content management systems or CMS. These CMS can be made from scratch, proprietary (such as Open Text) or open source (such as Drupal).
  • In broad terms the CMS acts as middleware between the database and the user through the browser. A principle benefit of a CMS is that it allows non-technical people to make changes to their Web site without having technical knowledge.
  • For larger organizations and businesses, web development teams can consist of hundreds of people (web developers) and follow standard methods like Agile methodologies while developing websites.
  • Smaller organizations may only require a single permanent or contracting developer, or secondary assignment to related job positions such as a graphic designer and/or information systems technician.

Typical areas

Web Development can be split into many areas and a typical and basic web development hierarchy might consist of:

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.
  • AngularJS, BackboneJS, EmberJS and ReactJS are client-side MVC technologies introduced for building single page application and offline applications for both desktop and mobile. They make the application more modular and also help dramatically increase development speed.
  • 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
  • Scalable Vector Graphics (SVG), WebGL and Canvas deliver 2D and 3D capabilities, often used through JavaScript libraries; D3js (2D datavisualisations) and threeJS (3D) are popular examples.

Server-side coding

  • ASP (Microsoft proprietary)
  • ASP.NET and ASP.NET MVC Frameworks (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
  • 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)
  • Scala, e.g. Play Framework, Lift Framework (open source)
  • SSJS Server-Side JavaScript, e.g. Aptana Jaxer, Mozilla Rhino
  • V8 (JavaScript Engine) - Node.js or io.js

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)

Database technology

  • Apache Derby 
  • CouchDB
  • FileMaker
  • Firebird 
  • Hadoop
  • IBM DB2
  • IBM Notes
  • MariaDB 
  • Mark Logic
  • Microsoft SQL Server
  • MongoDB 
  • MySQL 
  • Oracle
  • PostgreSQL 
  • Redis 
  • SQLite 
  • Sybase
  • WebDNA

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

Security considerations

  • Web development takes into account many security considerations, such as data entry error checking through forms, filtering output, and encryption.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.


Comments