![Gitter](https://badges.gitter.im/join chat.svg)
Dogen is a suite of tools focusing on bringing Model Driven Software Development (MDSD) workflows to C++ development. It is also largely inspired by the Domain Driven Design (DDD) methodology, albeit it is not strictly necessary to follow the DDD approach in order to use it.
In lay terms, our main objective is to automate the modeling process as much as possible: the user creates domain models in one of the supported front-end formats and respecting a set of predefined restrictions; Dogen then uses this input to generate a source code representation of the model. At present the main front-end is Dia, but we also support JSON (Dia test models, JSON test models). Depending on use cases and user demand, other frontends may follow. The generated code contains most of the functionality required from a typical C++ domain object such as serialisation, hashing, streaming and so on. Whilst we intend for the suite to be useful out of the box for most use cases, our end goal is enable users to extend Dogen, adapting it to the vagaries of their specific use cases.
Please note that the code generated by dogen is C++-11 only.
We have started to provide experimental binary packages on BinTray. At present we support Debian Linux, OSX and Windows, all in 64-bit. The packages are generated at the end of each sprint.
You can download the packages from this location: https://bintray.com/domaindrivenconsulting/Dogen
To build Dogen on Linux and OSX you need a moderately recent compiler such as GCC 4.7 or clang 3.7 and a very recent version of Boost: ideally 1.62. Older Boost versions work, but require patches. See our patches directory.
Once you have Boost installed, you can simply do:
git clone git@github.com:DomainDrivenConsulting/dogen.git
cd dogen/build
mkdir output
cd output
cmake ../..
make -j5 # number of cores available
If you have installed Boost on a non-standard location, you need to
add CMAKE_INCLUDE_PATH
and CMAKE_LIBRARY_PATH
to the
commands above:
CMAKE_INCLUDE_PATH=/my/boost/include/path CMAKE_LIBRARY_PATH=/my/boost/lib/path cmake ../..
Dogen also builds under Visual Studio 2015 and a recent version of Boost (as per above). You also need to install git and cmake. Once all the dependencies have been installed, the build is similar to Linux (assuming a msysgit shell, but CMD/Powershell should work fine too):
git clone git@github.com:DomainDrivenConsulting/dogen.git
cd dogen/build
mkdir output
cd output
cmake ../.. -DCMAKE_BUILD_TYPE=Release -G 'Visual Studio 14 2015 Win64'
cmake --build . --config Release --target ALL_BUILD
At present we don't have a recent demo of Dogen, but this fairly old one should give you an idea of its workflow.
If you have a failure building Dogen or running its unit tests, please submit a bug report that includes:
- the error messages;
- the compiler and Boost version;
- the Operative System.
If you find a bug whilst using Dogen, please send the compressed log
file as well; it is located under the directory where you executed
Dogen and named dogen.knitter.MODEL.log
where MODEL
is the
name of the model you ran against.
Bugs can be submitted using github Issues.