CrossEcore: The Best Parts of the Ec­lipse Mod­el­ing Frame­work for C#, TypeScript, JavaS­cript and Swift

Our talk "CrossEcore: The Best Parts of the Eclipse Modeling Framework for C#, TypeScript, JavaScript and Swift" was accepted at the Modeling Symposium at EclipseCon 2018. The talk is available on YouTube.

The Eclipse Modeling Framework (EMF) has a whole ecosystem of great tools in place. The core of EMF is the modelling language Ecore which is supplemented by the Object Constraint Language (OCL) that can be used to describe class invariants, derived attributes, model queries, and pre- and postconditions. Today, software increasingly needs to support multiple target platforms and device types. However, feature-complete Ecore and OCL runtime APIs are not available for all these platforms, since the EMF technology mainly targets Java.

CrossEcore is a modeling framework that targets multiple platforms. Accordingly, CrossEcore generates C#, TypeScript, JavaScript or Swift source code from Ecore models with supplementing OCL expressions. CrossEcore includes Ecore and OCL runtime libraries for every target platform. The Ecore API provides many of the features that are known from EMF, e.g., persistence, reflection, notifications, switches, factories, referential integrity and validation. With the aid of an OCL Compiler, OCL expressions are translated to equivalent expressions of the target programming language.

This talk introduces CrossEcore and provides insights to an industrial case study. The presentation will be an opportunity to share our experiences of multi-platform software development in the context of CrossEcore with the Eclipse community. A major requirement of this case study is that the software runs on multiple target platforms locally on devices that are occasionally connected to the Internet. Results show that CrossEcore allows us to quickly create prototypes for Android, iOS, Windows, and web browsers. The different prototypes help us to evaluate multi-platform development technologies like Xamarin and Apache Cordova against native implementations. We have also integrated CrossEcore with database technologies, i.e., CouchDB, Couchbase, and PouchDB and the web framework Angular for evaluation purposes. The insights from the evaluation of different technologies help to make informed architectural design decisions.