Eclipse Scout is an open-source framework for building desktop, web, and mobile applications using pure Java code. It aims to improve productivity, reduce costs and time to market, and ensure applications are future proof. The framework achieves this through architectural decoupling of the UI, services, and business logic layers. This allows applications built with Eclipse Scout to target multiple platforms without code changes. The framework has been in development for over 16 years and promotes a steep initial learning curve but high long-term productivity.
Genislab builds better products and faster go-to-market with Lean project man...
Mobile, Web and Desktop Apps with Eclipse Scout
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
– …
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
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
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 }
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
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
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
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...