NOTE: This post is probably only of interest to people planning to try out NServiceBus for the first time as the post is all about how to get it up and running quickly.
I've been trying to get up and running with NServiceBus because its relatively mature and has a good community and is based on good practices. However in my view quite it is difficult to get into and there is a good chance you'll waste a lot of time time trying to get up and running so I thought I'd share what little I've learned so far with it.
I should also say that difficulty getting projects setup is fine, its a part of using open source projects. In fact although I love Castle and NHibernate both have a high barrier to entry, however in both cases there is lots of documentation available detailing how to get started with them so you never feel far away from an answer. That isn't the case with NServiceBus so I think that when starting out you need to make life easy for yourself. Anyway so far there have been two issues:
- Configuration - Out of the "box" NServieBus comes with Spring based configuration and someone has produced a Castle MicroKernel implementation. You also seem to be able to mix the configuration, doing some in code and some in the XML files.
- Referencing Projects - NServiceBus has a lot of projects. I'm not against that approach but since initially you have no idea what each project contains you do start off referencing just NServiceBus and two hours later you've ended up bringing in 10 projects. Just bring them all in to begin with and ignore the smell, you can sort it out later if you need to.
Anyway I go into a little more detail into these issues next, but you will probably also want to read this guide.
The DLLs I found I needed to reference:
- ObjectBuilder.CastleFramework or ObjectBuilder.SpringFramework
The "test\full" folder inside the solution has great examples of how to configure a client/server (see ClientServer and ServerRunner).
You still need to include the configuration file with the suitable elements in it, but examples of this are also included.