This project is created based on the idea of EasyNetQ, since Mike Hadlow used MIT licence, I hope he doesn't mind when I use his source code in this project.
I was so lucky to have chances to work with RabbitMQ in my 2 recent companies. EasyNetQ is the library I looked into at first place. Honestly, It's a good implementation, the author covered many problems he got with RabbitMQ and I learnt from that as well. However, I created this project for below reasons:
Burrow.NET has been supporting all of those and other things, we've been using this library in many apps in our production environment to process million of messages a day.
Alright, to publish a message, you just need something like:
var tunnel = RabbitTunnel.Factory.Create();
tunnel.Publish(new OrderDetail
{
Name = "Google Nexus 7",
Color = "Black",
Amount = 1
});
To subscribe:
var tunnel = RabbitTunnel.Factory.Create();
tunnel.Subscribe(new SubscriptionOption<OrderDetail>
{
BatchSize = 2,
MessageHandler = (msg) =>
{
// Process message here
},
QueuePrefetchSize = 10,
SubscriptionName = "SubscriptionKey"
});
Ofcourse you're gonna need a connection string to RabbitMQ server, exchange and queue defined to make it work. Please go to document page for more details how to run the test projects.
Beside Burrow.NET, I have implemented Burrow.Extras and Burrow.RPC which provide some utilities to play with RabbitMQ using C# such as priority queue implementation and RPC.
Documentation can be found at github wiki page: https://github.com/vanthoainguyen/Burrow.NET/wiki/_pages
Some blog posts:
Nuget library is also added at http://nuget.org/packages/Burrow.NET