Lesson learned from using EMF to build desktop & web Applications

Subscribers:
24,000
Published on ● Video Link: https://www.youtube.com/watch?v=hCTDzpKmb8M



Duration: 31:38
697 views
3


We recently faced a big challenge by migrating one of our biggest application from Client-Server to a Web architecture. We developed this app by adopting some EMF technologies (such as EMF Edit, Parsley, CDO, etc..) and some good practices like Inversion of Control (with Google Guice) and MVP pattern. And we were really surprised how easily we realized this porting, since we replaced both UI and persistence layers in a matter of a few days.

After this experience we spent some time asking ourselves how we got this result so easily and smoothlessly. The only answer we found was that our application was somehow pretty-well architectured :-)
In this talk we’ll present our favorite technological stack (with some samples), gained after several years of experience (and errors) developing UI using Eclipse and Modeling technologies.

We will talk about our architectural choices, with pros and cons and we will present (also with code samples) how you have taken advantages from:
- Model centric approach, using databinding to delegate all UI interactions to the model
- EMF Resource APIs, using all EMF Edit and runtime capabilities
- Dependency Injection, to manage at runtime your dependencies (and do more complicated stuff with bytecode manipulation)
- MVP Pattern, by separating the model, the View and the Presentation layer to achieve the best code readability
- UI Model and services layer interaction using the repository pattern
- Model Query Responsibility Segregation pattern.

Last but not least we will show how every single part of such an architecture can be tested and how all parts of the application can be covered with some useful testing frameworks.




Other Videos By Eclipse Foundation


2017-07-11The latest Tuleap big features, by Manon Midy
2017-07-11Reach IoT interoperability with standard and open source APIs, by Andre Bottaro
2017-07-11Charts to the Eclipse people - The making of, by Philip Wenig
2017-07-11How to use the E4 Model Editor for your modular RCP applications, by Patrik Suzzi & Olivier Prouvost
2017-07-11Embedding Sirius in a Pure E4 Application - Lessons Learned and Future Plans, by J. Langley
2017-07-11EclipseIoTVorto
2017-07-11How to provide a portable developer workspace with Eclipse Che, by Florent Benoit & Stevan Le Meur
2017-07-11Easy container oriented development with Docker and OpenShift tooling, by Jeff MAURY
2017-07-11A new aircraft fuselage configuration? Easy with GEF4! by Xavier JACQUES
2017-07-11Ethics in Software, by Boris Baldassari
2017-07-11Lesson learned from using EMF to build desktop & web Applications
2017-07-11Doc2M Update your model from your document in a breeze, by Arnaud Michot
2017-07-11Squaring the Capella circle: Open Source Agile Traditional, by Joao Barata &Philippe DUL
2017-07-11EMF Models getting XXL? An overview of available solutions, by Benoit VIAUD & Jonathan Lasalle
2017-07-11SW360 - The Component Management Hub, by Johannes Kristan
2017-07-11OSGi (Equinox) at the UK's Biggest Science Project, by Matthew Gerring
2017-07-11Patching the gap in collaborating on models, Abel Hegedus & Olivier Constant
2017-07-11My Minecraft Smart Home: Prototyping the Internet of Uncanny Things, by Sascha Wolter
2017-07-11Document Generation with M2Doc, by Laurent Delaigue
2017-07-11Code Coverage in Practice, by Evgeny Mandrikov
2017-07-11Getting started with Jubula - an UI test automation framework, by Markus Tiede