SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA
HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH
Kill three birds with one stone
Mobile, Web and Desktop application in one take with Eclipse Scout
Christian Mötzing
Consultant – AD Stuttgart
Enterprise • boring
• enables
work
• legacy
• conservative
use of
technology
Web
• fancy
• life-style
• trending
• infinite
budget
• geek play
ground
Application Types
AD – Eclipse Scout2 30.09.2016
from … to …
Enterprise
• boring
• enables work
• legacy
• conservative
use of
technology
Enterprise Applications
AD – Eclipse Scout3 30.09.2016
Can‘t change every day
Usability
Accessability
limiting factors
– Skill
– License
– Maturity
– …
AD – Eclipse Scout4 30.09.2016
Eclipse Scout
Eclipse Scout
AD – Eclipse Scout5 30.09.2016
OpenSource (initiated in 2010)
Claims
– Quality
– Time to Market
– Costs
– Future Proof (16 years development, no rewrites, state of the art)
Source: https://wiki.eclipse.org/images/8/87/100601_eclipse_banking_day_scout.pdf
How to deliver these claims
AD – Eclipse Scout6 30.09.2016
Good framework structure, testing
facilities included, proven technologiesQuality
Time to
Market
Cost
Future
Proof
High productivity through eclipse
integration, steep learning curve
Built-in architecture plan, decoupling
Excursion: Learning Curves
AD – Eclipse Scout7 30.09.2016
Experience
Learning
Experience
Learning
Steep Shallow
How to deliver these claims
AD – Eclipse Scout8 30.09.2016
Good framework structure, testing
facilities included, proven technologiesQuality
Time to
Market
Cost
Future
Proof
High productivity through eclipse
integration, steep learning curve
Built-in architecture plan, decoupling
proven technologies
productivity
decoupling
How does Eclipse Scout decouple?
AD – Eclipse Scout9 30.09.2016
UI Server Business Logic
Server
Database
Server
communication communication
„Don‘t depend on
ANY
UI technology.“
Source: https://wiki.eclipse.org/images/e/e8/160202b_Scout_OOP.pdf
Pure Java UI No Technology
Architectural Decoupling
AD – Eclipse Scout10 30.09.2016
Source: Scout Technical Guide 6.0
1 example.app
2 example.app.server
3 example.app.shared
4 example.app.client
5 example.app.ui.html
6 example.app.server.app.dev
7 example.app.ui.html.app.dev
8 example.app.server.app.war
9 example.app.ui.html.app.war
Programming Paradigm Decoupling
AD – Eclipse Scout11 30.09.2016
Application code is pure Java
– No UI technology references
– No service technology references
– No dependency injection specifics
„Don‘t depend on
ANY
UI technology.“
Source: https://wiki.eclipse.org/images/e/e8/160202b_Scout_OOP.pdf
UI: Define a Field on a Form
AD – Eclipse Scout12 30.09.2016
1 public FirstNameField getFirstNameField() {
2 return getFieldByClass(FirstNameField.class);
3 }
4
5 @Order(30)
6 public class FirstNameField extends AbstractStringField {
7 @Override
8 protected String getConfiguredLabel() {
9 return TEXTS.get("FirstName");
10 }
11 }
UI: Define a Data Object
AD – Eclipse Scout13 30.09.2016
1 @Generated(value = "org.eclipse...client.person.PersonForm")
2 public class PersonFormData extends AbstractFormData {
3 public FirstName getFirstName() {
4 return getFieldByClass(FirstName.class);
5 }
6
7 public static class FirstName extends
AbstractValueFieldData<String> {
8 private static final long serialVersionUID = 1L;
9 }
FormData FormData
UI Service SQL
Service: Define a Service
AD – Eclipse Scout14 30.09.2016
1 @ApplicationScoped
2 @TunnelToServer
3 public interface IPersonService {
4
5 PersonFormData create(PersonFormData formData);
6
7 PersonFormData load(PersonFormData formData);
8
9 PersonFormData store(PersonFormData formData);
10 }
11
12 public class PersonService implements IPersonService {
…
13 }
Service: Persisting Data
AD – Eclipse Scout15 30.09.2016
1 @Override
2 public PersonFormData store(PersonFormData formData) {
3 SQL.insert(SQLs.PERSON_INSERT, formData);
4 return formData;
5 }
6
7 // SQL.java
8 String PERSON_UPDATE = ""
+ "UPDATE PERSON "
+ "SET first_name = :firstName, "
+ " last_name = :lastName, „
…
+ "WHERE person_id = :personId";
9
UI: Input Validation
AD – Eclipse Scout16 30.09.2016
1 public class FirstNameField extends AbstractStringField {
2 private String PATTERN = "^[A-Z][a-z]+$";
3 @Override
4 protected int getConfiguredMaxLength() {
5 return 64;
6 }
7 @Override
8 protected String execValidateValue(String rawValue) {
9 if (rawValue != null &&
!Pattern.matches(PATTERN, rawValue)) {
10 throw new
VetoException(TEXTS.get("BadFirstName"));
11 }
12 return rawValue;
13 }
14 }
UI: Form Validation
AD – Eclipse Scout17 30.09.2016
1 // on field inside form
2 @Override
3 protected void execChangedValue() {
4 validateAddressFields();
5 }
6 }
7
8 // on form
9 protected void validateAddressFields() {
10 boolean hasStreet =
StringUtility.hasText(getStreetField().getValue());
11 // if you provide a street, then you must provide a city
13 getCityField().setMandatory(hasStreet);
14 }
Programming Paradigm Decoupling (2nd time)
AD – Eclipse Scout18 30.09.2016
Application code is pure Java
– No UI technology references
– No service technology references
– No dependency injection specifics
„Don‘t depend on
ANY
UI technology.“
Source: https://wiki.eclipse.org/images/e/e8/160202b_Scout_OOP.pdf
No CDI (JSR346)
No standard internationalization
No standard tools (like Apache Commons
StringUtils)
Technology behind framework is not visible
AD – Eclipse Scout19 30.09.2016
Source: Scout Technical Guide 6.0
Even Services use a „Service Tunnel“ not REST or SOAP
AD – Eclipse Scout20 30.09.2016
What could have been the Demo
Desktop
AD – Eclipse Scout21 30.09.2016
Source: http://www.eclipse.org/scout/
Web
AD – Eclipse Scout22 30.09.2016
Source: http://www.eclipse.org/scout/
Mobile
AD – Eclipse Scout23 30.09.2016
Source: http://www.eclipse.org/scout/
What about that „killing three birds with one stone“ part
AD – Eclipse Scout24 30.09.2016
Scout 5.0
• SWING
• SWT
• RAP
Scout 6.0
• HTML5
• CSS
• JavaScript
AD – Eclipse Scout25 30.09.2016
The actual Demo
What else comes with Eclipse Scout
AD – Eclipse Scout26 30.09.2016
Internationalization
Security
Theming & Styling (with CSS3 + Less)
IDE integration (Eclipse only)
Aim for a long life (Enterprise Applications > 10 years)
Yet to be proven publicly since only in market for 6 years.
Migrating other Applications to Eclipse Scout
AD – Eclipse Scout27 30.09.2016
UI
Services
Data Model
UI
Services
Data ModelSQLs, Tables
Service Logic
?
Conclusion
AD – Eclipse Scout28 30.09.2016
The Good
– Framework with the best UI abstraction I have seen to date
– High productivity (not verified by me on longterm)
– You get a good standard UI without (any) HTML or CSS knowledge
The Bad
– High abstraction means customization is more complex
– Skills are pretty unique to framework
AD – Eclipse Scout29 30.09.2016
Demo: https://scout.bsi-software.com/contacts/
Docs: https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs
Project: https://eclipse.org/scout/
Session Feedback – now
AD – Eclipse Scout30 09.09.2016
Please use the Trivadis Events mobile app to give feedback on each session
Use "My schedule" if you have registered for a session
Otherwise use "Agenda" and the search function
If the mobile app does not work (or if you have a Windows smartphone), use your
smartphone browser
– URL: http://trivadis.quickmobileplatform.eu/
– User name: <your_loginname> (such as “svv”)
– Password: sent by e-mail...
Christian Mötzing
Consultant
Tel. +49 711 903 632 342
christian.moetzing@trivadis.com
30.09.2016 AD – Eclipse Scout31

Contenu connexe

En vedette

Formulario para la valoración de espacios
Formulario para la valoración de espaciosFormulario para la valoración de espacios
Formulario para la valoración de espacios
Manuel Calvillo Mazarro
 
Instalar sql server 2008 r2 y analysis services en un failover cluster de win...
Instalar sql server 2008 r2 y analysis services en un failover cluster de win...Instalar sql server 2008 r2 y analysis services en un failover cluster de win...
Instalar sql server 2008 r2 y analysis services en un failover cluster de win...
Like Music
 
Mobile Usability Testing: Theory & Pracitce
Mobile Usability Testing: Theory & PracitceMobile Usability Testing: Theory & Pracitce
Mobile Usability Testing: Theory & Pracitce
Lis Pardi
 
Splav! 2014 / 6 (příloha k večeru dílen)
Splav! 2014 / 6 (příloha k večeru dílen)Splav! 2014 / 6 (příloha k večeru dílen)
Splav! 2014 / 6 (příloha k večeru dílen)
Šrámkova Sobotka
 
CCIA'2008: Can Evolution Strategies Improve Learning Guidance in XCS? Design ...
CCIA'2008: Can Evolution Strategies Improve Learning Guidance in XCS? Design ...CCIA'2008: Can Evolution Strategies Improve Learning Guidance in XCS? Design ...
CCIA'2008: Can Evolution Strategies Improve Learning Guidance in XCS? Design ...
Albert Orriols-Puig
 
Armas que prohíbe el dih
Armas que prohíbe el dihArmas que prohíbe el dih
Armas que prohíbe el dih
Edwar Gutierrez
 
PresentacióN Requena Y Plaza 2011
PresentacióN Requena Y Plaza 2011PresentacióN Requena Y Plaza 2011
PresentacióN Requena Y Plaza 2011
redman979
 

En vedette (20)

Digital Shopper Relevancy
Digital Shopper RelevancyDigital Shopper Relevancy
Digital Shopper Relevancy
 
Formulario para la valoración de espacios
Formulario para la valoración de espaciosFormulario para la valoración de espacios
Formulario para la valoración de espacios
 
Iris AMB
Iris AMBIris AMB
Iris AMB
 
Dirección Creativa para Programa TV
Dirección Creativa para Programa TVDirección Creativa para Programa TV
Dirección Creativa para Programa TV
 
Instalar sql server 2008 r2 y analysis services en un failover cluster de win...
Instalar sql server 2008 r2 y analysis services en un failover cluster de win...Instalar sql server 2008 r2 y analysis services en un failover cluster de win...
Instalar sql server 2008 r2 y analysis services en un failover cluster de win...
 
In
InIn
In
 
Mobile Usability Testing: Theory & Pracitce
Mobile Usability Testing: Theory & PracitceMobile Usability Testing: Theory & Pracitce
Mobile Usability Testing: Theory & Pracitce
 
Camilla Buchanan, UK Design Council - DxRI Providence
Camilla Buchanan, UK Design Council - DxRI ProvidenceCamilla Buchanan, UK Design Council - DxRI Providence
Camilla Buchanan, UK Design Council - DxRI Providence
 
Using a Zeno 3200
Using a Zeno 3200Using a Zeno 3200
Using a Zeno 3200
 
Splav! 2014 / 6 (příloha k večeru dílen)
Splav! 2014 / 6 (příloha k večeru dílen)Splav! 2014 / 6 (příloha k večeru dílen)
Splav! 2014 / 6 (příloha k večeru dílen)
 
simeprevir
simeprevirsimeprevir
simeprevir
 
Sound Waves RFP
Sound Waves RFPSound Waves RFP
Sound Waves RFP
 
CCIA'2008: Can Evolution Strategies Improve Learning Guidance in XCS? Design ...
CCIA'2008: Can Evolution Strategies Improve Learning Guidance in XCS? Design ...CCIA'2008: Can Evolution Strategies Improve Learning Guidance in XCS? Design ...
CCIA'2008: Can Evolution Strategies Improve Learning Guidance in XCS? Design ...
 
HSM Szakmai Baráti Kör 33. találkozó
HSM  Szakmai Baráti Kör 33. találkozó HSM  Szakmai Baráti Kör 33. találkozó
HSM Szakmai Baráti Kör 33. találkozó
 
Roadmap to Roseman University ABSN Program in Las Vegas
Roadmap to Roseman University ABSN Program in Las VegasRoadmap to Roseman University ABSN Program in Las Vegas
Roadmap to Roseman University ABSN Program in Las Vegas
 
Voluntariado corporativo y ayuda humanitaria
Voluntariado corporativo y ayuda humanitariaVoluntariado corporativo y ayuda humanitaria
Voluntariado corporativo y ayuda humanitaria
 
Armas que prohíbe el dih
Armas que prohíbe el dihArmas que prohíbe el dih
Armas que prohíbe el dih
 
reliability maintenance
reliability maintenance reliability maintenance
reliability maintenance
 
PresentacióN Requena Y Plaza 2011
PresentacióN Requena Y Plaza 2011PresentacióN Requena Y Plaza 2011
PresentacióN Requena Y Plaza 2011
 
Seguros Allianz
Seguros AllianzSeguros Allianz
Seguros Allianz
 

Similaire à Trivadis TechEvent 2016 Kill three birds with one stone (Eclipse Scout) by Christian Mötzing

ITCamp 2013 - Florin Cardasim - Windows Azure Mobile Services
ITCamp 2013 - Florin Cardasim - Windows Azure Mobile ServicesITCamp 2013 - Florin Cardasim - Windows Azure Mobile Services
ITCamp 2013 - Florin Cardasim - Windows Azure Mobile Services
ITCamp
 
Why Open Source with Drive M2M Innovation
Why Open Source with Drive M2M InnovationWhy Open Source with Drive M2M Innovation
Why Open Source with Drive M2M Innovation
Ian Skerrett
 

Similaire à Trivadis TechEvent 2016 Kill three birds with one stone (Eclipse Scout) by Christian Mötzing (20)

Mobility & Cloud: Build your cross platform mobile application using Xamarin ...
Mobility & Cloud: Build your cross platform mobile application using Xamarin ...Mobility & Cloud: Build your cross platform mobile application using Xamarin ...
Mobility & Cloud: Build your cross platform mobile application using Xamarin ...
 
Trivadis TechEvent 2016 Java for enterprises in the Google cloud by Thomas Bröll
Trivadis TechEvent 2016 Java for enterprises in the Google cloud by Thomas BröllTrivadis TechEvent 2016 Java for enterprises in the Google cloud by Thomas Bröll
Trivadis TechEvent 2016 Java for enterprises in the Google cloud by Thomas Bröll
 
Pune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetupPune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetup
 
OpenStack and serverless - long shot or sure thing
OpenStack and serverless - long shot or sure thingOpenStack and serverless - long shot or sure thing
OpenStack and serverless - long shot or sure thing
 
Web Liquid Streams Mashup Challenge ICWE 2015
Web Liquid Streams Mashup Challenge ICWE 2015Web Liquid Streams Mashup Challenge ICWE 2015
Web Liquid Streams Mashup Challenge ICWE 2015
 
Real world apps with Xamarin and MVVM
Real world apps with Xamarin and MVVMReal world apps with Xamarin and MVVM
Real world apps with Xamarin and MVVM
 
Stmik bandung
Stmik bandungStmik bandung
Stmik bandung
 
IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT Interoperability
 
CloudStack 101 CCCEU13
CloudStack 101 CCCEU13CloudStack 101 CCCEU13
CloudStack 101 CCCEU13
 
Devteach 2016: A practical overview of actors in service fabric
Devteach 2016: A practical overview of actors in service fabricDevteach 2016: A practical overview of actors in service fabric
Devteach 2016: A practical overview of actors in service fabric
 
Futures and Rx Observables: powerful abstractions for consuming web services ...
Futures and Rx Observables: powerful abstractions for consuming web services ...Futures and Rx Observables: powerful abstractions for consuming web services ...
Futures and Rx Observables: powerful abstractions for consuming web services ...
 
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016 Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
Soaring through the Clouds - Oracle Fusion Middleware Partner Forum 2016
 
ITCamp 2013 - Florin Cardasim - Windows Azure Mobile Services
ITCamp 2013 - Florin Cardasim - Windows Azure Mobile ServicesITCamp 2013 - Florin Cardasim - Windows Azure Mobile Services
ITCamp 2013 - Florin Cardasim - Windows Azure Mobile Services
 
Why Open Source with Drive M2M Innovation
Why Open Source with Drive M2M InnovationWhy Open Source with Drive M2M Innovation
Why Open Source with Drive M2M Innovation
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
 
Cloud for Research and Innovation - UK USA HPC workshop, Oxford, July 205
Cloud for Research and Innovation - UK USA HPC workshop, Oxford, July 205Cloud for Research and Innovation - UK USA HPC workshop, Oxford, July 205
Cloud for Research and Innovation - UK USA HPC workshop, Oxford, July 205
 
Roadmap - SiriusCon2016
Roadmap - SiriusCon2016Roadmap - SiriusCon2016
Roadmap - SiriusCon2016
 
Srikiran sistla 2017
Srikiran sistla 2017Srikiran sistla 2017
Srikiran sistla 2017
 
JavaFX / JacpFX interaction with JSR356 WebSockets
JavaFX / JacpFX interaction with JSR356 WebSocketsJavaFX / JacpFX interaction with JSR356 WebSockets
JavaFX / JacpFX interaction with JSR356 WebSockets
 
CloudSME EU project by Tamas Kiss
CloudSME EU project by Tamas KissCloudSME EU project by Tamas Kiss
CloudSME EU project by Tamas Kiss
 

Plus de Trivadis

Plus de Trivadis (20)

Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
 
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
 
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
 
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
 
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
 
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
 
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
 
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
 
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
 
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
 
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
 
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
 
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - TrivadisTechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
 
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
 
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
 
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
 
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
 
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
 
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
 
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - TrivadisTechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
 

Dernier

Dernier (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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...
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Trivadis TechEvent 2016 Kill three birds with one stone (Eclipse Scout) by Christian Mötzing

  • 1. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH Kill three birds with one stone Mobile, Web and Desktop application in one take with Eclipse Scout Christian Mötzing Consultant – AD Stuttgart
  • 2. Enterprise • boring • enables work • legacy • conservative use of technology Web • fancy • life-style • trending • infinite budget • geek play ground Application Types AD – Eclipse Scout2 30.09.2016 from … to …
  • 3. Enterprise • boring • enables work • legacy • conservative use of technology Enterprise Applications AD – Eclipse Scout3 30.09.2016 Can‘t change every day Usability Accessability limiting factors – Skill – License – Maturity – …
  • 4. AD – Eclipse Scout4 30.09.2016 Eclipse Scout
  • 5. Eclipse Scout AD – Eclipse Scout5 30.09.2016 OpenSource (initiated in 2010) Claims – Quality – Time to Market – Costs – Future Proof (16 years development, no rewrites, state of the art) Source: https://wiki.eclipse.org/images/8/87/100601_eclipse_banking_day_scout.pdf
  • 6. How to deliver these claims AD – Eclipse Scout6 30.09.2016 Good framework structure, testing facilities included, proven technologiesQuality Time to Market Cost Future Proof High productivity through eclipse integration, steep learning curve Built-in architecture plan, decoupling
  • 7. Excursion: Learning Curves AD – Eclipse Scout7 30.09.2016 Experience Learning Experience Learning Steep Shallow
  • 8. How to deliver these claims AD – Eclipse Scout8 30.09.2016 Good framework structure, testing facilities included, proven technologiesQuality Time to Market Cost Future Proof High productivity through eclipse integration, steep learning curve Built-in architecture plan, decoupling proven technologies productivity decoupling
  • 9. How does Eclipse Scout decouple? AD – Eclipse Scout9 30.09.2016 UI Server Business Logic Server Database Server communication communication „Don‘t depend on ANY UI technology.“ Source: https://wiki.eclipse.org/images/e/e8/160202b_Scout_OOP.pdf Pure Java UI No Technology
  • 10. Architectural Decoupling AD – Eclipse Scout10 30.09.2016 Source: Scout Technical Guide 6.0 1 example.app 2 example.app.server 3 example.app.shared 4 example.app.client 5 example.app.ui.html 6 example.app.server.app.dev 7 example.app.ui.html.app.dev 8 example.app.server.app.war 9 example.app.ui.html.app.war
  • 11. Programming Paradigm Decoupling AD – Eclipse Scout11 30.09.2016 Application code is pure Java – No UI technology references – No service technology references – No dependency injection specifics „Don‘t depend on ANY UI technology.“ Source: https://wiki.eclipse.org/images/e/e8/160202b_Scout_OOP.pdf
  • 12. UI: Define a Field on a Form AD – Eclipse Scout12 30.09.2016 1 public FirstNameField getFirstNameField() { 2 return getFieldByClass(FirstNameField.class); 3 } 4 5 @Order(30) 6 public class FirstNameField extends AbstractStringField { 7 @Override 8 protected String getConfiguredLabel() { 9 return TEXTS.get("FirstName"); 10 } 11 }
  • 13. UI: Define a Data Object AD – Eclipse Scout13 30.09.2016 1 @Generated(value = "org.eclipse...client.person.PersonForm") 2 public class PersonFormData extends AbstractFormData { 3 public FirstName getFirstName() { 4 return getFieldByClass(FirstName.class); 5 } 6 7 public static class FirstName extends AbstractValueFieldData<String> { 8 private static final long serialVersionUID = 1L; 9 } FormData FormData UI Service SQL
  • 14. Service: Define a Service AD – Eclipse Scout14 30.09.2016 1 @ApplicationScoped 2 @TunnelToServer 3 public interface IPersonService { 4 5 PersonFormData create(PersonFormData formData); 6 7 PersonFormData load(PersonFormData formData); 8 9 PersonFormData store(PersonFormData formData); 10 } 11 12 public class PersonService implements IPersonService { … 13 }
  • 15. Service: Persisting Data AD – Eclipse Scout15 30.09.2016 1 @Override 2 public PersonFormData store(PersonFormData formData) { 3 SQL.insert(SQLs.PERSON_INSERT, formData); 4 return formData; 5 } 6 7 // SQL.java 8 String PERSON_UPDATE = "" + "UPDATE PERSON " + "SET first_name = :firstName, " + " last_name = :lastName, „ … + "WHERE person_id = :personId"; 9
  • 16. UI: Input Validation AD – Eclipse Scout16 30.09.2016 1 public class FirstNameField extends AbstractStringField { 2 private String PATTERN = "^[A-Z][a-z]+$"; 3 @Override 4 protected int getConfiguredMaxLength() { 5 return 64; 6 } 7 @Override 8 protected String execValidateValue(String rawValue) { 9 if (rawValue != null && !Pattern.matches(PATTERN, rawValue)) { 10 throw new VetoException(TEXTS.get("BadFirstName")); 11 } 12 return rawValue; 13 } 14 }
  • 17. UI: Form Validation AD – Eclipse Scout17 30.09.2016 1 // on field inside form 2 @Override 3 protected void execChangedValue() { 4 validateAddressFields(); 5 } 6 } 7 8 // on form 9 protected void validateAddressFields() { 10 boolean hasStreet = StringUtility.hasText(getStreetField().getValue()); 11 // if you provide a street, then you must provide a city 13 getCityField().setMandatory(hasStreet); 14 }
  • 18. Programming Paradigm Decoupling (2nd time) AD – Eclipse Scout18 30.09.2016 Application code is pure Java – No UI technology references – No service technology references – No dependency injection specifics „Don‘t depend on ANY UI technology.“ Source: https://wiki.eclipse.org/images/e/e8/160202b_Scout_OOP.pdf No CDI (JSR346) No standard internationalization No standard tools (like Apache Commons StringUtils)
  • 19. Technology behind framework is not visible AD – Eclipse Scout19 30.09.2016 Source: Scout Technical Guide 6.0 Even Services use a „Service Tunnel“ not REST or SOAP
  • 20. AD – Eclipse Scout20 30.09.2016 What could have been the Demo
  • 21. Desktop AD – Eclipse Scout21 30.09.2016 Source: http://www.eclipse.org/scout/
  • 22. Web AD – Eclipse Scout22 30.09.2016 Source: http://www.eclipse.org/scout/
  • 23. Mobile AD – Eclipse Scout23 30.09.2016 Source: http://www.eclipse.org/scout/
  • 24. What about that „killing three birds with one stone“ part AD – Eclipse Scout24 30.09.2016 Scout 5.0 • SWING • SWT • RAP Scout 6.0 • HTML5 • CSS • JavaScript
  • 25. AD – Eclipse Scout25 30.09.2016 The actual Demo
  • 26. What else comes with Eclipse Scout AD – Eclipse Scout26 30.09.2016 Internationalization Security Theming & Styling (with CSS3 + Less) IDE integration (Eclipse only) Aim for a long life (Enterprise Applications > 10 years) Yet to be proven publicly since only in market for 6 years.
  • 27. Migrating other Applications to Eclipse Scout AD – Eclipse Scout27 30.09.2016 UI Services Data Model UI Services Data ModelSQLs, Tables Service Logic ?
  • 28. Conclusion AD – Eclipse Scout28 30.09.2016 The Good – Framework with the best UI abstraction I have seen to date – High productivity (not verified by me on longterm) – You get a good standard UI without (any) HTML or CSS knowledge The Bad – High abstraction means customization is more complex – Skills are pretty unique to framework
  • 29. AD – Eclipse Scout29 30.09.2016 Demo: https://scout.bsi-software.com/contacts/ Docs: https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs Project: https://eclipse.org/scout/
  • 30. Session Feedback – now AD – Eclipse Scout30 09.09.2016 Please use the Trivadis Events mobile app to give feedback on each session Use "My schedule" if you have registered for a session Otherwise use "Agenda" and the search function If the mobile app does not work (or if you have a Windows smartphone), use your smartphone browser – URL: http://trivadis.quickmobileplatform.eu/ – User name: <your_loginname> (such as “svv”) – Password: sent by e-mail...
  • 31. Christian Mötzing Consultant Tel. +49 711 903 632 342 christian.moetzing@trivadis.com 30.09.2016 AD – Eclipse Scout31