(Note: this is basically the content of an email I sent to Davy Brion. He suggested I post it to the mailing list for input/comments )
I've been thinking about taking Agatha to the next level. I have a bunch of ideas and they're not all fully formed but i wanted to reach out and open a discussion and see what people think.
We've been (successfully) using Agatha in our project for a few years now. There are many things that i like about it and a few that i'm finding limiting.
Here are some of the ideas/goals that I have for v2.0:
- Remove dependency on specific IoC containers (either move it all to satellite projects or ask consumers to provide Factories)
- Async by default (move to .net 4.5 to allow using async/await as much as possible)
- move transport/bus out of the "core" (layer in the various transports like local/in-memory, WCF, MSMQ, Azure Service bus, etc)
- make the "client" a Portable Class Library targeting as many platforms as possible for maximum reuse (again, separating the transport since this may not be supportable on all platforms)
Please feel free to chime in with any thoughts/ideas/feature requests. And, of course, if anyone is interested in working on this with me, i'm keen to have help. Also, Davy's given his blessing (in principle) to either trying this directly in the Agatha project or a fork to a new project based heavily on the great work that's already there.
Michael.