User Tools

Site Tools


existing_dci_implementations

Implementations by Language

See also: Code Examples for examples in some of these languages.

Smalltalk

C++

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

Lean Architecture: for Agile Software Development
Author: James O. Coplien

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/

existing_dci_implementations.txt · Last modified: 2017/07/31 00:20 by mbrowne