SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
GDG Firenze
Luca Masini
GWT development with
    Errai and Forge
How to use the same development model on
       client/server with Errai/Forge
Why GWT ?

● With the arise of AJAX and Web 2.0 GWT
  is the only tool that allows a single
  programming language on client and server

● The problem is that the development
  environments (API and platform) are really
  different
Here comes Errai

With Errai you can use a single model to
develop all your applications: Java EE 6 with its
CDI capabilities and its RESTful services
Optional Modules
● Automatic Data Binding between POJOs
  and UI
● A template system that is far better than
  UIBinder
● JPA for the WebSQL DB


● Also.....an optional simple and powerful
  bidirectional Message Bus between the
  client and the server
And what about Forge ?
When you start a new project you can:

● start from scratch, googling for configuration
  and the initial code skeleton

● use a Maven         Archetype    (not   really
  interactive)

● use JBoss Forge to create the scaffold that
  you really need in your project
Forge: developer's BASH
● It creates only applications that use standard
  technologies (Java language, Java EE
  programming model)

● No Forge APIs or configuration files on your
  code

● Once your project is configured, you can
  forget about Forge, or may use it as your
  dev shell, your taste
Forge helps us: scaffolding
CDI with Errai unveiled
● Create a GWT's EntryPoint with a simple
  bean and the @EntryPoint annotation

● The @PostConstruct method will instruct
  how to bootstrap your application

● You can do communication over the Errai
  Bus using only CDI event
  ○ client code
  ○ server code
CDI with Errai unveiled
Errai JAX-RS
● Forge helps us creating the jax-rs setup

● You can call a RESTful end-point only using
  jax-rs API within the CDI container

● You can use a Jackson-compatible
  marshalling/unmarshalling JSON
Errai JAX-RS
Errai UI
● Put your HTML5 template into your Java
  packages

● Annotate your Composite with @Templated
  and you are done!

● You can also inject Widgets inside the
  template and of course attach event to those
  widgets
Errai Data Binding
● A POJO annotated with @Bindable can be
  injected into a Composite as a DataBinder

● When the Composite is annotated with
  @Templated then the binding betweeen
  fields and widgets is implicit

● We can also register a custom Converter,
  global or local to a property
Errai UI and DataBinding
Errai's Portable Objects
● We mark objects that need to travel between
  client and server with the @Portable
  annotation

● Many strategies     for   construction   and
  injection

● Same API on client and on server
Conclusions
● Forge helps us tailoring new projects for our
  needs and working in a productive way on
  existing ones

● Errai lets us write less and better code with a
  common paradigm between client and server

● Errai has also many addional modules that
  complete our client coding experience (HTML5
  UI, Data Bindind, RESTful client)
References
● The History and Future of GWT: http://go o.gl/mwrOJ


● Innovation Award 2012, JBoss Forge: http://jax-awards.
   com/proposal_technology.php?id=599&show=more



● Errai's project leader in the GWT Steering Committee:
   http://googlewebtoolkit.blogspot.it/2012/09/gwt-survey.
   html
Q&A
<Thank You!>
Gwt development with errai and forge

Weitere ähnliche Inhalte

Was ist angesagt?

Binary Studio Academy PRO. JS course. Lecture 1. UI Architecture.
Binary Studio Academy PRO. JS course. Lecture 1.  UI Architecture.Binary Studio Academy PRO. JS course. Lecture 1.  UI Architecture.
Binary Studio Academy PRO. JS course. Lecture 1. UI Architecture.
Binary Studio
 

Was ist angesagt? (19)

resume Updated
resume Updatedresume Updated
resume Updated
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment
 
Top 10 Front End Development Technologies to Focus in 2018
Top 10 Front End Development Technologies to Focus in 2018Top 10 Front End Development Technologies to Focus in 2018
Top 10 Front End Development Technologies to Focus in 2018
 
Sr Full Stack Developer
Sr Full Stack DeveloperSr Full Stack Developer
Sr Full Stack Developer
 
APIs for mobile
APIs for mobileAPIs for mobile
APIs for mobile
 
Patna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping File
Patna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping FilePatna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping File
Patna MuleSoft Meetup | Exposing WEB GUI for DWL Mapping File
 
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications   open tech week javascript ...The working architecture of node js applications   open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
 
JavaScript Toolkit
JavaScript ToolkitJavaScript Toolkit
JavaScript Toolkit
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?
 
Intro Angular Ionic
Intro Angular Ionic Intro Angular Ionic
Intro Angular Ionic
 
How To be a Backend developer
How To be a Backend developer    How To be a Backend developer
How To be a Backend developer
 
Presentation Builder Pattern OOAD
Presentation Builder Pattern OOADPresentation Builder Pattern OOAD
Presentation Builder Pattern OOAD
 
Mvc webforms
Mvc webformsMvc webforms
Mvc webforms
 
Aeternity Blockchain - Ecosystem & Devtools [2019]
Aeternity Blockchain - Ecosystem & Devtools [2019]Aeternity Blockchain - Ecosystem & Devtools [2019]
Aeternity Blockchain - Ecosystem & Devtools [2019]
 
Binary Studio Academy PRO. JS course. Lecture 1. UI Architecture.
Binary Studio Academy PRO. JS course. Lecture 1.  UI Architecture.Binary Studio Academy PRO. JS course. Lecture 1.  UI Architecture.
Binary Studio Academy PRO. JS course. Lecture 1. UI Architecture.
 
Magento 2 Module in 50 Minutes
Magento 2 Module in 50 MinutesMagento 2 Module in 50 Minutes
Magento 2 Module in 50 Minutes
 
How to build a Mobile API or HTML 5 app in 5 minutes
How to build a Mobile API or HTML 5 app in 5 minutesHow to build a Mobile API or HTML 5 app in 5 minutes
How to build a Mobile API or HTML 5 app in 5 minutes
 
Tutorial introduction to OSGi
Tutorial introduction to OSGiTutorial introduction to OSGi
Tutorial introduction to OSGi
 
What is Visual Studio Code?
What is Visual Studio Code?What is Visual Studio Code?
What is Visual Studio Code?
 

Andere mochten auch (7)

Click Here
Click HereClick Here
Click Here
 
C:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens Teclado
C:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens TecladoC:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens Teclado
C:\Documents And Settings\Guty\Desktop\Bach147 Jesu Lgria Dos Homens Teclado
 
Gtug florence intro
Gtug florence introGtug florence intro
Gtug florence intro
 
Clean android code
Clean android codeClean android code
Clean android code
 
Presentazione Google App Engine
Presentazione Google App EnginePresentazione Google App Engine
Presentazione Google App Engine
 
Our project - 50 easy things you can do save the earth
Our project - 50 easy things you can do save the earthOur project - 50 easy things you can do save the earth
Our project - 50 easy things you can do save the earth
 
Save mother earth
Save mother earthSave mother earth
Save mother earth
 

Ähnlich wie Gwt development with errai and forge

Portable Code Compiler
Portable Code CompilerPortable Code Compiler
Portable Code Compiler
ijtsrd
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggery
WSO2
 
Couch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applicationsCouch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applications
Ihor Malytskyi
 

Ähnlich wie Gwt development with errai and forge (20)

Get Codeigniter Developement Services From Us
 Get Codeigniter Developement Services From Us Get Codeigniter Developement Services From Us
Get Codeigniter Developement Services From Us
 
Everything PHP Developers Need To Be Productive
Everything PHP Developers Need To Be ProductiveEverything PHP Developers Need To Be Productive
Everything PHP Developers Need To Be Productive
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
From React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I startedFrom React to React Native - Things I wish I knew when I started
From React to React Native - Things I wish I knew when I started
 
Using Delphi as a no code development environment
Using Delphi as a no code development environmentUsing Delphi as a no code development environment
Using Delphi as a no code development environment
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...
 
Telerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJSTelerik Kendo UI vs. AngularJS
Telerik Kendo UI vs. AngularJS
 
Portable Code Compiler
Portable Code CompilerPortable Code Compiler
Portable Code Compiler
 
Introduction to Apigility
Introduction to ApigilityIntroduction to Apigility
Introduction to Apigility
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggery
 
Advantages of golang development services &amp; 10 most used go frameworks
Advantages of golang development services &amp; 10 most used go frameworksAdvantages of golang development services &amp; 10 most used go frameworks
Advantages of golang development services &amp; 10 most used go frameworks
 
MVP with GWT and GWTP
MVP with GWT and GWTPMVP with GWT and GWTP
MVP with GWT and GWTP
 
Rcs project Training Bangalore
Rcs project Training BangaloreRcs project Training Bangalore
Rcs project Training Bangalore
 
DOT NET TRaining
DOT NET TRainingDOT NET TRaining
DOT NET TRaining
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
 
Couch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applicationsCouch DB/PouchDB approach for hybrid mobile applications
Couch DB/PouchDB approach for hybrid mobile applications
 
7 Top PHP Development Tools For PHP Coding
7 Top PHP Development Tools For PHP Coding7 Top PHP Development Tools For PHP Coding
7 Top PHP Development Tools For PHP Coding
 
PHP, Java EE & .NET Comparison
PHP, Java EE & .NET ComparisonPHP, Java EE & .NET Comparison
PHP, Java EE & .NET Comparison
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
 
5 Treding Java Frameworks Offshore Developers Should About
5 Treding Java Frameworks Offshore Developers Should About5 Treding Java Frameworks Offshore Developers Should About
5 Treding Java Frameworks Offshore Developers Should About
 

Mehr von firenze-gtug

Maven from dummies
Maven from dummiesMaven from dummies
Maven from dummies
firenze-gtug
 

Mehr von firenze-gtug (20)

Html5 apps - GWT oriented
Html5 apps - GWT orientedHtml5 apps - GWT oriented
Html5 apps - GWT oriented
 
Android ndk - ottimizzazione su dispositivi Intel
Android ndk - ottimizzazione su dispositivi IntelAndroid ndk - ottimizzazione su dispositivi Intel
Android ndk - ottimizzazione su dispositivi Intel
 
Gwt kickoff - Alberto Mancini & Francesca Tosi
Gwt kickoff - Alberto Mancini & Francesca TosiGwt kickoff - Alberto Mancini & Francesca Tosi
Gwt kickoff - Alberto Mancini & Francesca Tosi
 
Youtube broadcast live - Massimiliano D'Ambrosio
Youtube broadcast live - Massimiliano D'AmbrosioYoutube broadcast live - Massimiliano D'Ambrosio
Youtube broadcast live - Massimiliano D'Ambrosio
 
Intro BeagleBone Black - Massimiliano D'Ambrosio
Intro BeagleBone Black - Massimiliano D'AmbrosioIntro BeagleBone Black - Massimiliano D'Ambrosio
Intro BeagleBone Black - Massimiliano D'Ambrosio
 
Arduino - Massimiliano D'Ambrosio
Arduino - Massimiliano D'AmbrosioArduino - Massimiliano D'Ambrosio
Arduino - Massimiliano D'Ambrosio
 
Introduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
Introduzione a GAE - Alessandro Aglietti e Lorenzo BugianiIntroduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
Introduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
 
RFID: What & Why - Stefano Coluccini
RFID: What & Why - Stefano ColucciniRFID: What & Why - Stefano Coluccini
RFID: What & Why - Stefano Coluccini
 
GWT - AppDays - (25 aprile 2014, pordenone)
GWT - AppDays - (25 aprile 2014, pordenone)GWT - AppDays - (25 aprile 2014, pordenone)
GWT - AppDays - (25 aprile 2014, pordenone)
 
Android chat in the cloud
Android chat in the cloudAndroid chat in the cloud
Android chat in the cloud
 
#Html2Native
#Html2Native#Html2Native
#Html2Native
 
Intel ndk - a few Benchmarks
Intel ndk - a few BenchmarksIntel ndk - a few Benchmarks
Intel ndk - a few Benchmarks
 
EE Incremental Store
EE Incremental StoreEE Incremental Store
EE Incremental Store
 
Programming objects with android
Programming objects with androidProgramming objects with android
Programming objects with android
 
Apertura "Mobile & Embedded" - 13 febbraio 2014
Apertura "Mobile & Embedded" - 13 febbraio 2014Apertura "Mobile & Embedded" - 13 febbraio 2014
Apertura "Mobile & Embedded" - 13 febbraio 2014
 
Maven from dummies
Maven from dummiesMaven from dummies
Maven from dummies
 
Apps fuel oct2012
Apps fuel oct2012Apps fuel oct2012
Apps fuel oct2012
 
Dev fest android application case study
Dev fest android application   case studyDev fest android application   case study
Dev fest android application case study
 
google drive and the google drive sdk
google drive and the google drive sdkgoogle drive and the google drive sdk
google drive and the google drive sdk
 
You tube api overview
You tube api overviewYou tube api overview
You tube api overview
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Gwt development with errai and forge

  • 1.
  • 3. GWT development with Errai and Forge How to use the same development model on client/server with Errai/Forge
  • 4. Why GWT ? ● With the arise of AJAX and Web 2.0 GWT is the only tool that allows a single programming language on client and server ● The problem is that the development environments (API and platform) are really different
  • 5. Here comes Errai With Errai you can use a single model to develop all your applications: Java EE 6 with its CDI capabilities and its RESTful services
  • 6. Optional Modules ● Automatic Data Binding between POJOs and UI ● A template system that is far better than UIBinder ● JPA for the WebSQL DB ● Also.....an optional simple and powerful bidirectional Message Bus between the client and the server
  • 7. And what about Forge ? When you start a new project you can: ● start from scratch, googling for configuration and the initial code skeleton ● use a Maven Archetype (not really interactive) ● use JBoss Forge to create the scaffold that you really need in your project
  • 8. Forge: developer's BASH ● It creates only applications that use standard technologies (Java language, Java EE programming model) ● No Forge APIs or configuration files on your code ● Once your project is configured, you can forget about Forge, or may use it as your dev shell, your taste
  • 9. Forge helps us: scaffolding
  • 10. CDI with Errai unveiled ● Create a GWT's EntryPoint with a simple bean and the @EntryPoint annotation ● The @PostConstruct method will instruct how to bootstrap your application ● You can do communication over the Errai Bus using only CDI event ○ client code ○ server code
  • 11. CDI with Errai unveiled
  • 12. Errai JAX-RS ● Forge helps us creating the jax-rs setup ● You can call a RESTful end-point only using jax-rs API within the CDI container ● You can use a Jackson-compatible marshalling/unmarshalling JSON
  • 14. Errai UI ● Put your HTML5 template into your Java packages ● Annotate your Composite with @Templated and you are done! ● You can also inject Widgets inside the template and of course attach event to those widgets
  • 15. Errai Data Binding ● A POJO annotated with @Bindable can be injected into a Composite as a DataBinder ● When the Composite is annotated with @Templated then the binding betweeen fields and widgets is implicit ● We can also register a custom Converter, global or local to a property
  • 16. Errai UI and DataBinding
  • 17. Errai's Portable Objects ● We mark objects that need to travel between client and server with the @Portable annotation ● Many strategies for construction and injection ● Same API on client and on server
  • 18. Conclusions ● Forge helps us tailoring new projects for our needs and working in a productive way on existing ones ● Errai lets us write less and better code with a common paradigm between client and server ● Errai has also many addional modules that complete our client coding experience (HTML5 UI, Data Bindind, RESTful client)
  • 19. References ● The History and Future of GWT: http://go o.gl/mwrOJ ● Innovation Award 2012, JBoss Forge: http://jax-awards. com/proposal_technology.php?id=599&show=more ● Errai's project leader in the GWT Steering Committee: http://googlewebtoolkit.blogspot.it/2012/09/gwt-survey. html
  • 20. Q&A