EMF4Net is a proposed open source component under the Eclipse Modeling Framework Technology (EMFT) project. The component's purpose is to provide the core functionality of the Eclipse Modeling Framework (EMF) for the .Net platform. EMF4Net should allow the generation of C# code from Ecore models and the usage of that code in a similar way the Java code generated by EMF can be used.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare the intent and scope of the component. This proposal is written to solicit additional participation and input from the Eclipse community. Everyone is invited to comment on and/or join the component. Please send all feedback to the eclipse.technology.emft newsgroup (please prefix the subject with [EMF4Net]).
EMF provides a generic code generation facility for Ecore models and code generation templates for Java. The generated Java code is embedded into a Java framework that supports standard functionalities like serialization, notification, adapters, reflection, and others. The availability of these functionalities out of the box boost productivity of EMF modeling and code generation in comparison to "plain old Java programming".
Neither Ecore nor the EMF code generation facility are limited to Java but provide the ability to generate code for other object-oriented languages like Smalltalk, C++, C#, or Ruby. However, the generation of non Java code alone does not make that code as useful as the Java code generated by EMF, because EMF's core runtime is missing in the non Java languages. This means that a sound enhancement of EMF to other programming languages also need to provide EMF's core runtime for that languages.
C# and .Net
C# is an object-oriented programming language developed by Microsoft to compete with Java. It is designed for server, desktop as well as embedded system environments. C# is the leading language of the .Net initiative and approved as ECMA and ISO standard. The syntax is based on C++ and borrows many aspects from Java and Delphi. C# and .Net are used by a huge development community all over the world.
Due to the intermediate language approach (which is similar to Java's bytecode) and the language independent nature of the .Net platform a program or library written in C# can be used in any program written in another .Net language like Visual Basic or Managed C++. As automatic translations between any .Net languages are possible, a translation of EMF's core runtime to C# is also usable for programmers of other .Net languages.
Unification of UML, XML, Java, and C#
EMF unifies UML, XML and Java at the modeling abstraction level by providing means to interchange any of this "data model" representations. EMF4Net tries to add C# as a fourth interchangeable modeling language to EMF.