Preface
The goal of this example is to demonstrate the features and
implementation of a domain-specific modeling environment to the reader. The
example will cover the issues of designing and implementing the modeling
language, building tool support for it (including 100% code generation and
visual debugging), working with it and finally extending it. Please note that
certain parts of the example may require working hands-on to ensure the best
understanding of the subject matter.
Depending on how deeply you want to explore the Watch
Example, you may need to install additional components to be able try out
certain advanced code generation, debugging and integration features.
Windows: C#
If you are on Windows, you can cover the elementary parts
of the example (Chapters 1 to 3) using Window’s default C# and .NET
services without any extra components. If you want to try out the Visual Studio
extension described in Section
4.2 you
need to have a Visual Studio license that allows extensions, e.g. 2013 Community
or later, or Professional in earlier versions. Additional development tools are
also required for generating and compiling code for Window Phone applications,
described in Section
4.3.
Mac OS X, Linux, optionally Windows: Java
If you are on Mac OS X or Linux, you can use Java –
which can also optionally be used on Windows. You must have at least the Java SE
Development Kit installed. The tested and recommended versions for each platform
are as follows:
 | Windows:
Java SE 8 update
111 |
 | Mac
OS X: Java SE 7 update
45 |
 | Linux:
OpenJDK 6 or 7 |
The JDK for Linux can be downloaded and installed from the
command line:
sudo apt-get install openjdk-7-jdk
By default on
Windows, the Watch Example code generator expects the Java SDK to be found from
C:\Program Files\Java\jdk1.8.0_111. If
you choose to install it elsewhere, please correct the
$winJDK path setting in the
‘__Paths’ generator to point to the right place. Similarly, the
default SDK directory for Mac OS X and Linux is
/usr and the respective variables in
‘__Paths’ are $macJDK and
$linuxJDK.
To try out other Java features like visual debugging,
Eclipse integration and Android development, further third-party components are
required. The tools and libraries required for visual debugging are covered in
the beginning of Section
2.6.1, while
the ones needed for Eclipse integration and Android development are covered by
Sections
5.2 and
5.3.1.
MetaEdit+ license
MetaEdit+ Workbench, including its evaluation version, can
be used for all of the tasks in this example. Most can also be carried out with
MetaEdit+ Modeler, with two exceptions:
 | Trying
out the extensions in Section 2.5
requires MetaEdit+
Workbench. |
 | The
hands-on examples in Section 2.6 require
either MetaEdit+ Workbench or MetaEdit+ with API
support. |
For further information about
MetaEdit+ please refer to the ‘MetaEdit+ User’s Guide’,
‘MetaEdit+ Workbench User’s Guide’ or our web pages at
http://www.metacase.com.