tags:

views:

176

answers:

5

I want to have an event driven architecture where the event consumer (subscriber/observer) and the event producer (publisher/subject) are over a distributed geography.

Is there something in .NET that relays events over a network seamlessly without my having to plumb into the implementation of the transport mechanism?

I recall Juval Lowy saying something about Enterprise Services in a DNR show 2 years or so ago but can't recall what that was.

Anyone know what I can use from the .NET framework to do this?

+6  A: 

You can do this with WCF and MSMQ. Tom Hollander has a blog post on it.. You could also look at solutions like TIBCO. If you fancy open source, RabbitMQ is worth a look at too. If you're looking for a service bus, then mass transit is also an open source option. Mike Hadlow has blogged about it here.

RichardOD
+1 for MSMQ. This is exactly what MSMQ, or an ESB that supports pub/sub, is designed for.
jrista
Isn't Tibco a little *overkill* for this particular question?
osij2is
TIBCO is the spawn of satan.
Ty
@Ty- what is wrong with Tibco, I know many people that use it successfully.
RichardOD
Rhino ESB and NServiceBus are other service bus implementations you could look into.
Jamie Penney
@Jamie- yes, those are two more popular ones.
RichardOD
+1  A: 

Is there something in .NET that relays events over a network seamlessly without my having to plumb into the implementation of the transport mechanism?

I believe this is where .NET Remoting (link) comes into play. I'm no expert with it, but it looks like what you're looking for.

In addition to .NET Remoting, WCF (Windows Communication Foundation) (link) may be a better alternative to Remoting. I have some experience with WebServices and little with WCF, but I would investigate these two .NET technologies.

osij2is
Remoting is now considered legacy. WCF should be used instead.
RichardOD
I figured as such. I never used it but I didn't want to exclude it either. WCF WTF? :)
osij2is
Implementing events over Remoting is considered bad practice. http://www.thinktecture.com/resourcearchive/net-remoting-faq/remotingusecases
ParmesanCodice
+1  A: 

This sounds like a job for MSMQ. This article should help get you started.

http://msdn.microsoft.com/en-us/library/ms978430.aspx

Michael McCloskey
+1  A: 

This sounds like a perfect job for an Erlang system ... or maybe use an AMCQ client like RabbitMQ, no?

jldupont
+1  A: 

MSMQ would be a good way of doing this if you have configuration access. WCF should be a reasonable alternative depending on how vital the messaging is.

Simple MSMQ example: http://www.codeproject.com/KB/cs/mgpmyqueue.aspx

level20dm