SlideShare a Scribd company logo
1 of 11
Download to read offline
How to build an application with
 the Portofino web framework




                        Giampiero Granatella
                    giampiero.granatella@manydesigns.com
Portofino in a glance
creation of a web application starting from existing databases
powerful, multi-level CRUD pages
CMS features (menu, wysiwyg html editor, portlet)
page customization using Groovy, which allows on-the-fly changes
native support for incremental management of the database schema
using Liquibase
use of well-known and well-tested technologies such as Hibernate,
Stripes, EhCache, Quartz, etc.
native permission handling with Apache Shiro and user management
that can be easily integrated with any SQL, LDAP/Active Directory,
OpenID, ...
and much more!
Who is using Portofino
1,001 Downloads in 2013 (as of 28/2/2013) from
84 countries around the world
Used in
 Public Administration: Regione Emilia Romagna,
 Regione Liguria, Datasiel, Prefettura di Savona
 IIT, Università degli studi di Genova
 Companies: Selex-Elsag, QSA, Celeweb, NIS,
 Nacon, Softeco, Iso Sistemi
Architecture
How to start a project
Download it!
http://sourceforge.net/projects/portofino

unzip
launch tomcat
use your browser (http://localhost:8080) and a text
editor to write your apps
...or use an IDE (NetBeans, Eclipse, IntelliJ) to write or
debug apps
DataBase Driven
          applications
Do you have an existing DB?
 use the wizard and let Portofino create pages for you

Are you building your DB from scratch?
 use liquibase for DB versioning
 ...or use your favorite DB client and sync Portofino with
 the DB
Create Pages
We’ll develop a Blog http://www.manydesigns.com/en/
blog/how-to-create-a-blog-1

Your app is under /apps/default (or your appname)
  blobs - your blobs
  dbs - liquibase files
  groovy - script available to all your actions
  pages - all your pages organized as you designed
  web - custom html, jsp, css, img, javascript
Authorization and
         Permissions
We use Apache Shiro to manage authorizations and
permissions,
customize you authorization policy in the
security.groovy file (authorize a user, associate him to
a group),
set the access level for each page to groups,
set what operations a user can do,
the rules you set for a page can be applied to all the
pages underneath.
Notes on
         customizations
Each page has an associated groovy script,
Portofino gives some hooks (e.g. to customize
validation, to redirect to different pages, ...)
 Write your code in app/groovy and you can use
it in all your actions
Community
Ask questions and join the discussion:
 http://groups.google.com/group/manydesigns-
 portofino
Regional groups:
 http://groups.google.com/group/manydesigns-
 portofino-italian
Questions ?

More Related Content

What's hot

Using Javascript in today's world
Using Javascript in today's worldUsing Javascript in today's world
Using Javascript in today's worldSudar Muthu
 
GWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO ToolsGWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO Toolsbarciszewski
 
GWT: Our Experiences
GWT: Our ExperiencesGWT: Our Experiences
GWT: Our ExperiencesYenwen Feng
 
WebDAV - April 15 2008
WebDAV - April 15 2008WebDAV - April 15 2008
WebDAV - April 15 2008sullis
 
Future development stack ~ MeteorJS
Future development stack ~ MeteorJSFuture development stack ~ MeteorJS
Future development stack ~ MeteorJSVictor Stan
 
Full_Stack_Web_Development
Full_Stack_Web_DevelopmentFull_Stack_Web_Development
Full_Stack_Web_DevelopmentVasyl Stokolosa
 
MSDN Live: Silverlight 2
MSDN Live: Silverlight 2MSDN Live: Silverlight 2
MSDN Live: Silverlight 2goeran
 
coursera-full-stack-web-development-specialization
coursera-full-stack-web-development-specializationcoursera-full-stack-web-development-specialization
coursera-full-stack-web-development-specializationMadrisan Davide
 
Frost - W3C Mobile Ajax Workshop 2007
Frost - W3C Mobile Ajax Workshop 2007Frost - W3C Mobile Ajax Workshop 2007
Frost - W3C Mobile Ajax Workshop 2007Rocco Georgi
 
Connect your Javascript web app to ownCloud over the WebDAV interface
Connect your Javascript web app to ownCloud over the WebDAV interface Connect your Javascript web app to ownCloud over the WebDAV interface
Connect your Javascript web app to ownCloud over the WebDAV interface Ilian Sapundshiev
 
Full stack development
Full stack developmentFull stack development
Full stack developmentArnav Gupta
 
Starting Node
Starting NodeStarting Node
Starting Nodextylerx
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsSpike Brehm
 

What's hot (20)

Ajax
Ajax Ajax
Ajax
 
Course Document
Course DocumentCourse Document
Course Document
 
Basics to framework programming
Basics to framework programmingBasics to framework programming
Basics to framework programming
 
Javascript and DOM
Javascript and DOMJavascript and DOM
Javascript and DOM
 
Using Javascript in today's world
Using Javascript in today's worldUsing Javascript in today's world
Using Javascript in today's world
 
GWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO ToolsGWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO Tools
 
Javascript - Today's trending script
Javascript - Today's trending scriptJavascript - Today's trending script
Javascript - Today's trending script
 
GWT: Our Experiences
GWT: Our ExperiencesGWT: Our Experiences
GWT: Our Experiences
 
WebDAV - April 15 2008
WebDAV - April 15 2008WebDAV - April 15 2008
WebDAV - April 15 2008
 
Future development stack ~ MeteorJS
Future development stack ~ MeteorJSFuture development stack ~ MeteorJS
Future development stack ~ MeteorJS
 
Full_Stack_Web_Development
Full_Stack_Web_DevelopmentFull_Stack_Web_Development
Full_Stack_Web_Development
 
MSDN Live: Silverlight 2
MSDN Live: Silverlight 2MSDN Live: Silverlight 2
MSDN Live: Silverlight 2
 
DiscoJuice
DiscoJuiceDiscoJuice
DiscoJuice
 
coursera-full-stack-web-development-specialization
coursera-full-stack-web-development-specializationcoursera-full-stack-web-development-specialization
coursera-full-stack-web-development-specialization
 
Frost - W3C Mobile Ajax Workshop 2007
Frost - W3C Mobile Ajax Workshop 2007Frost - W3C Mobile Ajax Workshop 2007
Frost - W3C Mobile Ajax Workshop 2007
 
Connect your Javascript web app to ownCloud over the WebDAV interface
Connect your Javascript web app to ownCloud over the WebDAV interface Connect your Javascript web app to ownCloud over the WebDAV interface
Connect your Javascript web app to ownCloud over the WebDAV interface
 
Full stack development
Full stack developmentFull stack development
Full stack development
 
Java script
Java scriptJava script
Java script
 
Starting Node
Starting NodeStarting Node
Starting Node
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
 

Similar to How to build a Portofino application

Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | IntroductionJohnTaieb
 
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptxLATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptxchitrachauhan21
 
Sybase sup hybrid_web_container_article_wp
Sybase sup hybrid_web_container_article_wpSybase sup hybrid_web_container_article_wp
Sybase sup hybrid_web_container_article_wpPrabhakar Manthena
 
@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001Fred Jabbari
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web ApplicationSachin Walvekar
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developersFilip Rakowski
 
CONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEMCONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEMANAND PRAKASH
 
Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020Alaina Carter
 
Phonegap android angualr material design
Phonegap android angualr material designPhonegap android angualr material design
Phonegap android angualr material designSrinadh Kanugala
 
Web Application Development
Web Application DevelopmentWeb Application Development
Web Application DevelopmentSanjay Kumar
 
Fundamental of-web design-trends-20142
Fundamental of-web design-trends-20142Fundamental of-web design-trends-20142
Fundamental of-web design-trends-20142Ly Nguyen Bui
 
Information Management & Sharing in Digital Era
Information Management & Sharing in Digital Era Information Management & Sharing in Digital Era
Information Management & Sharing in Digital Era Liaquat Rahoo
 
Must know about web programming with python and java script
Must know about web programming with python and java scriptMust know about web programming with python and java script
Must know about web programming with python and java scriptbbc 123
 
Building ContinuousIntegration with Virtuozzo DevOps
Building ContinuousIntegration with Virtuozzo DevOpsBuilding ContinuousIntegration with Virtuozzo DevOps
Building ContinuousIntegration with Virtuozzo DevOpsVirtuozzo
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1NAILBITER
 
HWIOS Websocket CMS explained
HWIOS Websocket CMS explainedHWIOS Websocket CMS explained
HWIOS Websocket CMS explainedphrearch
 

Similar to How to build a Portofino application (20)

Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptxLATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
 
A Complete Guide to Python Web Development
A Complete Guide to Python Web DevelopmentA Complete Guide to Python Web Development
A Complete Guide to Python Web Development
 
Sybase sup hybrid_web_container_article_wp
Sybase sup hybrid_web_container_article_wpSybase sup hybrid_web_container_article_wp
Sybase sup hybrid_web_container_article_wp
 
@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web Application
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developers
 
Html5
Html5Html5
Html5
 
CONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEMCONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEM
 
Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020
 
Phonegap android angualr material design
Phonegap android angualr material designPhonegap android angualr material design
Phonegap android angualr material design
 
Web Application Development
Web Application DevelopmentWeb Application Development
Web Application Development
 
Fundamental of-web design-trends-20142
Fundamental of-web design-trends-20142Fundamental of-web design-trends-20142
Fundamental of-web design-trends-20142
 
Information Management & Sharing in Digital Era
Information Management & Sharing in Digital Era Information Management & Sharing in Digital Era
Information Management & Sharing in Digital Era
 
Must know about web programming with python and java script
Must know about web programming with python and java scriptMust know about web programming with python and java script
Must know about web programming with python and java script
 
Building ContinuousIntegration with Virtuozzo DevOps
Building ContinuousIntegration with Virtuozzo DevOpsBuilding ContinuousIntegration with Virtuozzo DevOps
Building ContinuousIntegration with Virtuozzo DevOps
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1
 
DevOps-Roadmap
DevOps-RoadmapDevOps-Roadmap
DevOps-Roadmap
 
Web assembly with PWA
Web assembly with PWA Web assembly with PWA
Web assembly with PWA
 
HWIOS Websocket CMS explained
HWIOS Websocket CMS explainedHWIOS Websocket CMS explained
HWIOS Websocket CMS explained
 

How to build a Portofino application

  • 1. How to build an application with the Portofino web framework Giampiero Granatella giampiero.granatella@manydesigns.com
  • 2. Portofino in a glance creation of a web application starting from existing databases powerful, multi-level CRUD pages CMS features (menu, wysiwyg html editor, portlet) page customization using Groovy, which allows on-the-fly changes native support for incremental management of the database schema using Liquibase use of well-known and well-tested technologies such as Hibernate, Stripes, EhCache, Quartz, etc. native permission handling with Apache Shiro and user management that can be easily integrated with any SQL, LDAP/Active Directory, OpenID, ... and much more!
  • 3. Who is using Portofino 1,001 Downloads in 2013 (as of 28/2/2013) from 84 countries around the world Used in Public Administration: Regione Emilia Romagna, Regione Liguria, Datasiel, Prefettura di Savona IIT, Università degli studi di Genova Companies: Selex-Elsag, QSA, Celeweb, NIS, Nacon, Softeco, Iso Sistemi
  • 5. How to start a project Download it! http://sourceforge.net/projects/portofino unzip launch tomcat use your browser (http://localhost:8080) and a text editor to write your apps ...or use an IDE (NetBeans, Eclipse, IntelliJ) to write or debug apps
  • 6. DataBase Driven applications Do you have an existing DB? use the wizard and let Portofino create pages for you Are you building your DB from scratch? use liquibase for DB versioning ...or use your favorite DB client and sync Portofino with the DB
  • 7. Create Pages We’ll develop a Blog http://www.manydesigns.com/en/ blog/how-to-create-a-blog-1 Your app is under /apps/default (or your appname) blobs - your blobs dbs - liquibase files groovy - script available to all your actions pages - all your pages organized as you designed web - custom html, jsp, css, img, javascript
  • 8. Authorization and Permissions We use Apache Shiro to manage authorizations and permissions, customize you authorization policy in the security.groovy file (authorize a user, associate him to a group), set the access level for each page to groups, set what operations a user can do, the rules you set for a page can be applied to all the pages underneath.
  • 9. Notes on customizations Each page has an associated groovy script, Portofino gives some hooks (e.g. to customize validation, to redirect to different pages, ...) Write your code in app/groovy and you can use it in all your actions
  • 10. Community Ask questions and join the discussion: http://groups.google.com/group/manydesigns- portofino Regional groups: http://groups.google.com/group/manydesigns- portofino-italian