SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
What every Eclipse developer 
should know about the 
Eclipse Modeling Framework (EMF) 
EclipseCon Europe 2014, 2014-10-29, Ludwigsburg 
Philip Langer and Maximilian Koegel 
{planger|mkoegel}@eclipsesource.com 
© 2014 EclipseSource | http://www.eclipsesource.com
Why should you consider using the EMF? 
● Every program is build around a (data) model 
○ Implicit in the developer’s mind 
○ Sometimes, it’s defined in UML, XSD, JSON Schema, ... 
© 2014 EclipseSource | http://www.eclipsesource.com
Why should you consider using the EMF? 
● Goal of EMF 
○ Extract the intrinsic “model” 
○ Generate model-dependent artifacts automatically 
© 2014 EclipseSource | http://www.eclipsesource.com
What is EMF? 
● EMF is ... 
○ A simple, pragmatic approach to (meta-)modeling 
○ Mature and proven modeling framework (since 2002) 
○ Supported by a large and very active open source community 
○ Surrounded by a huge ecosystem of tools and frameworks 
○ Used as the basis for tens of thousands of applications and DSLs 
● EMF is not ... 
○ UML 
○ A modeling tool 
… but both can be (and have been) built using EMF ;-) 
© 2014 EclipseSource | http://www.eclipsesource.com
Building blocks of EMF 
● Modeling language and environment 
○ Develop your data/domain model 
○ Import from existing specifications 
(UML, XSD, annotated Java interfaces) 
● Code generator 
○ Generation of high-quality Java API 
○ Solving complex issues, 
such as bidirectional references, containments, ... 
● Frameworks for working/processing models 
○ Change notifications 
○ Command-based manipulation 
○ Validation and model persistence 
○ Generic API and reflection mechanisms 
© 2014 EclipseSource | http://www.eclipsesource.com
Key Characteristics of EMF 
● Modeling language and environment 
○ Focusing on the essentials 
○ Pragmatic and small modeling language 
● Extensible and high-quality APIs 
○ Generated code is build to be extended 
○ Separation of interfaces and implementation 
○ Uses several proven design patterns 
■ Observer, adapter, abstract factories, etc. 
● Domain independent and generic 
○ Applicable to any domain 
○ Support to process instances generically 
© 2014 EclipseSource | http://www.eclipsesource.com
Enough theory… time for a demo 
© 2014 EclipseSource | http://www.eclipsesource.com
Huge Ecosystem on top of EMF (1) 
● Storing models 
○ Default serialization with XMI 
○ EMFStore, CDO, Teneo 
● Editing of instances 
○ Default editor 
○ EEF: Editor with improved usability 
○ Grammar-driven approach: e.g., Xtext 
○ Graphical modeling frameworks: e.g., Sirius, GMF, Graphiti 
○ Form-based UIs: EMFForms (brief demo) 
EEF Xtext Sirius 
© 2014 EclipseSource | http://www.eclipsesource.com
Huge Ecosystem on top of EMF (2) 
● Collaboration and versioning 
○ Live collaboration: CDO 
○ Versioning support: EMF Compare, CDO, and EMFStore 
○ Demo: EMF Compare 
● Model-to-model and model-to-text generation 
○ Model-to-model: ATL, QVT, Xtend 
○ Model-to-text: Acceleo, Xtend 
● Data/model migration 
○ Change your data model: Ecore Editor with Edapt Tooling 
○ Migrate your data conforming to the data model: Edapt Runtime 
© 2014 EclipseSource | http://www.eclipsesource.com
Key Take-Aways & Getting Started 
● EMF is a framework for the data model of any application: 
○ High-quality implementation for common functionality 
● EMF has a large ecosystem of frameworks for data 
○ CRUD Editing 
○ Graphical Editing 
○ Serialization: XML, JSON, Database, Model Repository 
○ Versioning and Comparison 
○ Many more… 
● Get started with EMF 
○ Getting started with EMF Tutorial: http://eclipsesource.com/blogs/tutorials/emf-tutorial/ 
○ EMF Training 
○ EMF Book and EMF Newsgroup 
© 2014 EclipseSource | http://www.eclipsesource.com
Please leave feedback 
© 2014 EclipseSource | http://www.eclipsesource.com

Contenu connexe

Tendances

Adapter Pattern Abhijit Hiremagalur 200603
Adapter Pattern Abhijit Hiremagalur 200603Adapter Pattern Abhijit Hiremagalur 200603
Adapter Pattern Abhijit Hiremagalur 200603
melbournepatterns
 

Tendances (17)

[SiriusCon 2018] Eclipse Sirius applied to a RAD Tool in Japan
[SiriusCon 2018] Eclipse Sirius applied to a RAD Tool in Japan[SiriusCon 2018] Eclipse Sirius applied to a RAD Tool in Japan
[SiriusCon 2018] Eclipse Sirius applied to a RAD Tool in Japan
 
Dive into POOSL : Simulate your systems!
Dive into POOSL : Simulate your systems!Dive into POOSL : Simulate your systems!
Dive into POOSL : Simulate your systems!
 
UML: This Time We Mean It!
UML: This Time We Mean It!UML: This Time We Mean It!
UML: This Time We Mean It!
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UML
 
GEF4 - Sightseeing Mars
GEF4 - Sightseeing MarsGEF4 - Sightseeing Mars
GEF4 - Sightseeing Mars
 
Uml basics
Uml basicsUml basics
Uml basics
 
Focap
FocapFocap
Focap
 
Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfProgramming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and Alf
 
Graphics Libraries
Graphics LibrariesGraphics Libraries
Graphics Libraries
 
Massif - the love child of Matlab Simulink and Eclipse
Massif - the love child of Matlab Simulink and EclipseMassif - the love child of Matlab Simulink and Eclipse
Massif - the love child of Matlab Simulink and Eclipse
 
A Smart Development Environment for Infrastructure as Code
A Smart Development Environment for Infrastructure as CodeA Smart Development Environment for Infrastructure as Code
A Smart Development Environment for Infrastructure as Code
 
Adapter design-pattern2015
Adapter design-pattern2015Adapter design-pattern2015
Adapter design-pattern2015
 
Adapter Pattern Abhijit Hiremagalur 200603
Adapter Pattern Abhijit Hiremagalur 200603Adapter Pattern Abhijit Hiremagalur 200603
Adapter Pattern Abhijit Hiremagalur 200603
 
GEF - Past, Present, and Future
GEF - Past, Present, and FutureGEF - Past, Present, and Future
GEF - Past, Present, and Future
 
OWLGrEd/CNL: a Graphical Editor for OWL with Multilingual CNL Support
OWLGrEd/CNL: a Graphical Editor for OWL with Multilingual CNL SupportOWLGrEd/CNL: a Graphical Editor for OWL with Multilingual CNL Support
OWLGrEd/CNL: a Graphical Editor for OWL with Multilingual CNL Support
 
GEF4 - Our Mission to Mars
GEF4 - Our Mission to MarsGEF4 - Our Mission to Mars
GEF4 - Our Mission to Mars
 
Design Pattern lecture 3
Design Pattern lecture 3Design Pattern lecture 3
Design Pattern lecture 3
 

En vedette

GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11
Chauvin Mariot
 
Graphiti and GMF Compared
Graphiti and GMF ComparedGraphiti and GMF Compared
Graphiti and GMF Compared
koentsje
 
Eclipse Modeling Framework
Eclipse Modeling FrameworkEclipse Modeling Framework
Eclipse Modeling Framework
Ajay K
 
Artifacts to Enable Data Goverance
Artifacts to Enable Data GoveranceArtifacts to Enable Data Goverance
Artifacts to Enable Data Goverance
DATAVERSITY
 
Building RESTful Java Applications with EMF
Building RESTful Java Applications with EMFBuilding RESTful Java Applications with EMF
Building RESTful Java Applications with EMF
Kenn Hussey
 

En vedette (20)

GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11
 
Epf composer overviewpart2
Epf composer overviewpart2Epf composer overviewpart2
Epf composer overviewpart2
 
GMF showcase
GMF showcaseGMF showcase
GMF showcase
 
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling FrameworkEclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
 
EclipseCon 2006: Introduction to the Eclipse Modeling Framework
EclipseCon 2006: Introduction to the Eclipse Modeling FrameworkEclipseCon 2006: Introduction to the Eclipse Modeling Framework
EclipseCon 2006: Introduction to the Eclipse Modeling Framework
 
Graphiti and GMF Compared
Graphiti and GMF ComparedGraphiti and GMF Compared
Graphiti and GMF Compared
 
Eclipse Modeling Framework
Eclipse Modeling FrameworkEclipse Modeling Framework
Eclipse Modeling Framework
 
CDO Ignite
CDO IgniteCDO Ignite
CDO Ignite
 
Getting Started with Knowledge Graphs
Getting Started with Knowledge GraphsGetting Started with Knowledge Graphs
Getting Started with Knowledge Graphs
 
Introduction to Software Quality & its' Challenges
Introduction to Software Quality & its' ChallengesIntroduction to Software Quality & its' Challenges
Introduction to Software Quality & its' Challenges
 
Semantic Technology. Origins and Modern Enterprise Use
Semantic Technology. Origins and Modern Enterprise UseSemantic Technology. Origins and Modern Enterprise Use
Semantic Technology. Origins and Modern Enterprise Use
 
Artifacts to Enable Data Goverance
Artifacts to Enable Data GoveranceArtifacts to Enable Data Goverance
Artifacts to Enable Data Goverance
 
Chicago Manual of Style 16th Edition - Purdue Owl
Chicago Manual of Style 16th Edition  -  Purdue OwlChicago Manual of Style 16th Edition  -  Purdue Owl
Chicago Manual of Style 16th Edition - Purdue Owl
 
Ontology
Ontology Ontology
Ontology
 
First Steps in Semantic Data Modelling and Search & Analytics in the Cloud
First Steps in Semantic Data Modelling and Search & Analytics in the CloudFirst Steps in Semantic Data Modelling and Search & Analytics in the Cloud
First Steps in Semantic Data Modelling and Search & Analytics in the Cloud
 
EMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from ModelsEMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from Models
 
Top 10 Artifacts Needed For Data Governance
Top 10 Artifacts Needed For Data GovernanceTop 10 Artifacts Needed For Data Governance
Top 10 Artifacts Needed For Data Governance
 
Domain-Driven Data
Domain-Driven DataDomain-Driven Data
Domain-Driven Data
 
Open statistics Belgium
Open statistics BelgiumOpen statistics Belgium
Open statistics Belgium
 
Building RESTful Java Applications with EMF
Building RESTful Java Applications with EMFBuilding RESTful Java Applications with EMF
Building RESTful Java Applications with EMF
 

Similaire à What every Eclipse developer should know about EMF

EclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbenchEclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbench
melbats
 

Similaire à What every Eclipse developer should know about EMF (20)

What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !
 
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...
 
EduSymp 2022 slides (The Epsilon Playground)
EduSymp 2022 slides (The Epsilon Playground)EduSymp 2022 slides (The Epsilon Playground)
EduSymp 2022 slides (The Epsilon Playground)
 
notesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling Toolsnotesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling Tools
 
Modelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfModelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdf
 
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling SocietyEclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
 
Openflexo presentation at SIMF Workshop @Models2013
Openflexo presentation at SIMF Workshop @Models2013Openflexo presentation at SIMF Workshop @Models2013
Openflexo presentation at SIMF Workshop @Models2013
 
Tailor made model comparison: How to customize EMF Compare for your modeling ...
Tailor made model comparison: How to customize EMF Compare for your modeling ...Tailor made model comparison: How to customize EMF Compare for your modeling ...
Tailor made model comparison: How to customize EMF Compare for your modeling ...
 
EclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbenchEclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbench
 
Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...
Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...
Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologies
 
Model Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse LinkModel Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse Link
 
Onnx and onnx runtime
Onnx and onnx runtimeOnnx and onnx runtime
Onnx and onnx runtime
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Model Execution: Past, Present and Future
Model Execution: Past, Present and FutureModel Execution: Past, Present and Future
Model Execution: Past, Present and Future
 
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformEclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
 
Democamp Munich 2013: Are you still manually coding UIs?
Democamp Munich 2013: Are you still manually coding UIs?Democamp Munich 2013: Are you still manually coding UIs?
Democamp Munich 2013: Are you still manually coding UIs?
 
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in Nantes
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in NantesMoDisco & ATL - Eclipse DemoCamp Indigo 2011 in Nantes
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in Nantes
 
DI4R 2018 - Ellip: a collaborative workplace for EO Open Science
DI4R 2018 - Ellip: a collaborative workplace for EO Open ScienceDI4R 2018 - Ellip: a collaborative workplace for EO Open Science
DI4R 2018 - Ellip: a collaborative workplace for EO Open Science
 
Deep learning beyond the learning - Jörg Schad - Codemotion Amsterdam 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Amsterdam 2018Deep learning beyond the learning - Jörg Schad - Codemotion Amsterdam 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Amsterdam 2018
 

Plus de Philip Langer

Play Framework: The Basics
Play Framework: The BasicsPlay Framework: The Basics
Play Framework: The Basics
Philip Langer
 
Adaptable Model Versioning using Model Transformation By Demonstration
Adaptable Model Versioning using Model Transformation By DemonstrationAdaptable Model Versioning using Model Transformation By Demonstration
Adaptable Model Versioning using Model Transformation By Demonstration
Philip Langer
 

Plus de Philip Langer (6)

Play Framework: The Basics
Play Framework: The BasicsPlay Framework: The Basics
Play Framework: The Basics
 
A Brief Introduction to Working with Git
A Brief Introduction to Working with GitA Brief Introduction to Working with Git
A Brief Introduction to Working with Git
 
You need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF ProfilesYou need to extend your models? EMF Facet vs. EMF Profiles
You need to extend your models? EMF Facet vs. EMF Profiles
 
Adaptable Model Versioning using Model Transformation By Demonstration
Adaptable Model Versioning using Model Transformation By DemonstrationAdaptable Model Versioning using Model Transformation By Demonstration
Adaptable Model Versioning using Model Transformation By Demonstration
 
From UML Profiles to EMF Profiles and Beyond (TOOLS'11)
From UML Profiles to EMF Profiles and Beyond (TOOLS'11)From UML Profiles to EMF Profiles and Beyond (TOOLS'11)
From UML Profiles to EMF Profiles and Beyond (TOOLS'11)
 
Colex: A Web-based Collaborative Conflict Lexicon
Colex: A Web-based Collaborative Conflict LexiconColex: A Web-based Collaborative Conflict Lexicon
Colex: A Web-based Collaborative Conflict Lexicon
 

Dernier

Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Dernier (20)

WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 

What every Eclipse developer should know about EMF

  • 1. What every Eclipse developer should know about the Eclipse Modeling Framework (EMF) EclipseCon Europe 2014, 2014-10-29, Ludwigsburg Philip Langer and Maximilian Koegel {planger|mkoegel}@eclipsesource.com © 2014 EclipseSource | http://www.eclipsesource.com
  • 2. Why should you consider using the EMF? ● Every program is build around a (data) model ○ Implicit in the developer’s mind ○ Sometimes, it’s defined in UML, XSD, JSON Schema, ... © 2014 EclipseSource | http://www.eclipsesource.com
  • 3. Why should you consider using the EMF? ● Goal of EMF ○ Extract the intrinsic “model” ○ Generate model-dependent artifacts automatically © 2014 EclipseSource | http://www.eclipsesource.com
  • 4. What is EMF? ● EMF is ... ○ A simple, pragmatic approach to (meta-)modeling ○ Mature and proven modeling framework (since 2002) ○ Supported by a large and very active open source community ○ Surrounded by a huge ecosystem of tools and frameworks ○ Used as the basis for tens of thousands of applications and DSLs ● EMF is not ... ○ UML ○ A modeling tool … but both can be (and have been) built using EMF ;-) © 2014 EclipseSource | http://www.eclipsesource.com
  • 5. Building blocks of EMF ● Modeling language and environment ○ Develop your data/domain model ○ Import from existing specifications (UML, XSD, annotated Java interfaces) ● Code generator ○ Generation of high-quality Java API ○ Solving complex issues, such as bidirectional references, containments, ... ● Frameworks for working/processing models ○ Change notifications ○ Command-based manipulation ○ Validation and model persistence ○ Generic API and reflection mechanisms © 2014 EclipseSource | http://www.eclipsesource.com
  • 6. Key Characteristics of EMF ● Modeling language and environment ○ Focusing on the essentials ○ Pragmatic and small modeling language ● Extensible and high-quality APIs ○ Generated code is build to be extended ○ Separation of interfaces and implementation ○ Uses several proven design patterns ■ Observer, adapter, abstract factories, etc. ● Domain independent and generic ○ Applicable to any domain ○ Support to process instances generically © 2014 EclipseSource | http://www.eclipsesource.com
  • 7. Enough theory… time for a demo © 2014 EclipseSource | http://www.eclipsesource.com
  • 8. Huge Ecosystem on top of EMF (1) ● Storing models ○ Default serialization with XMI ○ EMFStore, CDO, Teneo ● Editing of instances ○ Default editor ○ EEF: Editor with improved usability ○ Grammar-driven approach: e.g., Xtext ○ Graphical modeling frameworks: e.g., Sirius, GMF, Graphiti ○ Form-based UIs: EMFForms (brief demo) EEF Xtext Sirius © 2014 EclipseSource | http://www.eclipsesource.com
  • 9. Huge Ecosystem on top of EMF (2) ● Collaboration and versioning ○ Live collaboration: CDO ○ Versioning support: EMF Compare, CDO, and EMFStore ○ Demo: EMF Compare ● Model-to-model and model-to-text generation ○ Model-to-model: ATL, QVT, Xtend ○ Model-to-text: Acceleo, Xtend ● Data/model migration ○ Change your data model: Ecore Editor with Edapt Tooling ○ Migrate your data conforming to the data model: Edapt Runtime © 2014 EclipseSource | http://www.eclipsesource.com
  • 10. Key Take-Aways & Getting Started ● EMF is a framework for the data model of any application: ○ High-quality implementation for common functionality ● EMF has a large ecosystem of frameworks for data ○ CRUD Editing ○ Graphical Editing ○ Serialization: XML, JSON, Database, Model Repository ○ Versioning and Comparison ○ Many more… ● Get started with EMF ○ Getting started with EMF Tutorial: http://eclipsesource.com/blogs/tutorials/emf-tutorial/ ○ EMF Training ○ EMF Book and EMF Newsgroup © 2014 EclipseSource | http://www.eclipsesource.com
  • 11. Please leave feedback © 2014 EclipseSource | http://www.eclipsesource.com