VDOM Technology - VDOMBoxGroup/vdomserver1.3 GitHub Wiki

VDOM

VDOM (Visual Dynamic Object Model) is a technology invented by Nicolas Korboulewsky in 1997 and patented in August 1999 to be moved to Open Source in 2006 and publicaly published in 2016. The main goal of this technology was to bring to the industry all the main concept of Component oriented design for web based application but with a general extension to any other plateform like Desktop application as well as mobile. The main idear was to save time by encapsulating UI Components into reusable one. This technology is the root part of 2 mores : E²VDOM (Enhanced Event VDOM) to add an event system to the component and WHOLE (Web Hyper Object Linking & Embedding) that define a generic API System for VDOM Based applications.

The implementation of this technology run in an application server (the source code is given here).

Principles

VDOM Technology is based on Software components, it consist of visuals components (Class with a rendering method) that encapsulate their own logic define by a set of attributes statically define during the design process if they are part of the general UI or dynamically evaluated by using a description language as XML.

The main job of the application server is to answer to a request by rendering all this components in a target technology (ex HTML) streamed to the client.

Each of the component support events trigged by the user & sent to the event engine of their direct container (or at least this one which difine the rendering technology they use) this is explicitely defined in E²VDOM.

VDOM is not define by any language and virtually any language can be use to implement the application server that implement VDOM technology. But in the case of this implementation we are using Python.

Each software component are stored as an XML file used by the VDOM Application server to rendre the output stream. Even if it's possible to build this file by Hand a software (VDOM Type Editor) is used to simplify the work :

VDOM Type Editor

This file is kind of equivalent of Class in OOP, all this files are registered in the Application Server and used to create the instance of the component during VDOM Structure Compilation process.

VDOM Components - Definition

The implementation of VDOM Technology had 2 majors steps, the first one that came with the V1 of the VDOM Application server made in 1998 and a more advanced version with the actual V2 developped from 2007.

The V1 provided mainly the encapsulation while the V2 enhance it with :

  • Semantic separation of the components in 2 sub-types Terminal Component or Container
  • Multilingual native support
  • Self-consistant description of the component in a single XML file
  • True capability to support multi client technology while rendering according to the container (HTML, Flash, PDF, etc, ...)
  • Dynamic creation of components at Runtime
  • VDOM XML definition for serialized version of VDOM Components.

VDOM Components - Container Type

Liste des composants VDOM de Type Top Level Container au 14/07/2013

VDOM Type HTML Icon

HTML Container

This component is used to render HTML pages

VDOM Type DB Schema Icon

Db Schema

This component represent a relational DB

VDOM Type Desktop Application Icon

Desktop application

This component is the container of a VDOM Desktop Application. This application is run by the VDOM Desktop Virtual Application

The terminal components of this container are Desktop Form or Desktop Script

VDOM Type Search Index Icon.png

Full Text Index

This is the container of the text indexing specific DB.

VDOM Type Licence Application Icon.png

License Container

This component manage the licensing system with the PIS (Partner Information System). It's a top level container but it contain no other component.

VDOM Type PrintToWeb Icon.png

PrintToWeb Container

This component store PrintToWeb application.

VDOM Type VDOM Package Icon.png

VDOM Package

La technologie VDOM autorise la création de composants composites par assemblage de composants terminaux dans un container spécial nommé VDOM Class. Tous les containers VDOM Class sont regroupés dans un Top Level Container nommé VDOM Package.


WebDAV Container

This component

VDOM Type XML Icon.png

XML Container

Ce composant permet d’exposer une structure XML via l’accès à une URL. Il ne contient aucun autre composant.

⚠️ **GitHub.com Fallback** ⚠️