Basic Architecture

Motivation

The idea of seaBreeze is to provide an easy to use Web-Application technology for VisualWorks users. It combines the Components feature and Continuations feature of Seaside with the ease of use of the VisualWorks UIPainter. Seaside provides a very solid web framework but it is cumbersome to use in some cases. Describing the user interface in Code in Seaside can produce complecated code. Like in VisualWorks desktop applications, the user interface can be configured in the WebPainter in seaBreeze.

Seaside supports keeping the state of an application linked to the back-button in the browser. Going back in the browser and clicking a link there should have the same result as click the link in first place. While it is necessary to manually tell Seaside which state to store, seaBreeze will automatically store the state of the website. It will also automatically update the parts of a website that have changed during a click on the website.

Overview of a seaBreeze Application

A seaBreeze application can be created using the seaBreeze Browser, a website that lists all seaBreeze applications. A new seaBreeze Application has the following components

Namespace

The namespace of all classes that belong to the application

Application Description

The application description contains all the administrative Seaside-related information required for the application:

  • name
  • main component
  • message catalog name

File Library

The file library contains all the files that are used by the application's website like images, Javascript or CSS files.

Application Model

The application model contains the description of the user interface and implements the logic of the user interface. They are Seaside components but share the same idea as VisualWorks application models.

seaBreeze Elements

The User Interface is described using Elements. Basically there're elements for all tags that HTML supports, like div, p or h1. In seaBreeze each element is an object and knows how to work. Elements also know which elements they can contain and where they can be contained, making it easier to avoid mistakes. The hierarchy of elements is serialized into the #windowSpec method of an application model. The hierarchy of elements can be edited in the WebPainter together with the properties of an element.

 

 

Copyright 2013 by Georg Heeg eK, released under MIT License