ARE: Ada Rendering Engine

Stefano Penge, Maurizio Mazzoneschi, Vito Modena
pp. 99-100 - download

Abstract

E' ormai pratica diffusa, nello sviluppo di applicazioni web, l'utilizzo di template e di potenti template engine per automatizzare la generazione dei contenuti da presentare all'utente. Tuttavia a volte la potenza di tali engine è ottenuta mescolando logica e interfaccia, introducendo linguaggi diversi da quelli di descrizione della pagina, o addirittura inventando nuovi linguaggi dedicati.
ARE (ADA Rendering Engine) è pensato per gestire l'intero flusso di creazione del contenuto HTML/XHTML dinamico, la selezione del corretto template, CSS, JavaScript e la produzione dell'output separando completamente logica e interfaccia. I templates utilizzati sono puro HTML senza parti in altri linguaggi, e possono quindi essere gestiti e visualizzati autonomamente. Il codice HTML generato è uniforme e parametrizzato.
E' composto da due moduli, CORE (Common Output Rendering Engine) e ALE (ADA Layout Engine).
Il primo (CORE) viene utilizzato per la generazione OO degli elementi del DOM ed è pensato per aiutare lo sviluppatore nella produzione di codice valido rispetto al DTD utilizzato. CORE genera automaticamente gli elementi del DOM in base al DTD impostato nella configurazione
Il secondo (ALE) viene utilizzato come template engine per selezionare automaticamente in base ad alcuni parametri (modulo, profilo utente, tipologia del nodo, del corso, preferenze di installazione) il template HTML, i CSS e i file JavaScript appropriati. ALE permette di usare templates di default e microtemplates ricorsivi per semplificare il lavoro del grafico.
I due moduli possono in ogni caso essere utilizzati indipendentemente l'uno dall'altro. E' possibile generare e renderizzare una pagina HTML utilizzando solo CORE oppure inviare gli oggetti CORE al template engine ALE che provvede a renderizzare la pagina HTML. Viceversa è possibile generare HTML senza utilizzare CORE ed inviarlo al template engine ALE
CORE è alla prima release ed è già utilizzato all'interno dei progetti ADA e MAKO.
Tra gli sviluppi previsti: il completamento della libreria per diverse DTD; la creazione di classi di livello superiori che automatizzino compiti ripetitivi (creazione di form, tabelle, etc).

keywords: Template engine, Model View Controller, Personal Learning Environment, Personal Interface

 

back to Table of Contents

News