becontent
TRANSCRIPT
beContentA META-FRAMEWORK FOR WEB APPLICATIONS
beContent – cos’è (1)
A meta-framework for web applications
beContent is a new way of designing data-intensive web applications. It is not a Content Management System, it is not an emulation of PHP Nuke, it is not similar to Joomla. beContent is a Model Driven framework which allows you to design your own data and to generate the application around it.
beContent is based on sound and formal foundations which are the result of the work which has been carried out by the he MDD/Software Engineering and Architecture group at the University of L'Aquila , Italy.
which are the result of the work which has been carried out by the he MDD/Software Engineering and Architecture group at the University of L'Aquila , Italy. Eclipse beContent is endowed with a modeling platform implemented over Eclipse/EMF and which allows to specify a complex web application by means of simple coordinated models and to generate the corresponding application.
2
Installazione di beContentSVILUPPO GUIDATO DI UNA SEMPLICE APPLICAZIONE WEB
3
Installare beContent (1)
La prima schermata
dell’installazione di
beContent ci fornisce un
riassunto sui dati necessari per
completare correttamente
l’istallazione
4
Installare beContent (2)
Si devono fornire i dati
per permettere a
beContent di
connetterni al DB
In particolare:
Username
Password
Nome DB
N.B. il DB deve essere già presente sul nostro DBMS
Host
Prefefisso
5
Installare beContent (3)
In questa fase (l’ultima)
sono richieste le
informazioni di
amministrazione
Le informazioni
importanti da ricordare
per il primo accesso
sono:
Username
Password
6
Sviluppo dell’applicazione (1)
Organizzazione delle cartelle
Contents
Contiene gli script necessari per lo sviluppo della nostra apps
Include
Contiene gli script del core
Skins
Contiene i file grafici
Se non si è interessati ad uno sviluppo del core per iniziare basta creare
una nostra cartella in Contents, per il nostro dominio e copiare il nostro
tema grafico in Skins
7
Sviluppo dell’applicazione (2)
Organizzazione della cartella SKINS
THEME
CSS
DTML
EN
IT
IMG
JS
8
Sviluppo dell’applicazione (3)
Organizzazione della cartella DTML
DTML
EN
IT
Widget
Utilizzata per inserire eventuali widget grafici condivisi all’interno della nostra app
Single, Multiple
Cartelle utilizzate da beContent per la rappresentazione grafica delle nostre entity
9
Sviluppo di un temaLINEE GUIDA PER LO SVILUPPO DEL NOSTRO TEMA
10
Sviluppo del tema (2)
Dobbiamo suddividere il codice html in più file per permettere a beContent di costruire automaticamente la nostra pagina
Frame-public
File principale del tema
Frame-public-head
Usato per l’inclusione del tag html <head>
Heder
Utilizzato per includere la sezione superiore delle nostre pagine web
Menu
Utilizzato da beContent per inserire il menu
Footer
Utilizzato per includere la sezione inferiore delle nostre pagine web
11
Sviluppo del tema - InitGraphic (3)
Oggetto singleton
Deve conoscere la skin su cui
deve lavorare
fornisce la costruzione automatica
della struttura del tema grafico
In particolare assegna al tema
grafico le informazioni del:
frame-public-head
header
menu
footer
12
Sviluppo dell’applicazioneLINEE GUIDA PER LO SVILUPPO DELLA NOSTRA APPLICAZIONE
13
Sviluppo dell’applicazione (1)
beContent ci consente di sviluppare applicazioni web seguendo
due linee di sviluppo
Se non hai necessità di modellare un dominio complesso allora utilizza le
page per descrivere la tua applicazione
Se hai la necessità di modellare un dominio allora scrivi le tue classi in
contents/«tua_app»
In questo caso automaticamente creerà un template standard per le tue
entity che può essere modificato a tuo piacimento
I template creati li troverai nella cartella theme/single theme/multiple
14
Sviluppo dell’applicazione (2)
Se non hai necessità di modellare un dominio complesso allora
utilizza le page descrivere la tua applicazione
Nel back-end beContent ti permette di
Inserire immagini
Scrivere il testo
Utilizza i file skins/theme/dtml/it/single/sys_page_single
skins/theme/dtml/it/multiple/sys_page_multplie per realizzare la grafica
delle pagine singole e multiple
Richiama le tue pagine tramite Content($pageEntity) in altri script
15
Sviluppo dell’applicazione (2)
In beContent per lavorare con le entity salvate sul DB si deve
utilizzare Content
beContent differenzia i risultati di Content in due categorie:
SINGLE: ovvero quando il risultato del Content è in riferimento all’istanza
di una sola entity
MULTIPLE: quando il risultato del Content fornisce all’utente più istanze di
entity uguali
16
Sviluppo dell’applicazione (3)
Content
Content è la classe di sistema che ti permette di recuperare le
informazioni memorizzate delle entity nel DB
Offre un’ampia interfaccia:
get(): restituisce l’html del template
forceSingle(), forceMultiple(): forzano l’utilizzo del template grafico dell’entity
setFilter(<campo da filtrare>,<valore>): permette di indicare il campo o i
campi sui quali eseguire il filtro
apply(«skin», [«label»]): consente di applicare l’html del template dell’entity in
una Skin differente
17
Sviluppo dell’applicazione (4)
Skin
E’ la classe di sistema che permette di selezionare il file html principale
per la nostra applicazione
Sull’oggetto skin verranno applicati i vari contents e le varie skinlet
I principali metodi da utilizzare:
close(): mostra a schermo l’html prodotto
setContent(«label», «skinlet/content->get()»): indica al motore di template il
valore da inserire nel placeholder
18
Sviluppo dell’applicazione (5)
Skinlet
Indica il particolare template grafico del tema desiderato
I template single e multiple vengono selezionati in automatico, non occorre
specificarli con delle skinlet a meno di particolari esigenze
Fornisce i seguenti metodi:
setContent(«label», «skinlet/content->get()»)
get()
Differisce da skin dal fatto che non fornisce il metodo close()
19
Motore di TemplateLINEE GUIDA PER UTILIZZARE IL MOTORE DI TEMPLATE
20
Motore di template (1)
beContent utilizza al suo interno il famoso motore di template php
smarty template engine (www.smarty.net)
Per utilizzare il motore di template basta affidarsi alla
documentazione di smarty
Non serve altro
21
Motore di template (2)
beContent provvede ad assegnare al template richiesto l’istanza
che Content crea
Viene assegnato al template sotto la varibile:
$instance nel caso di un’instanza single
$instances nel primo di un’istanza multiple
22
Motore di template - JOIN (3)
beContent assegna al
template un oggetto
risultalto di istanze di
entity corrispondenti al
risultato del Content
Per utilizzare il risultato
bisogna fare attenzione
Bisigna accedere
all’entity correlata
attraverso
l’identificativo di
relazione indicato
precedentemente
23
Motore di template - APPLY (4)
Attraverso il metodo
apply beContent
fornisce un meccanisco
per individuare
differenti apply sullo
stesso template
L’etichetta scelta lato
PHP deve essere usata
come prefisso nel
template utilizzando
sempre
$instances/$isntance a
seconda dei casi
24
Grazie
25