SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
Come sviluppare un'applicazione
con Portofino
Giampiero Granatella
giampiero.granatella@manydesigns.com
Perchè abbiamo creato Portofino?
Progetti dal
mondo reale
●
Non si crea un
progetto dal nulla,
ma ci sono db e dati
in giro per l'azienda
●
Requisiti vaghi è
necessari fare
prototipi veloci e
rapidi
●
Alcune attività sono
percepite per
scontate benché
abbiano un costo
Cosa voglio da un
framework
●
Architettura solida,
ma tempi di sviluppo
più veloci che le
webapp Java
●
Che mi tolga le
attività comuni
(sicurezza,
mappatura sul db,
pagine CRUD)
●
Non essere
penalizzato nello
scrivere codice
personalizzato fuori
Portofino
creazione di applicativi web partendo da database legacy
pagine CRUD ricche e multi livello
Funzioanlità CMS, menu autogenerati, editor html wysiwyg, composizione
di contenuti
personalizzazione delle pagine con Groovy, che permette modifiche al volo
supporto nativo per la gestione e il versionamento dello schema del db con
Liquibase
utilizzo di tecnologie standard quali Hibernate, Stripes, EhCache, Quartz,
etc.
gestione dei permessi con Apache Shiro e user management integrabile con
qualsiasi soluzione SQL, LDAP/Active Directory, OpenID, ...
e molto molto altro!
Chi usa Portofino
più di 20,00 Downloads (al 28/2/2015) da 172 paesi nel
mondo
Utilizzato in
Pubbliche amministrazione: Regione Emilia Romagna,
Regione Liguria, Liguria Digitale, Prefettura di Savona
Università e centri di ricerca: IIT, Università degli studi di
Genova
Aziende private: Selex-Elsag, QSA, Celeweb, NIS, Nacon,
Softeco, Iso Sistemi
Come iniziare un
progetto
Scaricalo!
http://sourceforge.net/projects/portofino
scompatta
esegui il tomcat nel bundle
collegati con un browser (http://localhost:8080) e usa un
editor testuale per scrivere le tua applicazioni
...oppure utilizza un IDE (NetBeans, Eclipse, IntelliJ)per
scriverle o fare debug
Applicazioni basate
sui dati
Hai un DB già fatto a cui collegarti?
utilizza il wizard e lascia che Portofino crei le pagine
per conto tuo
Stai creando il tuo DB ?
utilizza liquibase per versionare il Database
...o modifica direttamente un qualsiasi client per il DB
e sincronizza Portofino
Dove sta la mia
applicazione?
la tua applicazione si trova sotto WEB-INF/
dbs - file liquibase
groovy - classi groovy riutilizzabili in tutte le tue
pagine
pages - le pagine della tua applicazione organizzate
come le hai progettate
...
Gestione dei permessi
Utilizziamo Apache Shiro per la gestione dei
permessi
La definizione di autenticazione e permessi è
definita nel file security.groovy (come autenticare
un utente, a quali gruppi appartiene),
i permessi sono gestiti poi a livello di singola pagina
o di ramo di pagine associando un permesso ad un
gruppo.
Come
personalizzo la
mia applicazione?
Ogni pagina ha uno script groovy associato,
Portofino offre alcuni hooks (e.g. validazioni,
valori di default, viste custom)
Crea pagine custom per avere piena libertà
(ma con il beneficio di permessi e mappatura
delle entità su Hibernate)
Gruppo inglese:
http://groups.google.com/group/manydes
igns-portofino
Gruppo italiano:
http://groups.google.com/group/manydes
igns-portofino-italian
Domande ?

Weitere ähnliche Inhalte

Was ist angesagt?

Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailStefano Ottaviani
 
Blazor Focus Week Bari
Blazor Focus Week BariBlazor Focus Week Bari
Blazor Focus Week BariMichele Aponte
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerMatteo Magni
 
Introduzione a React Native - Mokapp 2017
Introduzione a React Native - Mokapp 2017Introduzione a React Native - Mokapp 2017
Introduzione a React Native - Mokapp 2017Fabrizio Bernabei
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerMatteo Magni
 
Azure Bot Service with Node.js
Azure Bot Service with Node.jsAzure Bot Service with Node.js
Azure Bot Service with Node.jsMaurizio Moriconi
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Eugenio Minardi
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormAndrea Dottor
 
Infrastrutture web e Ruby on Rails
Infrastrutture web e Ruby on RailsInfrastrutture web e Ruby on Rails
Infrastrutture web e Ruby on Railsguestfe3e15
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleMarco Breveglieri
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperStefano Ottaviani
 
Ignite IBB: Gabriele Loiacono - qube-os un sistema operativo web based per sv...
Ignite IBB: Gabriele Loiacono - qube-os un sistema operativo web based per sv...Ignite IBB: Gabriele Loiacono - qube-os un sistema operativo web based per sv...
Ignite IBB: Gabriele Loiacono - qube-os un sistema operativo web based per sv...Toscanalab
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webLuca Milan
 
MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webEugenio Minardi
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web Appdotnetcode
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
 
Data binding libera tutti!
Data binding libera tutti!Data binding libera tutti!
Data binding libera tutti!Salvatore Laisa
 

Was ist angesagt? (19)

Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
 
Blazor Focus Week Bari
Blazor Focus Week BariBlazor Focus Week Bari
Blazor Focus Week Bari
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesigner
 
Introduzione a React Native - Mokapp 2017
Introduzione a React Native - Mokapp 2017Introduzione a React Native - Mokapp 2017
Introduzione a React Native - Mokapp 2017
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesigner
 
Azure Bot Service with Node.js
Azure Bot Service with Node.jsAzure Bot Service with Node.js
Azure Bot Service with Node.js
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web Form
 
Infrastrutture web e Ruby on Rails
Infrastrutture web e Ruby on RailsInfrastrutture web e Ruby on Rails
Infrastrutture web e Ruby on Rails
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarle
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software Developer
 
Ignite IBB: Gabriele Loiacono - qube-os un sistema operativo web based per sv...
Ignite IBB: Gabriele Loiacono - qube-os un sistema operativo web based per sv...Ignite IBB: Gabriele Loiacono - qube-os un sistema operativo web based per sv...
Ignite IBB: Gabriele Loiacono - qube-os un sistema operativo web based per sv...
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Web frameworks
Web frameworksWeb frameworks
Web frameworks
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del web
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)
 
Data binding libera tutti!
Data binding libera tutti!Data binding libera tutti!
Data binding libera tutti!
 

Ähnlich wie Portofino per Jug Padova

Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Giorgio Carpoca
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLSinergia Totale
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione webQabiria
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeomarcocasario
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformGabriele Gaggi
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]santi caltabiano
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoGabriele Gaggi
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Gabriele Gaggi
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Massimo Caliman
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
Webdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkWebdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkMassimo Schiro
 
Framework di sviluppo web: introduzione a bootstrap e boostack
Framework di sviluppo web: introduzione a bootstrap e boostackFramework di sviluppo web: introduzione a bootstrap e boostack
Framework di sviluppo web: introduzione a bootstrap e boostackStefano Spagnolo
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
 
Manuale EasyPHP e Wordpress
Manuale EasyPHP e WordpressManuale EasyPHP e Wordpress
Manuale EasyPHP e Wordpressalexperoni
 

Ähnlich wie Portofino per Jug Padova (20)

Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTML
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeo
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
 
Link. javascript ajax
  Link. javascript ajax  Link. javascript ajax
Link. javascript ajax
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]
 
WordCamp Catania 2019 PWA e TWA
WordCamp Catania 2019 PWA e TWAWordCamp Catania 2019 PWA e TWA
WordCamp Catania 2019 PWA e TWA
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
 
Web frameworks
Web frameworksWeb frameworks
Web frameworks
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Webdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkWebdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 Ok
 
Presentazione tirocinio
Presentazione tirocinio Presentazione tirocinio
Presentazione tirocinio
 
Framework di sviluppo web: introduzione a bootstrap e boostack
Framework di sviluppo web: introduzione a bootstrap e boostackFramework di sviluppo web: introduzione a bootstrap e boostack
Framework di sviluppo web: introduzione a bootstrap e boostack
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
App Engine + Python
App Engine + PythonApp Engine + Python
App Engine + Python
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
 
Manuale EasyPHP e Wordpress
Manuale EasyPHP e WordpressManuale EasyPHP e Wordpress
Manuale EasyPHP e Wordpress
 

Portofino per Jug Padova

  • 1. Come sviluppare un'applicazione con Portofino Giampiero Granatella giampiero.granatella@manydesigns.com
  • 2. Perchè abbiamo creato Portofino? Progetti dal mondo reale ● Non si crea un progetto dal nulla, ma ci sono db e dati in giro per l'azienda ● Requisiti vaghi è necessari fare prototipi veloci e rapidi ● Alcune attività sono percepite per scontate benché abbiano un costo Cosa voglio da un framework ● Architettura solida, ma tempi di sviluppo più veloci che le webapp Java ● Che mi tolga le attività comuni (sicurezza, mappatura sul db, pagine CRUD) ● Non essere penalizzato nello scrivere codice personalizzato fuori
  • 3. Portofino creazione di applicativi web partendo da database legacy pagine CRUD ricche e multi livello Funzioanlità CMS, menu autogenerati, editor html wysiwyg, composizione di contenuti personalizzazione delle pagine con Groovy, che permette modifiche al volo supporto nativo per la gestione e il versionamento dello schema del db con Liquibase utilizzo di tecnologie standard quali Hibernate, Stripes, EhCache, Quartz, etc. gestione dei permessi con Apache Shiro e user management integrabile con qualsiasi soluzione SQL, LDAP/Active Directory, OpenID, ... e molto molto altro!
  • 4. Chi usa Portofino più di 20,00 Downloads (al 28/2/2015) da 172 paesi nel mondo Utilizzato in Pubbliche amministrazione: Regione Emilia Romagna, Regione Liguria, Liguria Digitale, Prefettura di Savona Università e centri di ricerca: IIT, Università degli studi di Genova Aziende private: Selex-Elsag, QSA, Celeweb, NIS, Nacon, Softeco, Iso Sistemi
  • 5. Come iniziare un progetto Scaricalo! http://sourceforge.net/projects/portofino scompatta esegui il tomcat nel bundle collegati con un browser (http://localhost:8080) e usa un editor testuale per scrivere le tua applicazioni ...oppure utilizza un IDE (NetBeans, Eclipse, IntelliJ)per scriverle o fare debug
  • 6. Applicazioni basate sui dati Hai un DB già fatto a cui collegarti? utilizza il wizard e lascia che Portofino crei le pagine per conto tuo Stai creando il tuo DB ? utilizza liquibase per versionare il Database ...o modifica direttamente un qualsiasi client per il DB e sincronizza Portofino
  • 7. Dove sta la mia applicazione? la tua applicazione si trova sotto WEB-INF/ dbs - file liquibase groovy - classi groovy riutilizzabili in tutte le tue pagine pages - le pagine della tua applicazione organizzate come le hai progettate ...
  • 8. Gestione dei permessi Utilizziamo Apache Shiro per la gestione dei permessi La definizione di autenticazione e permessi è definita nel file security.groovy (come autenticare un utente, a quali gruppi appartiene), i permessi sono gestiti poi a livello di singola pagina o di ramo di pagine associando un permesso ad un gruppo.
  • 9. Come personalizzo la mia applicazione? Ogni pagina ha uno script groovy associato, Portofino offre alcuni hooks (e.g. validazioni, valori di default, viste custom) Crea pagine custom per avere piena libertà (ma con il beneficio di permessi e mappatura delle entità su Hibernate)