SlideShare a Scribd company logo
beContent
A 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
3

Installazione di beContent
SVILUPPO GUIDATO DI UNA SEMPLICE APPLICAZIONE WEB
Installare beContent (1)

4


La prima schermata
dell’installazione di
beContent ci fornisce un
riassunto sui dati necessari per
completare correttamente
l’istallazione
Installare beContent (2)

5


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
Installare beContent (3)

6


In questa fase (l’ultima)
sono richieste le
informazioni di
amministrazione



Le informazioni
importanti da ricordare
per il primo accesso
sono:


Username



Password
Sviluppo dell’applicazione (1)


Organizzazione delle cartelle


Contents




Include




Contiene gli script necessari per lo sviluppo della nostra apps

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





IMG



JS

EN
IT

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
10

Sviluppo di un tema
LINEE GUIDA PER LO SVILUPPO DEL NOSTRO TEMA
Sviluppo del tema (2)


Dobbiamo suddividere il codice html in più file per permettere a
beContent di costruire automaticamente la nostra pagina


Frame-public




Frame-public-head




Utilizzato per includere la sezione superiore delle nostre pagine web

Menu




Usato per l’inclusione del tag html <head>

Heder




File principale del tema

Utilizzato da beContent per inserire il menu

Footer


Utilizzato per includere la sezione inferiore delle nostre pagine web

11
Sviluppo del tema - InitGraphic (3)

12



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
13

Sviluppo dell’applicazione
LINEE GUIDA PER LO SVILUPPO DELLA NOSTRA APPLICAZIONE
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
20

Motore di Template
LINEE GUIDA PER UTILIZZARE IL MOTORE DI TEMPLATE
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
25

Grazie

More Related Content

Similar to beContent

Introduzione ad angular 7/8
Introduzione ad angular 7/8Introduzione ad angular 7/8
Introduzione ad angular 7/8
Valerio Radice
 
Corso dot netnuke
Corso dot netnukeCorso dot netnuke
Corso dot netnuke
Ercole Palmeri
 
Corso dot netnuke
Corso dot netnukeCorso dot netnuke
Corso dot netnuke
Ercole Palmeri
 
LIT_2.pdf
LIT_2.pdfLIT_2.pdf
LIT_2.pdf
EleonoraRocchi1
 
DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)
Alessandro Giorgetti
 
Laravel Framework PHP
Laravel Framework PHPLaravel Framework PHP
Laravel Framework PHP
Beniamino Ferrari
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
GrUSP
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Alessandro Nadalin
 
Zend Framework Workshop Parte1
Zend Framework Workshop Parte1Zend Framework Workshop Parte1
Zend Framework Workshop Parte1massimiliano.wosz
 
Giovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsGiovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more things
KnowCamp
 
Sviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto DigitaleSviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto Digitale
lostrettodigitale
 
Sviluppare app native per iOS
Sviluppare app native per iOSSviluppare app native per iOS
Sviluppare app native per iOS
Gaspare Novara
 
Jquery mobile per App
Jquery mobile per AppJquery mobile per App
Jquery mobile per App
Salvatore Paone
 
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...
Aruba S.p.A.
 
XeDotNet - Source Generator
XeDotNet - Source GeneratorXeDotNet - Source Generator
XeDotNet - Source Generator
Marco Bortolin
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
dotnetcode
 
Con Aruba, a lezione di cloud #lezione 13 - parte 2: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 2: 'Cloud Object Storage: c...Con Aruba, a lezione di cloud #lezione 13 - parte 2: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 2: 'Cloud Object Storage: c...
Aruba S.p.A.
 
ASP.NET
ASP.NETASP.NET
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store appsDotNetCampus
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
GiacomoZorzin
 

Similar to beContent (20)

Introduzione ad angular 7/8
Introduzione ad angular 7/8Introduzione ad angular 7/8
Introduzione ad angular 7/8
 
Corso dot netnuke
Corso dot netnukeCorso dot netnuke
Corso dot netnuke
 
Corso dot netnuke
Corso dot netnukeCorso dot netnuke
Corso dot netnuke
 
LIT_2.pdf
LIT_2.pdfLIT_2.pdf
LIT_2.pdf
 
DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)
 
Laravel Framework PHP
Laravel Framework PHPLaravel Framework PHP
Laravel Framework PHP
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
 
Zend Framework Workshop Parte1
Zend Framework Workshop Parte1Zend Framework Workshop Parte1
Zend Framework Workshop Parte1
 
Giovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsGiovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more things
 
Sviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto DigitaleSviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto Digitale
 
Sviluppare app native per iOS
Sviluppare app native per iOSSviluppare app native per iOS
Sviluppare app native per iOS
 
Jquery mobile per App
Jquery mobile per AppJquery mobile per App
Jquery mobile per App
 
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...
 
XeDotNet - Source Generator
XeDotNet - Source GeneratorXeDotNet - Source Generator
XeDotNet - Source Generator
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
 
Con Aruba, a lezione di cloud #lezione 13 - parte 2: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 2: 'Cloud Object Storage: c...Con Aruba, a lezione di cloud #lezione 13 - parte 2: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 2: 'Cloud Object Storage: c...
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store apps
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 

beContent

  • 2. 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
  • 3. 3 Installazione di beContent SVILUPPO GUIDATO DI UNA SEMPLICE APPLICAZIONE WEB
  • 4. Installare beContent (1) 4  La prima schermata dell’installazione di beContent ci fornisce un riassunto sui dati necessari per completare correttamente l’istallazione
  • 5. Installare beContent (2) 5  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
  • 6. Installare beContent (3) 6  In questa fase (l’ultima) sono richieste le informazioni di amministrazione  Le informazioni importanti da ricordare per il primo accesso sono:  Username  Password
  • 7. Sviluppo dell’applicazione (1)  Organizzazione delle cartelle  Contents   Include   Contiene gli script necessari per lo sviluppo della nostra apps 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
  • 8. Sviluppo dell’applicazione (2)  Organizzazione della cartella SKINS  THEME  CSS  DTML    IMG  JS EN IT 8
  • 9. 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
  • 10. 10 Sviluppo di un tema LINEE GUIDA PER LO SVILUPPO DEL NOSTRO TEMA
  • 11. Sviluppo del tema (2)  Dobbiamo suddividere il codice html in più file per permettere a beContent di costruire automaticamente la nostra pagina  Frame-public   Frame-public-head   Utilizzato per includere la sezione superiore delle nostre pagine web Menu   Usato per l’inclusione del tag html <head> Heder   File principale del tema Utilizzato da beContent per inserire il menu Footer  Utilizzato per includere la sezione inferiore delle nostre pagine web 11
  • 12. Sviluppo del tema - InitGraphic (3) 12  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
  • 13. 13 Sviluppo dell’applicazione LINEE GUIDA PER LO SVILUPPO DELLA NOSTRA APPLICAZIONE
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 20 Motore di Template LINEE GUIDA PER UTILIZZARE IL MOTORE DI TEMPLATE
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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