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.
● 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 ;-)
such as bidirectional references, containments, ...
● Frameworks for working/processing models○ Change notifications○ Command-based manipulation○ Validation and model persistence○ Generic API and reflection mechanisms
● 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
● 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