I looked at this exact problem and after putting together some spikes pulled back. It is actually quite a bit harder on the receive side than you would expect. I strongly suggest you avoid writing an abstraction and just pick an implementation. Service buses tend to be pretty opinionated and different once you get past the act of sending simple messages.
BTW, Azure service bus will work just fine with an on premises installed app. It is actually pretty cheap for what it provides. That's actually the direction we went. As a side note, check out https://github.com/ProjectExtensions/ProjectExtensions.Azure.ServiceBus. It is a very easy to use library that lets you work with Azure service bus like you do with Rhino or NServiceBus. NServiceBus has also added support for Azure queues and can be licensed for OEM use (though it may not be cheap). Enjoy! On Wednesday, March 14, 2012 12:50:38 PM UTC-5, Matt Johnson wrote: > > Pardon my ignorance, but is there any project that provides a common > abstraction layer for different service bus implementations? > > Something similar to how CommonServiceLocator works for IoC > containers? > > I'm writing an app that will be licensed in two ways. 1) a "licensed > edition" that will run on premesis, and 2) a "hosted edition" that > will run in the Windows Azure cloud. > > I would like to use Rhino Service Bus for the licensed edition, and > Azure Service Bus for the hosted edition. It would be great if there > was an easy "provider model" implementation, such that I could just > swap in the desired service bus. Otherwise, I fear I may have tons > of "if (hosted) { azuresb } else { rhinosb }" code scattered > throughout my app. > > Thoughts? > On Wednesday, March 14, 2012 12:50:38 PM UTC-5, Matt Johnson wrote: > > Pardon my ignorance, but is there any project that provides a common > abstraction layer for different service bus implementations? > > Something similar to how CommonServiceLocator works for IoC > containers? > > I'm writing an app that will be licensed in two ways. 1) a "licensed > edition" that will run on premesis, and 2) a "hosted edition" that > will run in the Windows Azure cloud. > > I would like to use Rhino Service Bus for the licensed edition, and > Azure Service Bus for the hosted edition. It would be great if there > was an easy "provider model" implementation, such that I could just > swap in the desired service bus. Otherwise, I fear I may have tons > of "if (hosted) { azuresb } else { rhinosb }" code scattered > throughout my app. > > Thoughts? > -- You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To view this discussion on the web visit https://groups.google.com/d/msg/rhino-tools-dev/-/2zItG4pzSSYJ. To post to this group, send email to rhino-tools-dev@googlegroups.com. To unsubscribe from this group, send email to rhino-tools-dev+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rhino-tools-dev?hl=en.