This presentation is about a lecture I gave within the "Software Modeling" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Community Tour 2010 - CMS Edition
DotNetMarche
Slides relative alla seconda sessione su Orchard: principi di base sulla customizzazione di temi e layout.
This presentation is about a lecture I gave within the "Software Modeling" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Community Tour 2010 - CMS Edition
DotNetMarche
Slides relative alla seconda sessione su Orchard: principi di base sulla customizzazione di temi e layout.
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriGrUSP
Joomla! è un CMS ritenuto troppo spesso una soluzione esclusivamente for dummies : in questo intervento cercheremo di sfatare questa convinzione andando ad analizzare le feature che la versione 1.5 ha “introdotto” a favore degli sviluppatori.
Verranno proposte, per ogni capitolo del talk, slide introduttive e di approfondimento, concludendo con un case study per ogni tematica proposta.
Obiettivo del talk sarà quello di comprendere quanto Joomla! sia una soluzione che offre grandi vantaggi fondendo abbattimento di costi, elevata relazionabilità con il cliente finale e buona estendibilità per le esigenze dello sviluppatore.
Un breve talk per introdurre ad alcune funzioni native di Joomla! ( e del suo framework ) che ci permettono di riconsiderare il CMS a liverllo di sviluppo.
Come sviluppare app native per iOS a partire dal suo IDE di sviluppo Xcode per proseguire con un tutorial completo per realizzare una piccola rubrica di contatti.
jQuery Mobile è un framework per la creazione di applicazioni web mobile. Prima di iniziare a studiare jQuery Mobile, si dovrebbe avere una conoscenza di base di: HTML, CSS, jQuery. jQuery Mobile è un framework web ottimizzato per un uso touch per la creazione di applicazioni web mobile e funziona su tutti i sistemi più diffusi...
Evento XeDotNet sui Source Generators, una recente funzionalità contenuta nell’SDK del compilatore .NET ("Roslyn”), che consentono agli sviluppatori C# di ispezionare il codice mentre viene compilato e generare al volo nuovi file sorgente C# aggiunti alla compilazione stessa. Vedremo come usarli e quanto possono essere utili nelle nostre applicazioni
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriGrUSP
Joomla! è un CMS ritenuto troppo spesso una soluzione esclusivamente for dummies : in questo intervento cercheremo di sfatare questa convinzione andando ad analizzare le feature che la versione 1.5 ha “introdotto” a favore degli sviluppatori.
Verranno proposte, per ogni capitolo del talk, slide introduttive e di approfondimento, concludendo con un case study per ogni tematica proposta.
Obiettivo del talk sarà quello di comprendere quanto Joomla! sia una soluzione che offre grandi vantaggi fondendo abbattimento di costi, elevata relazionabilità con il cliente finale e buona estendibilità per le esigenze dello sviluppatore.
Un breve talk per introdurre ad alcune funzioni native di Joomla! ( e del suo framework ) che ci permettono di riconsiderare il CMS a liverllo di sviluppo.
Come sviluppare app native per iOS a partire dal suo IDE di sviluppo Xcode per proseguire con un tutorial completo per realizzare una piccola rubrica di contatti.
jQuery Mobile è un framework per la creazione di applicazioni web mobile. Prima di iniziare a studiare jQuery Mobile, si dovrebbe avere una conoscenza di base di: HTML, CSS, jQuery. jQuery Mobile è un framework web ottimizzato per un uso touch per la creazione di applicazioni web mobile e funziona su tutti i sistemi più diffusi...
Evento XeDotNet sui Source Generators, una recente funzionalità contenuta nell’SDK del compilatore .NET ("Roslyn”), che consentono agli sviluppatori C# di ispezionare il codice mentre viene compilato e generare al volo nuovi file sorgente C# aggiunti alla compilazione stessa. Vedremo come usarli e quanto possono essere utili nelle nostre applicazioni
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
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
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
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
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
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