NServiceBus and WebSphere/Sonic
WebSphere and Sonic are enterprise-grade middleware,
robust, performant - no argument there.
But for the average .NET developer,
the .NET API exposed is horribly complex
looking more like Java, and not taking advantage of
the strong-typing provided by generics or lambdas.
The developer-friendly NServiceBus API can be
used on top ofWebSphere and Sonic by swapping out
the pluggable MSMQ transport implementation
giving you the best of both worlds.
Unit Testing
One of the benefits of having developers work with the NServiceBus API is greatly simplified unit testing.
By abstracting away the transport technology and introducing strongly-typed message classes, NServiceBus
enables developers to fully test their message handling logic and long-running processes knowing that
the integration with the messaging layer has already been taken care of for them.
Here's an example of the kind of service layer tests that NServiceBus enables:
1: [Test]
2: public void TestHandlingLogic()
3: {
4: Test.Initialize();
5:
6: var dataId = Guid.NewGuid();
7: var str = "hello";
8:
9: Test.Handler<MyMessageHandler>()
10: .SetIncomingHeader("Test", "abc")
11: .ExpectReply<MyResponseMessage>(m => m.DataId == dataId && m.String == str)
12: .AssertOutgoingHeader("Test", "abc")
13: .OnMessage<MyRequestMessage>(m => { m.DataId = dataId; m.String = str; });
14: }
Another benefit developers get when working with NServiceBus is its generic host. Similar to application
servers on the Java platform, the NServiceBus Host provides standardized installation and manageability
as well as providing a lightweight sandbox where all infrastructure components automatically
switch to in-memory mode for greatest productivity when developers want to focus on business logic.
Why not download NServiceBus and give it a quick evaluation?
Get the best of both worlds.
Enterprise grade middleware AND highly productive developer APIs.
Download NServiceBus here.
You can also learn more about these features of NServiceBus below:
NServiceBus Host
Unit Testing