I’m a huge fan of Rhino Mocks and have written about it on this blog. Today I read that Ayende has an implementation for a Service Bus. Like nServicebus but “free”, even Udi Dahan talks about it. This is a first look at the Rhino ServiceBus.
Nuget
Like everything there is a nuget for Rhino.Servicebus. I’ve used nServicebus last year and the Rhino.Servicebus.Host looks familiar. Also the usage of Structuremap is implemented as a nuget. Easy setup of my projects.
But what is this Common.Logging? Still in active development and maybe worth a further look. After some reading I’ve got it working.
Consumer
Messages are send over an IServiceBus and handled by a Consumer. The Consumers are hooked up using a BootStrapper (StructureMapBootStrapper) and the App.Config. Everything is started from the commandline with the Rhino.ServiceBus.Host.exe as the hosting process. Someone has been paying attention to nServicebus 😉
Unit test
Developing consumers for Rhino.Servicebus separates the unit-of-work nicely. This makes unit testing very easy. Unlike nServicebus there is no testing nuget available, but I can mock/stub the IServicebus using Rhino.Mocks. RhinoServiceBusDemo in my github repositories contains tests for 100% code coverage, but involves Microsoft Fakes.
Conclusion
In comparison with nServiceBus the Rhino ServiceBus is rough and misses some descent documentation. Also no updates since June 2013.
But the product is free and the license allows all usage. No arguing there.
References
Learn how to use Rhino Service Bus on Hibernating Rhinos
RhinoServiceBusDemo in my github repositories
BSD-3 license of Rhino ServiceBus
nServiceBus license question on stackoverflow that links to Udi Dahan lists “free alternatives” to NServiceBus on yahoo.