Hello all!
At work, I typically have to do more with C# than Java. However, ever
since I discovered Qi4j, I always wanted to have the similar
functionality in C#.
Lately, I've been working on implementing Qi4j for C#. Currently it is
called Slim-Qi4CS, because it is for C# and it does not have all
features of Qi4j (nor will it). I've tried to capture the very basic
core of what Qi4j is, and letting the rest to be extensions or
libraries.
Now, there still are two open questions I would like to ask.
1. Licencing. I almost-copy-pasted some of the API and Tests-code
(direct copypaste was not possible of course due to different
programming language, and I had to usually do additional modifications
to fit to overall framework), so should I retain the original Java
author name in those C# files? I haven't done direct copy-paste
anywhere though.
The SPI, bootstrap, and runtime modules were very different from Java
ones, so that is completely original.
Also, in which places should I mention that the original driver for
this was the Qi4j? Is this completely up to me, or is it required to
be written in eg. NOTICE file?
2. Name. Am I even allowed to use the "Qi"-terminology, or is that
copyrighted?
The current situation is that the Slim-Qi4CS begins to mature bit by
bit. There are some quite nice features, such as full support for
generic composites (because C# runtime retains fully generic
information), minimal usage of reflection invocation calls (implying
the heavy usage of code generation, and a performance boost).
Regarding the multi-type composites Niclas is talking about in his
mails, the Slim-Qi4jCS has support for them too, but just like in
Qi4j, I haven't looked really closely into it yet. But the Slim-Qi4CS
has support for multi-type-composites (through 'roles', as in Qi4j),
so it's just question of refactoring the API and other parts to better
and more intuitively support the idea of multi-type composites.
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev