====== Implementations by Language ====== See also: [[Code Examples|Code Examples]] for examples in some of these languages. ===== Smalltalk ===== http://fulloo.info/Examples/SqueakExamples/\\ Author: Trygve Reenskaug ===== C++ ===== http://fulloo.info/Examples/C++Examples/index.html\\ See also the book [[http://www.amazon.com/Lean-Architecture-Agile-Software-Development/dp/0470684208/ref=sr_1_1_bnp_1_pap?s=books&ie=UTF8&qid=1390152840&sr=1-1&keywords=lean+architecture+for+agile+software+development|Lean Architecture: for Agile Software Development]]\\ Author: James O. Coplien ===== Ruby ===== **Maroon**\\ https://github.com/runefs/maroon\\ Author: Rune Funch\\ Further documentation: http://runefs.com/2013/02/25/using-maroon-to-do-injectionless-dci-part-ii/ See also: **Sample Application**\\ http://dci-in-ruby.info/ **Books**\\ [[http://www.amazon.com/Lean-Architecture-Agile-Software-Development/dp/0470684208/ref=sr_1_1_bnp_1_pap?s=books&ie=UTF8&qid=1390152840&sr=1-1&keywords=lean+architecture+for+agile+software+development|Lean Architecture: for Agile Software Development]]\\ Author: James O. Coplien [[http://www.clean-ruby.com/|Clean Ruby]]\\ Author: Jim Gay ===== Scala ===== **ScalaDCI**\\ https://github.com/DCI/scaladci\\ Author: Marc Grue ===== Marvin ===== Language designed specifically for DCI, based on C#.\\ https://github.com/runefs/Marvin\\ Author: Rune Funch\\ Examples: http://fulloo.info/Examples/Marvin/ ===== Javascript ===== **babel-dci**\\ https://github.com/mbrowne/babel-dci\\ Author: Matt Browne **Run-time-only implementation:**\\ http://egonelbre.com/code/javascript-dci/\\ Author: Egon Elbre ===== C# ===== While it's possible to do limited DCI in C#, currently the best option for C# is to use Marvin (see above). Better native support in C# may be possible in the future due to new features Microsoft is currently considering for C#. In the meantime, if lack of IDE integration or other issues make Marvin an impractical option, this library comes quite close to proper DCI: https://github.com/ciscoheat/ivento-dci ===== Python ===== **Roles**\\ https://pypi.python.org/pypi/roles\\ Author: Arjan Molenaar ===== PHP ===== **dci-php**\\ https://github.com/mbrowne/dci-php\\ Author: Matt Browne ===== Haxe ===== (A language that compiles to a growing list of languages including Javascript, Flash, PHP, C++, C#, Java, and Python)\\ **haxedci**\\ https://github.com/ciscoheat/haxedci\\ Author: Andreas Söderlund\\ Example: https://github.com/ciscoheat/haxedci-example ===== Java ===== Qi4J, dci-cargo sample application\\ https://github.com/Qi4j/qi4j-sdk/tree/develop/samples/dci-cargo\\ Author: Marc Grue\\ Qi4J homepage: http://qi4j.org/