Web applications - intro

Content:

  1. Introduction
  2. Classification
  3. History
  4. Examples

Introduction:

Web applications are one of the most important application type, so it is obviously relevant to know about web applications.

I had not expected to ever write anything about web application as I am not a web application person, but I decided to do it anyway.

Classification:

Let us start with a classification of web application frameworks.

Note that this is just my classification - it is not an official classification.

The reality:

By definition all web applications really work like:

Web - reality

But not all web application frameworks has a logical model that matches this.

Component style:

A component style web application framework encapsulates everything related to browser versus server, the HTTP protocol etc. and present the combined client and server side as a single application.

A component style web application framework basically tries to make web applications look just like desktop application.

The building block of such a framework is some abstract components with some functionality but not splitting it in client side and server side functionality.

Web - component style

Well known component style web application frameworks are:

Traditional style:

A traditional style web application framework does not hide the real nature of a web application.

A traditional style web application framework operates with HTML and HTTP.

Web - traditional style

The largest group of traditional style web application frameworks are MVC web application frameworks.

For more info on MVC architecture read here.

In practice MVC take different forms.

Multiple controller classes forwarding to views:

CC+V

Generic controller class dispatching to multiple action classes forwarding to views:

CC+AC+V

Multiple controller classes each with multiple action methods forwarding to views:

CCAM+V

Generic front controller dispatching to multiple controller classes each with multiple action methods forwarding to views:

FCC+CCAM+V

Well known MVC web application frameworks are:

Client/server style:

A client/server style web application framework considers client side and server side two completely separate applications. The interface between them is a well-defined API typical RESTful web service using JSON/HTTP.

Web - client/server style

Server side is just regular web services.

Well known web service frameworks are:

Client side can be either HTML5 based or plugin based.

HTML5 does not really mean HTML version 5 but just the combination of HTML, CSS and JavaScript. HTML5 client apps use browser render engine and browser JavaScript engine.

HTML5 has become extremely popular today and several advanced JavaScript frameworks has been created to support this.

Well known JavaScript frameworks include:

Plugins use a browser plugin. That browser plugin get a rectangle on the screen from the browser and then the plugin manage that entirely.

Well known plugins are Java Applet, Adobe Flex and Microsoft SilverLight.

All the old plugin technologies are effectively dead and not supported by current browsers.

Note that maybe - just maybe - web assembly can revive plugins as technology.

History:

Evolution of Java web application frameworks:

Java web application frameworks history

Evolution of .NET web application frameworks:

.NET web application frameworks history

Examples:

Now time to show some examples.

All the examples will provide the same functionality:

This is obviously not a realistic web application, but it is enough to show how the different technologies work.

Also:

And very primitive HTML with no CSS and no JavaScript (written by me).

So both client side and server side would be more complex for a real world web application. But the purpose is to illustrate how various web application frameworks work not creating a real world web application.

Disclaimer: I have never used most of these frameworks, so even though I have tested that the code is working, then I cannot guarantee that the code is good code aka following idioms and best practices for the particular framework.

Examples:

Note that these articles are only overviews intended to provide a high level understanding of the technologies - they are not detailed enough to be considered tutorials. Anyone wanting to learn these technologies well enough to understand all their capabilities and create web applications using them will need much more in depth material.

Article history:

Version Date Description
1.0 December 3rd 2022 Initial version

Other articles:

See list of all articles here

Comments:

Please send comments to Arne Vajhøj