First read this
nServiceBus overview.
I'm recording my learning so I can refer to it later.
Messaging Concepts
Transport
For messaging to work you need to transport messages from one endpoint to another, once an application has created the message addressed it and put it into a queue it is up to the transport to attempt delivery. MSMQ is the default choice of nServiceBus.
Command Query Separation (CQS)
Wikipedia
describes CQS as a pattern where "… every method should either be a
command that performs an action, or a
query
that returns data to the caller, but not both. More formally, methods
should return a value only if they are referentially transparent and
hence possess no side effects."
Udi Dahan's Blog Post on CQSThe Cost of Messaging
Using a messaging approach to building systems offers lots benefits that other approaches don't but you rarely get something for nothing, Ayende's article discusses the
cost of messaging.
nServiceBus Concepts
Publish vs Send - Wiki Article
The Distributor
The distributor as it's name suggests distributes work to be done to worker services. This avoids the need for the service that decides what work is to be done from having to contact all workers or have logic that handles balancing the work load.
Worker services inform the distributor how many idle threads they have available and it dispatches the same number of jobs. When a thread completes the distributor is notified so that if any jobs are in the work queue one will be sent.
This means an administrator can monitor the work queue to see if there are enough workers to handle the load.
nService Bus Code Samples Articles
Synchronous Web Service Bridge - Udi Dahan
Pub / Sub Walkthrough - Erik Westermann
Installation and Config
Wiki Article on configurationGetting started article on Art of Babel -
Erik WestermannReviews of nServiceBus
Ayende Rahien's Review and his
review of the distributornService Bus Info on the Web
Mailing List on Yahoo GroupsUdi's FAQ on the nServiceBus Website - Full of programming tips
Case Studies and Scenarios for Usage
Asynchronous High Performance Login Example - Udi Dahan
Update:
The link above is to Andreas Ohlund's blog post that explains the differences between the packaging for version 1.9 and 2.0
The main difference in the introduction of a nServicebus.core.dll and nServiceBus.Host.exe