Soumettre la recherche
Mettre en ligne
EMF Dos and Don’ts EclipseCon Europe 2013
•
Télécharger en tant que PPTX, PDF
•
1 j'aime
•
1,800 vues
Maximilian Kögel
Suivre
Technologie
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 23
Télécharger maintenant
Recommandé
1.-2.kl.
1.-2.kl.
Valmibibl
F 11 18_virsmas_spraigums
F 11 18_virsmas_spraigums
Daina Birkenbauma
Bibliotekaru etika 2011_maijs_Sporane
Bibliotekaru etika 2011_maijs_Sporane
Liepajasczb
Smiekli caur asarām
Smiekli caur asarām
vizav
Bibliotēkas draugu pasākums 2014
Bibliotēkas draugu pasākums 2014
Kursīšu bibliotēka-informācijas centrs
Pasaules ūdens diena
Pasaules ūdens diena
Latvian National Commission for UNESCO
Iegut draugu
Iegut draugu
vizav
Tests īpašības vārds
Tests īpašības vārds
Aija Barovska
Recommandé
1.-2.kl.
1.-2.kl.
Valmibibl
F 11 18_virsmas_spraigums
F 11 18_virsmas_spraigums
Daina Birkenbauma
Bibliotekaru etika 2011_maijs_Sporane
Bibliotekaru etika 2011_maijs_Sporane
Liepajasczb
Smiekli caur asarām
Smiekli caur asarām
vizav
Bibliotēkas draugu pasākums 2014
Bibliotēkas draugu pasākums 2014
Kursīšu bibliotēka-informācijas centrs
Pasaules ūdens diena
Pasaules ūdens diena
Latvian National Commission for UNESCO
Iegut draugu
Iegut draugu
vizav
Tests īpašības vārds
Tests īpašības vārds
Aija Barovska
Īpašības vārds (zināšanu pārbaude 6.kl.)
Īpašības vārds (zināšanu pārbaude 6.kl.)
Aija Barovska
“Ūdens resursi. Saglabāsim ūdeni kopā!” Pasaules lielākā mācību stunda Daugav...
“Ūdens resursi. Saglabāsim ūdeni kopā!” Pasaules lielākā mācību stunda Daugav...
liela_stunda
Nokrisnu udens savaksana_10m
Nokrisnu udens savaksana_10m
Inese Pabērza
āBeces svētki
āBeces svētki
tilzasbibl
Erudīcijas spēle 7.klasei
Erudīcijas spēle 7.klasei
Bruno Bahs
100 dienas skola
100 dienas skola
vizav
Veselīgs dzīves veids
Veselīgs dzīves veids
l7sakumskola
Putni ziemā
Putni ziemā
l7sakumskola
Skaitļa vārds
Skaitļa vārds
Aija Barovska
1.semestra pārbaudes darbs 4.klase Dbaszinības
1.semestra pārbaudes darbs 4.klase Dbaszinības
l7sakumskola
Kas ir udens_31m
Kas ir udens_31m
Inese Pabērza
Apģērba kultūra.
Apģērba kultūra.
l7sakumskola
Dzīvnieku valsts
Dzīvnieku valsts
Andris Ziemelis
Soc.zin - nauda 4.kl.
Soc.zin - nauda 4.kl.
l7sakumskola
Augi
Augi
evita2602
B 10 9_dzivnieki
B 10 9_dzivnieki
Daina Birkenbauma
1.semestra pārbaudes darbs 4.klase
1.semestra pārbaudes darbs 4.klase
l7sakumskola
Elektronika dažās ierīcēs. Fizika medicīnā. Iespējamie enerģijas izmantošanas...
Elektronika dažās ierīcēs. Fizika medicīnā. Iespējamie enerģijas izmantošanas...
Daina Birkenbauma
1.semestra pārbaudes darbs 4.klase Matemātika
1.semestra pārbaudes darbs 4.klase Matemātika
l7sakumskola
Cilvēka uzbūve
Cilvēka uzbūve
Daina Birkenbauma
EMFStore Model Repository @ Modeling Symposium ECE 2013
EMFStore Model Repository @ Modeling Symposium ECE 2013
Maximilian Kögel
Democamp Munich 2013: Are you still manually coding UIs?
Democamp Munich 2013: Are you still manually coding UIs?
Maximilian Kögel
Contenu connexe
En vedette
Īpašības vārds (zināšanu pārbaude 6.kl.)
Īpašības vārds (zināšanu pārbaude 6.kl.)
Aija Barovska
“Ūdens resursi. Saglabāsim ūdeni kopā!” Pasaules lielākā mācību stunda Daugav...
“Ūdens resursi. Saglabāsim ūdeni kopā!” Pasaules lielākā mācību stunda Daugav...
liela_stunda
Nokrisnu udens savaksana_10m
Nokrisnu udens savaksana_10m
Inese Pabērza
āBeces svētki
āBeces svētki
tilzasbibl
Erudīcijas spēle 7.klasei
Erudīcijas spēle 7.klasei
Bruno Bahs
100 dienas skola
100 dienas skola
vizav
Veselīgs dzīves veids
Veselīgs dzīves veids
l7sakumskola
Putni ziemā
Putni ziemā
l7sakumskola
Skaitļa vārds
Skaitļa vārds
Aija Barovska
1.semestra pārbaudes darbs 4.klase Dbaszinības
1.semestra pārbaudes darbs 4.klase Dbaszinības
l7sakumskola
Kas ir udens_31m
Kas ir udens_31m
Inese Pabērza
Apģērba kultūra.
Apģērba kultūra.
l7sakumskola
Dzīvnieku valsts
Dzīvnieku valsts
Andris Ziemelis
Soc.zin - nauda 4.kl.
Soc.zin - nauda 4.kl.
l7sakumskola
Augi
Augi
evita2602
B 10 9_dzivnieki
B 10 9_dzivnieki
Daina Birkenbauma
1.semestra pārbaudes darbs 4.klase
1.semestra pārbaudes darbs 4.klase
l7sakumskola
Elektronika dažās ierīcēs. Fizika medicīnā. Iespējamie enerģijas izmantošanas...
Elektronika dažās ierīcēs. Fizika medicīnā. Iespējamie enerģijas izmantošanas...
Daina Birkenbauma
1.semestra pārbaudes darbs 4.klase Matemātika
1.semestra pārbaudes darbs 4.klase Matemātika
l7sakumskola
Cilvēka uzbūve
Cilvēka uzbūve
Daina Birkenbauma
En vedette
(20)
Īpašības vārds (zināšanu pārbaude 6.kl.)
Īpašības vārds (zināšanu pārbaude 6.kl.)
“Ūdens resursi. Saglabāsim ūdeni kopā!” Pasaules lielākā mācību stunda Daugav...
“Ūdens resursi. Saglabāsim ūdeni kopā!” Pasaules lielākā mācību stunda Daugav...
Nokrisnu udens savaksana_10m
Nokrisnu udens savaksana_10m
āBeces svētki
āBeces svētki
Erudīcijas spēle 7.klasei
Erudīcijas spēle 7.klasei
100 dienas skola
100 dienas skola
Veselīgs dzīves veids
Veselīgs dzīves veids
Putni ziemā
Putni ziemā
Skaitļa vārds
Skaitļa vārds
1.semestra pārbaudes darbs 4.klase Dbaszinības
1.semestra pārbaudes darbs 4.klase Dbaszinības
Kas ir udens_31m
Kas ir udens_31m
Apģērba kultūra.
Apģērba kultūra.
Dzīvnieku valsts
Dzīvnieku valsts
Soc.zin - nauda 4.kl.
Soc.zin - nauda 4.kl.
Augi
Augi
B 10 9_dzivnieki
B 10 9_dzivnieki
1.semestra pārbaudes darbs 4.klase
1.semestra pārbaudes darbs 4.klase
Elektronika dažās ierīcēs. Fizika medicīnā. Iespējamie enerģijas izmantošanas...
Elektronika dažās ierīcēs. Fizika medicīnā. Iespējamie enerģijas izmantošanas...
1.semestra pārbaudes darbs 4.klase Matemātika
1.semestra pārbaudes darbs 4.klase Matemātika
Cilvēka uzbūve
Cilvēka uzbūve
Similaire à EMF Dos and Don’ts EclipseCon Europe 2013
EMFStore Model Repository @ Modeling Symposium ECE 2013
EMFStore Model Repository @ Modeling Symposium ECE 2013
Maximilian Kögel
Democamp Munich 2013: Are you still manually coding UIs?
Democamp Munich 2013: Are you still manually coding UIs?
Maximilian Kögel
Are you still manually coding UIs? - EclipseCon Europe 2013
Are you still manually coding UIs? - EclipseCon Europe 2013
Maximilian Kögel
Which cloud(s) & why? Defining Clouds and Best Practices
Which cloud(s) & why? Defining Clouds and Best Practices
Paul Weiss
Model migration - there and back again (ECE2014)
Model migration - there and back again (ECE2014)
Maximilian Kögel
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM France Lab
New Repository in AEM 6 by Michael Marth
New Repository in AEM 6 by Michael Marth
AEM HUB
Diving Deeper into DevOps Deployments
Diving Deeper into DevOps Deployments
Jules Pierre-Louis
Cost Effectiveness of Software Reuse Alternatives
Cost Effectiveness of Software Reuse Alternatives
Prof. Amir Tomer
Doing work in the background - Darryn Campbell, Zebra Technologies
Doing work in the background - Darryn Campbell, Zebra Technologies
DroidConTLV
10 Do’s for DevOps!
10 Do’s for DevOps!
DevOps.com
Basic Technology - Module 13 cloud computing
Basic Technology - Module 13 cloud computing
solarisyougood
JavaOne 2014: Next Step in Automation: Elastic Build Environment
JavaOne 2014: Next Step in Automation: Elastic Build Environment
Kohsuke Kawaguchi
EMF Client Platform @ Modeling Symposium EclipseCon North America 2012
EMF Client Platform @ Modeling Symposium EclipseCon North America 2012
JonasHelming
JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"
Daniel Bryant
15 EMF projects in 25 minutes
15 EMF projects in 25 minutes
Cédric Brun
Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...
Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...
DevOps Enterprise Summit
Simulation Training Post Fukushima
Simulation Training Post Fukushima
GSE Systems, Inc.
Jchem Paint
Jchem Paint
university of education,Lahore
Building business u is with emf forms
Building business u is with emf forms
Maximilian Kögel
Similaire à EMF Dos and Don’ts EclipseCon Europe 2013
(20)
EMFStore Model Repository @ Modeling Symposium ECE 2013
EMFStore Model Repository @ Modeling Symposium ECE 2013
Democamp Munich 2013: Are you still manually coding UIs?
Democamp Munich 2013: Are you still manually coding UIs?
Are you still manually coding UIs? - EclipseCon Europe 2013
Are you still manually coding UIs? - EclipseCon Europe 2013
Which cloud(s) & why? Defining Clouds and Best Practices
Which cloud(s) & why? Defining Clouds and Best Practices
Model migration - there and back again (ECE2014)
Model migration - there and back again (ECE2014)
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
New Repository in AEM 6 by Michael Marth
New Repository in AEM 6 by Michael Marth
Diving Deeper into DevOps Deployments
Diving Deeper into DevOps Deployments
Cost Effectiveness of Software Reuse Alternatives
Cost Effectiveness of Software Reuse Alternatives
Doing work in the background - Darryn Campbell, Zebra Technologies
Doing work in the background - Darryn Campbell, Zebra Technologies
10 Do’s for DevOps!
10 Do’s for DevOps!
Basic Technology - Module 13 cloud computing
Basic Technology - Module 13 cloud computing
JavaOne 2014: Next Step in Automation: Elastic Build Environment
JavaOne 2014: Next Step in Automation: Elastic Build Environment
EMF Client Platform @ Modeling Symposium EclipseCon North America 2012
EMF Client Platform @ Modeling Symposium EclipseCon North America 2012
JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"
15 EMF projects in 25 minutes
15 EMF projects in 25 minutes
Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...
Tanay Nagjee - Electric Cloud - Better Continuous Integration with Test Accel...
Simulation Training Post Fukushima
Simulation Training Post Fukushima
Jchem Paint
Jchem Paint
Building business u is with emf forms
Building business u is with emf forms
Plus de Maximilian Kögel
Building Business UIs with EMF Forms (ECE2014)
Building Business UIs with EMF Forms (ECE2014)
Maximilian Kögel
EMFStore Demo EclipseCon2012
EMFStore Demo EclipseCon2012
Maximilian Kögel
What´s (new with) EMFStore?
What´s (new with) EMFStore?
Maximilian Kögel
Only one Click to an EMF Application
Only one Click to an EMF Application
Maximilian Kögel
How to Distribute, Store and Version Models with EMFStore
How to Distribute, Store and Version Models with EMFStore
Maximilian Kögel
EmfStoreTutorial
EmfStoreTutorial
Maximilian Kögel
EmfStore - A Repository for EMF Models
EmfStore - A Repository for EMF Models
Maximilian Kögel
Plus de Maximilian Kögel
(7)
Building Business UIs with EMF Forms (ECE2014)
Building Business UIs with EMF Forms (ECE2014)
EMFStore Demo EclipseCon2012
EMFStore Demo EclipseCon2012
What´s (new with) EMFStore?
What´s (new with) EMFStore?
Only one Click to an EMF Application
Only one Click to an EMF Application
How to Distribute, Store and Version Models with EMFStore
How to Distribute, Store and Version Models with EMFStore
EmfStoreTutorial
EmfStoreTutorial
EmfStore - A Repository for EMF Models
EmfStore - A Repository for EMF Models
Dernier
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Remote DBA Services
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
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
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
lior mazor
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
hans926745
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Evaluating the top large language models.pdf
Evaluating the top large language models.pdf
ChristopherTHyatt
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Dernier
(20)
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
[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...
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Evaluating the top large language models.pdf
Evaluating the top large language models.pdf
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
EMF Dos and Don’ts EclipseCon Europe 2013
1.
EMF Dos and
Don ts Maximilian Koegel mkoegel@eclipsesource.com © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 1
2.
EMF is very
powerful but… “The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” Tom Cargill © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 2
3.
Example Model and
Application • Application to manage bowling games and players • Model with players and games © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 3
4.
Example #1 Problem: Every
game in a resource is changed to professional on resource load iff it points to a professional player Cause: Custom code is triggered during resource load and sets game to professional © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 4
5.
Don t #1:
Change generated getters/setters Reason: • Generated getters and setters are widely used by: • EMF Core Framework, e.g. Resources, EcoreUtil.copy() • EMF-based Frameworks, e.g. Teneo, CDO, EMFStore, EEF • Changing it may have unexpected side effects Mitigation: Do not change the generated getters/setters but move this code into controller classes (MVC pattern), e.g. Commands © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 5
6.
Example #2 Problem: Players
are lost in old game if assigned to new game Cause: • Reference containment property changed • Generated getter is not updated • Players can only be contained in at most one game © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 6
7.
Do #2: Use
pattern for replacing gen. code © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 7
8.
Example #3 Problem: Non-professional
Players are reset to professional players when copied Cause: • Changed factory method in EMF factory to init default values • Values will be set to init value on copy © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 8
9.
Don t #3:
Default initialization in EMF factory Reason: • Generated factories is widely used by: • EMF Core Framework, e.g. Resources, EcoreUtil.copy() • EMF-based Frameworks, e.g. Teneo, CDO, EMFStore • Changing it may have unexpected side effects Mitigations: • Default values can be set in Ecore • More complicated default initialization, e.g. creating containment children, should go into controller code © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 9
10.
Example #4 Problem: CDO-Server
throws NPE at startup Cause: Bug in CDO 4.0 with sub-packages © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 10
11.
Don t #4:
Use of sub-packages Reasons: • Do not use sub-packages • Ed Merks (EMF): “Subpackages are evil!” • Many bugs and problems in frameworks result from subpackage support Mitigation: Use multiple Ecores © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 11
12.
Examples #5: Containment
structure Model: • Car • Motor is contained in Car? • Tire is contained Car? © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 12
13.
Dos #5: Design
Containment Structure • Design a containment structure following your application domain: • Which objects belongs to which other object? • Should this object be copied/deleted if the other object is copied/deleted? • Avoid flat collections of EObjects: • Might be slow if there are many objects • Difficult to visualize • Allow the end-users to structure their data from an application domain point of view: e.g. Folder-like Elements © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 13
14.
Example #6 Problems: • Application
slow-down over time • Application uses exceeding amounts of memory • “Widget is disposed” – Exceptions Cause: Missing Adapter Disposals © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 14
15.
Dos #6: Carefully
use Adapters Reasons: • Adapters will use more and more memory • If UI Widgets are disposed without adapters Exceptions result Mitigations: • Make sure adapters are disposed properly • Use content and cross reference adapter wisely • Establish tests for proper adapter removal • Adapter count before and after test is same © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 15
16.
Example #7 Problems: • Undo
sometimes does not work • Implementing Undo is a lot of work Cause: Manual Command Implementation © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 16
17.
Dos #7: Use
EMF Commands Reasons: • EMF Commands support undo/redo out of the box • Allow integration with Transactional Command Stack • Defines granularity of changes for other frameworks Implementation: © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 17
18.
Example #8 Problems: • UI
does not update to new values in the model • “Widget is disposed” – Exceptions Cause: Data binding buggy © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 18
19.
Dos #8: Use
Databinding Reasons: • Avoid update problems • Databinding uses commands with undo/redo support • Adapters are properly disposed off Implementation: © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 19
20.
Example #9 Problem: Deleting
elements takes too much time Cause: EcoreUtil.delete() is used for deletion © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 20
21.
Dos #9: Carefully
use EcoreUtil.delete() Cause: • Considers whole ResourceSet • Slow if many Eobjects in ResourceSet Mitigations: • Make sure there are no or only known incoming cross-references • Use Cross-Reference Adapter to speed up cross reference look-up © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 21
22.
Don ts #10:
Build on generated editor Reasons: • Editor meant as an example only • No defined extensibility, code is generated • No update strategy to new versions of EMF Mitigations: • Use EMF reflection to build custom editor • Use EEF • Use EMF Client Platform © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 22
23.
More information on
EMF • • • • EMF Book EMF Newsgroup The EMF Source Code EMF Dos and Don´ts Blog Series • Google “EMF Dos and Don´ts” • http://goo.gl/hGcCvJ • Talk on EMF Client Platform at 2:30 pm today: • “Are you still manually coding UIs?” © 2013 EclipseSource | http://eclipsesource.com/munich | Dr. Maximilian Kögel | mkoegel@eclipsesource.com | EMF Dos and Don´ts 23
Télécharger maintenant