77

We are in need of a distributed architecture messaging system/service bus with the capability of Publish/Subscribe. Does anyone have any reccomendations for a framework that we can use for .net applications?

Chris Kooken
  • 32,730
  • 15
  • 85
  • 123
  • 17
    Such questions are constructive very much. This question is on the top of Google search and is very useful. The same with my question about UML http://stackoverflow.com/q/6877121/377133 – Sergey Metlov Aug 26 '13 at 18:59
  • 4
    This is not constructive? You gotta be kidding me. I say this question is super constructive. Best resource on this type of question. – kheya Jan 23 '15 at 18:24
  • 2
    @kheya These types of questions have been deemed not constructive for a myriad of reasons (potential for spam, and how fast these tools get outdated). Here is one answer on meta explaining that, and I'm sure there are more: http://meta.stackoverflow.com/a/251135/1195056 – krillgar May 21 '15 at 12:36
  • 1
    In the end, [softwarerecs.se] has been spawned to handle these. – ivan_pozdeev Oct 19 '16 at 00:36
  • Please reopen the question. It places very high at Google search and needs to be discussed. – Jonas_Hess Mar 08 '17 at 20:51

7 Answers7

28

NServiceBus is growing in popularity. It is open source as well. Here is a Hanselminutes episode with Scott Hanselman talking with Udi Dahan about NServiceBus to help grok it. You should definitely evaluate using it.

UPDATE: There's also a DNR TV episode which shows what it's like to build an NServiceBus solution from scratch here: http://www.dnrtv.com/default.aspx?showNum=199

Tormod Fjeldskår
  • 5,952
  • 1
  • 29
  • 47
Dale Ragan
  • 18,202
  • 3
  • 54
  • 70
  • 43
    Although it is open source you may want to look at their licensing. Only some of use cases are free. In other cases you may need a commercial licence which comes at a cost. – Manfred Jan 19 '11 at 23:28
  • 4
    You probably want to steer away from ever downloading the nServiceBus source code, as the source code (after version 2.0) is not granted with an open source license (at least, not a common one). So, by having the source code, you could potentially find yourself in murky legal territory. If you're a small web shop, probably not a real issue. If you're a Fortune 500 company with deep pockets, however, ... – Eric J. May 10 '12 at 06:58
  • 1
    Just to clarify some of the comments, NServiceBus uses a Reciprocal license. It basically means that you must open source anything that you use NServiceBus with. If that does not work for you, then you must buy it. – Vaccano Oct 26 '13 at 21:39
22

Check out masstransit and rhino service bus too. Both open source and written by very smart people.

Jim Geurts
  • 20,189
  • 23
  • 95
  • 116
Andrew Jones
  • 5,217
  • 6
  • 25
  • 19
6

Check out RabbitMQ. The .NET client is full-featured, and it's pretty easy to use. There's a book called RabbitMQ in Action, as well as RabbitMQ in Depth that's available in early access editions.

TrueWill
  • 25,132
  • 10
  • 101
  • 150
  • Isn't RabbitMQ just an open source message queue? I don't believe it in itself is actually a service bus framework. – gabe Jan 20 '14 at 21:15
  • Technically it's a message broker. If it meets the requirements for a project, do you care how people categorize it? – TrueWill Jan 21 '14 at 01:59
  • 3
    Knowing that it's more of a broker is helpful thx! i don't care about the terms but about trying to wrap my brain around the differences between these techs (since this is somewhat the nature of this q/a). I remembered this interesting post about some of the differences between brokers and buses: http://www.udidahan.com/2011/03/24/bus-and-broker-pubsub-differences/. – gabe Jan 21 '14 at 05:27
3

I found ActiveMQ integrated into Apache NMS to be incredibly easy to understand, set up and transparent.

For example, ActiveMQ comes with a web frontend allowing you to use a web browser to look into message queues, and read, delete, and even create messages. So you can very easily start to develop and test only one side of your distributed application, and debugging and monitoring is very straight-forward.

TrueWill
  • 25,132
  • 10
  • 101
  • 150
realMarkusSchmidt
  • 4,303
  • 1
  • 29
  • 33
  • 3
    NServiceBus can run on ActiveMQ (among other queues) as of version 4.0 giving you the best of both worlds. – Udi Dahan May 23 '13 at 13:04
3

I'm currently working on an open source WCF based service bus. You can find it here: http://rockbus.codeplex.com/. It supports dynamic (@run-time) subscriptions, subcription repository (database), pluggable transports, XPath based content-based routing, transactional delivery over wcf protocols, roundrobin delivery, pluggable subscription evaluation, and more. Have a look!

Bram
  • 119
  • 2
2

There is no mature Service Bus implementation in .NET stack so far. Microsoft currently is developing one.

http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10).aspx

As an option you can use one from Java world. For instance, TIBCO - they have pretty robust .NET clients avilable, or OpenMQ.

If you don't need a wide range of features and ready to develop your own system - use WCF for this. WCF callbacks are well suitable for this.

Kye
  • 5,919
  • 10
  • 49
  • 84
Vitaliy Liptchinsky
  • 5,221
  • 2
  • 18
  • 25
  • 16
    I think you are mistaking ESB for Messaging. Tibco and OpenMQ are Message Queues. They simply provide the transport mechanism. Nothing More. About .NET Service bus implementations: You are more or less right, although NServicebus is coming pretty close to a mature product and the efforts seem to be there to do so. And as someone who as partially build several solutions using WCF as a servicebus: No.. WCF is not suited for this. Pub/sub in WCF is a pita to say the least and will require a serious deep dive into WCF and it's architecture to only find out that it is not meant for it. – Noctris Jul 22 '10 at 07:13
  • IMHO not true. Neuron ESB is stable & mature - and built on Microsoft technology (.NET incl. WCF/MSMQ etc.) – larsw Apr 02 '14 at 06:37
2

I've found Neuron ESB to be a solid implementation, although I haven't used it in anger yet.

Duncan
  • 10,218
  • 14
  • 64
  • 96