I think it's great you're exploring all options - I myself learned a
lot from Rhino Service Bus and Mass Transit. For example, the
exceptions which are thrown when a subscription message arrives at an
endpoint without a subscription storage were inspired by RSB and the
new saga finding API is inspired by MassTransit:
public override void ConfigureHowToFindSaga()
{
ConfigureMapping<OrderMessage>(s => s.PurchaseOrderNumber,
m => m.PurchaseOrderNumber);
ConfigureMapping<CancelOrderMessage>(s =>
s.PurchaseOrderNumber, m => m.PurchaseOrderNumber);
}
Personally, I've found only good things coming out of this cross-
pollination.
The pain points you've described are things we've been feeling too and
have taken concrete steps on the trunk to address them which should be
coming out in a formal release in the next month or two. They're
currently stable on the trunk and available to download from the
continuous integration server via the download page:
http://www.nservicebus.com/Downloads.aspx
In terms of xcopy deployment, what we've done is include code which
automatically at startup installs MSMQ if it's not there, configures
it correctly, starts the windows service if its not running, and the
same is true of the DTC (which RSB depends on as well, as far as I can
tell).
We're also being a lot more cognizant about internalizing any 3rd
party components we merge so that there won't be any versioning
conflicts. For this reason, the castle container adapter will not be
merged in NServiceBus.dll.
Let me just end with a little apology to others on the list for
barging in - just wanted to make sure all the facts were out on the
table.
With thanks,
Udi Dahan
On Jul 31, 5:29 am, Tyler Burd <[email protected]> wrote:
> That's what I'm looking at now, but I am working around it by subclassing
> the consumer at runtime for each class that implements the message interface
> and adding that subclass to the container. I haven't really dug deep, but
> it seems like that will work.
>
> My reasons for switching:
>
> 1. Exploring all options.
> 2. I really like the xcopy deployment and easy configuration of rhino
> queues.
> 3. Upgrading to the latest version of NSB is a bit painful (I'm compiling
> Castle, NH, rhino, and NSB from the trunks), and since I already use rhino
> there is an opportunity to cut down on that work.
> 4. The single-assembly, ilmerged NSB is a headache when we already have
> projects that reference castle, NH, and other libraries explicitly.
>
> Thanks, Ayende!
>
> On Thu, Jul 30, 2009 at 8:09 PM, Ayende Rahien <[email protected]> wrote:
> > Oh,And what are your reasons to move from NSB to RSB?
>
> > On Fri, Jul 31, 2009 at 5:09 AM, Ayende Rahien <[email protected]> wrote:
>
> >> Tyler,No, RSB doesn't support this right now.
> >> It should be pretty easy to patch, though. Take a look at
> >> DefaultServiceBus.GatherConsumers()
>
> >> On Fri, Jul 31, 2009 at 1:44 AM, tyler.burd <[email protected]> wrote:
>
> >>> Hi there. I'm converting an application from NServiceBus to Rhino
> >>> Service Bus, and I'm hung up on one thing. In NSB you can create a
> >>> MessageHandler that handles an interface. Something like this:
>
> >>> public class MySpecialMessageHandler :
> >>> IMessageHandler<IAmASpecialMessage>
>
> >>> NSB then calls this handler whenever it receives a message that
> >>> implements the "IAmASpecialMessage" interface. I can't recreate this
> >>> behavior in RSB. I tried the following:
>
> >>> public class SpecialMessageConsumer : ConsumerOf<ISpecialMessage>
> >>> {
> >>> public void Consume(ISpecialMessage message)
> >>> {
> >>> Console.WriteLine(string.Format("Consumed message of type
> >>> : {0}",
> >>> message.GetType().Name));
> >>> }
> >>> }
>
> >>> public class MySpecialMessage1 : ISpecialMessage {}
> >>> public class MySpecialMessage2 : ISpecialMessage {}
>
> >>> //code to initialize RSB and a windsor container
> >>> container.AddComponent<SpecialMessageConsumer>();
> >>> bus.Start();
> >>> bus.Send(bus.Endpoint, new MySpecialMessage1());
> >>> bus.Send(bus.Endpoint, new MySpecialMessage2());
>
> >>> This never results in a message being consumed, and the log shows
> >>> "ERROR - Got message RsbTest.MySpecialMessage2, but had no consumers
> >>> for it"
>
> >>> Is this possible? Is there another way to handle this?
>
> >>> Thanks!
> >>> -tyler burd
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Rhino Tools Dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rhino-tools-dev?hl=en
-~----------~----~----~----~------~----~------~--~---