SlideShare a Scribd company logo
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

More Related Content

PPTX
Container Days Conference Plesk 2016 - How AWS, Docker and Microservices infl...
PPTX
Container Days Conference Plesk 2016 - How AWS, Docker and Microservices infl...
PDF
Cloud and Machine Learning in real world business
PDF
Unleash office 365 with the power of cognitive services and microsoft graph api
PDF
Spring Boot 2.2
PDF
Cloud-enabling the Next Generation of Mobile Apps
DOC
Curriculo-propuestas completo
PDF
Swiss engineering rts mai 2009
Container Days Conference Plesk 2016 - How AWS, Docker and Microservices infl...
Container Days Conference Plesk 2016 - How AWS, Docker and Microservices infl...
Cloud and Machine Learning in real world business
Unleash office 365 with the power of cognitive services and microsoft graph api
Spring Boot 2.2
Cloud-enabling the Next Generation of Mobile Apps
Curriculo-propuestas completo
Swiss engineering rts mai 2009

Viewers also liked (20)

PDF
Digital Shopper Relevancy
PDF
Formulario para la valoración de espacios
PPTX
PDF
Dirección Creativa para Programa TV
PDF
Instalar sql server 2008 r2 y analysis services en un failover cluster de win...
DOCX
PPTX
Mobile Usability Testing: Theory & Pracitce
PDF
Camilla Buchanan, UK Design Council - DxRI Providence
PDF
Using a Zeno 3200
PDF
Splav! 2014 / 6 (příloha k večeru dílen)
PPTX
simeprevir
PDF
Sound Waves RFP
PDF
CCIA'2008: Can Evolution Strategies Improve Learning Guidance in XCS? Design ...
PPTX
HSM Szakmai Baráti Kör 33. találkozó
PDF
Roadmap to Roseman University ABSN Program in Las Vegas
PPTX
Armas que prohíbe el dih
PDF
reliability maintenance
PPS
PresentacióN Requena Y Plaza 2011
PDF
Seguros Allianz
PDF
Vibrant Gujarat Bird's Eye View of Gujarat Forest Sector
Digital Shopper Relevancy
Formulario para la valoración de espacios
Dirección Creativa para Programa TV
Instalar sql server 2008 r2 y analysis services en un failover cluster de win...
Mobile Usability Testing: Theory & Pracitce
Camilla Buchanan, UK Design Council - DxRI Providence
Using a Zeno 3200
Splav! 2014 / 6 (příloha k večeru dílen)
simeprevir
Sound Waves RFP
CCIA'2008: Can Evolution Strategies Improve Learning Guidance in XCS? Design ...
HSM Szakmai Baráti Kör 33. találkozó
Roadmap to Roseman University ABSN Program in Las Vegas
Armas que prohíbe el dih
reliability maintenance
PresentacióN Requena Y Plaza 2011
Seguros Allianz
Vibrant Gujarat Bird's Eye View of Gujarat Forest Sector
Ad

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

PDF
Andrei Niculae - JavaEE6 - 24mai2011
PDF
Java j2 ee job interview companion k.arulkumaran
PDF
JavaFAQS
PDF
Get Java EE Development with Eclipse - Second Edition Ram Kulkarni free all c...
PDF
Eclipse In Action A Guide For Java Developers 1st Edition David Gallardo
PDF
Jakarta for dummEEs | JakartaOne Livestream
PDF
Java EE 8 - An instant snapshot
PDF
Developer Productivity with Forge, Java EE 6 and Arquillian
PPTX
OpenCloudNative-BeJUG.pptx
PDF
Java development with the dynamo framework
PDF
Spark IT 2011 - Java EE 6 Workshop
PDF
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
PDF
JavaEE 6 and GlassFish v3 at SFJUG
PDF
Eclipse & java based modeling platforms for smart phone
PDF
Eclipse Way
PDF
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
PDF
Java E
PDF
Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India
PDF
Java EE 6 & GlassFish 3
PDF
Building Server-Side Eclipse based Web applications - Jochen Hiller, Principa...
Andrei Niculae - JavaEE6 - 24mai2011
Java j2 ee job interview companion k.arulkumaran
JavaFAQS
Get Java EE Development with Eclipse - Second Edition Ram Kulkarni free all c...
Eclipse In Action A Guide For Java Developers 1st Edition David Gallardo
Jakarta for dummEEs | JakartaOne Livestream
Java EE 8 - An instant snapshot
Developer Productivity with Forge, Java EE 6 and Arquillian
OpenCloudNative-BeJUG.pptx
Java development with the dynamo framework
Spark IT 2011 - Java EE 6 Workshop
How To Maintain Million Lines Of Open Source Code And Remain Sane or The Stor...
JavaEE 6 and GlassFish v3 at SFJUG
Eclipse & java based modeling platforms for smart phone
Eclipse Way
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Java E
Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India
Java EE 6 & GlassFish 3
Building Server-Side Eclipse based Web applications - Jochen Hiller, Principa...
Ad

More from Trivadis (20)

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

Recently uploaded (20)

PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Developing a website for English-speaking practice to English as a foreign la...
PPTX
1. Introduction to Computer Programming.pptx
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPTX
Tartificialntelligence_presentation.pptx
PDF
project resource management chapter-09.pdf
PDF
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Hybrid model detection and classification of lung cancer
PDF
August Patch Tuesday
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Getting Started with Data Integration: FME Form 101
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Enhancing emotion recognition model for a student engagement use case through...
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Developing a website for English-speaking practice to English as a foreign la...
1. Introduction to Computer Programming.pptx
OMC Textile Division Presentation 2021.pptx
Hindi spoken digit analysis for native and non-native speakers
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
NewMind AI Weekly Chronicles – August ’25 Week III
Tartificialntelligence_presentation.pptx
project resource management chapter-09.pdf
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Programs and apps: productivity, graphics, security and other tools
Hybrid model detection and classification of lung cancer
August Patch Tuesday
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
WOOl fibre morphology and structure.pdf for textiles
Getting Started with Data Integration: FME Form 101
Chapter 5: Probability Theory and Statistics
Enhancing emotion recognition model for a student engagement use case through...

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