What every Eclipse developer should know about EMF

Download What every Eclipse developer should know about EMF

Post on 20-Aug-2015




4 download

Embed Size (px)


  1. 1. What every Eclipse developershould know about theEclipse Modeling Framework (EMF)EclipseCon Europe 2014, 2014-10-29, LudwigsburgPhilip Langer and Maximilian Koegel{planger|mkoegel}@eclipsesource.com 2014 EclipseSource | http://www.eclipsesource.com
  2. 2. Why should you consider using the EMF? Every program is build around a (data) model Implicit in the developers mind Sometimes, its defined in UML, XSD, JSON Schema, ... 2014 EclipseSource | http://www.eclipsesource.com
  3. 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. 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. 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. 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. 7. Enough theory time for a demo 2014 EclipseSource | http://www.eclipsesource.com
  8. 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. 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. 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. 11. Please leave feedback 2014 EclipseSource | http://www.eclipsesource.com


View more >