The Amarok Framework Library is my pet project that I work on in my spare time. It’s a collection of .NET libraries for building Windows desktop applications in a little unusual way. It is used in one of my own home projects and recently another project group at my full-time employer picked it up. It is far from complete, but most parts should be pretty stable. I’m just not happy with all the API and design decisions, so expect some breaking changes.
So, what’s "unusual" about this library? Since many years I’m interested in messaging and messaging patterns in general. Messaging is great not just for connecting distributed services and applications. We can use it too inside of an application process to build loosely-coupled and reactive applications. I’m talking here about standard Windows desktop applications that can be fast, responsive and can automatically utilize all available processor cores.
Sounds familiar? Yes, the actor model is all about this: small reactive objects that use messaging as communication between actors. It is powerful, but it requires to think in different patterns and to design applications a little bit different than usual.
This framework library is an attempt to take advantage of the actor/agent programming model for standalone desktop applications. Most of the concepts are inspired by the actor model, Microsoft Robotics CCR and the TPL Dataflow library.
Version 2.2.0 released
For a full list of changes refer to Release Notes