You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by hammett <ha...@uol.com.br> on 2003/12/27 22:18:42 UTC

[ANN] Castle MX is on the sandbox

[PMC was copied to pay attention to what is under CLI umbrella and what is
not]

Castle is under development and will be a CLI implementation of a Container
inspired by Merlin. Although the existing container is enough, the Castle
purposes are more ambitious. It's hardly concerned about one thing I'm
mostly concerned: the user shall dictate what features he wants or not. So a
"La carte" container is necessary. What technology would best fits this
purpose? JMX ! - in Java, but nothing like this exists in the CLI world...
until now.

The Castle Management Extension is a kind of JMX api and simple
implementation delivery as the base of all the Castle Container. Please
check the test cases for a insight of what it does.


== Mono ==

The build scripts were based on log4net scripts - that compiles in a lot of
CLI implementations. We now are positive this is CLI compliant.

Please refer to
http://cvs.apache.org/viewcvs.cgi/avalon-sandbox/avalon-net/Castle/README.txt?rev=1.1&view=auto


== Invoker Strategies ==

Any JMX implementation must allow one to be able to invoke operations on
local/remote components. Reflection is the normal answer for such
requirements. This is implemented by
Castle\CastleManagementExtensions\Default\Strategy\ReflectionInvokerStrategy
.cs [1]

But we all know Reflection's performance is not good. So a code generation
strategy was already provided in
Castle\CastleManagementExtensions\Default\Strategy\CodeGenerationInvokerStra
tegy.cs [2]

The only issue here is that this Class uses the C# Compiler, and this is
available in the class Microsoft.CSharp.CSharpCodeProvider

I'm positive that Mono exposes a bind for this package to guarantee
interoperability so we're sure this will work on both plataforms. Anyway we
have this use of a class that is not under the CLI specification. Another
option is to use Reflection.Emit to generate an assembly on-the-fly. This
can be done by emitting IL code by hand. Its not that hard, but you must
know that IL is just a better ASM.


== Management Interface ==

This is a delicate subject. Can we provide a Web front end? Sure. But in
ASP.Net...
So forget it. And about a desktop management front end? No problem,
Winforms. Uhhh!

I'd rather do not implement a management interface and wait for people
outside ASF to build one (if someone needs).


== Castle Container ==

I'm working on it. May have some code until next week. So we would have two
container to chose and release in the future one of them.




Regards,

hammett

1
http://cvs.apache.org/viewcvs.cgi/avalon-sandbox/avalon-net/Castle/CastleManagementExtensions/Default/Strategy/ReflectionInvokerStrategy.cs?rev=1.1&view=auto
2
http://cvs.apache.org/viewcvs.cgi/avalon-sandbox/avalon-net/Castle/CastleManagementExtensions/Default/Strategy/CodeGenerationInvokerStrategy.cs?rev=1.2&view=auto


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org