For a new project of mine I was looking for a messaging subsystem for C# which I was able to use from literally everything else. When working with C# you will hear that Microsoft Message Queue is your choice. That’s about right. But then you’re bound to a specific product and the use with PHP is very limited or impossible from Unix systems.
My second choice was JMS. You might ask how do I get JMS working with C#. But actually thats not even that hard. Following the small how to OpenJMS from C# which I adapted for Visual Studio I got OpenJMS working with C# quite easily.
But that’s not all. I was also able to get Java libraries as assemblies into .NET and am actually able to use the full power of some of the libraries from within C#. This means you can combine the best of both into your programs. The whole thing has only one little drawback as your C# program needs to run a embedded Java Virtual Machine the memory footprint will be not as what you’d expect of a simply .NET application.
Nonetheless. I got JMS running with C# and could even implemented the MessageListener classes with C# and hook them into my JMS listener. Furthermore you would be able to use log4j for instance (nobody would as there is a native implementation called log4net available).