Top Banner
© 2014 EclipseSource | http://www.eclipsesource.com 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
11

What every Eclipse developer should know about EMF

Aug 20, 2015

Download

Software

Philip Langer
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: What every Eclipse developer should know about EMF

© 2014 EclipseSource | http://www.eclipsesource.com

What every Eclipse developershould know about the

Eclipse Modeling Framework (EMF)EclipseCon Europe 2014, 2014-10-29, Ludwigsburg

Philip Langer and Maximilian Koegel{planger|mkoegel}@eclipsesource.com

Page 2: What every Eclipse developer should know about EMF

© 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, ...

Page 3: What every Eclipse developer should know about EMF

© 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

Page 4: What every Eclipse developer should know about EMF

© 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 ;-)

Page 5: What every Eclipse developer should know about 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

Page 6: What every Eclipse developer should know about EMF

© 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

Page 7: What every Eclipse developer should know about EMF

© 2014 EclipseSource | http://www.eclipsesource.com

Enough theory… time for a demo

Page 8: What every Eclipse developer should know about EMF

© 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

Page 9: What every Eclipse developer should know about EMF

© 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

Page 10: What every Eclipse developer should know about EMF

© 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

Page 11: What every Eclipse developer should know about EMF

© 2014 EclipseSource | http://www.eclipsesource.com

Please leave feedback