Skip to content

guojianbin/Shuttle.Esb

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shuttle.Esb

A highly flexible and free .NET open-source enterprise service bus.

Documentation

There is extensive documentation on our site and you can make use of the samples to get you going.

Overview

Send a command message for processing

var container = new WindsorComponentContainer(new WindsorContainer());

ServiceBus.Register(container);

using (var bus = ServiceBus.Create(container).Start())
{
	bus.Send(new RegisterMemberCommand
	{
		UserName = "Mr Resistor",
		EMailAddress = "ohm@resistor.domain"
	});
}

Publish an event message when something interesting happens

var smRegistry = new Registry();
var registry = new StructureMapComponentRegistry(smRegistry);

ServiceBus.Register(registry); // will using bootstrapping to register SubscriptionManager

using (var bus = ServiceBus
	.Create(
		new StructureMapComponentResolver(
		new Container(smRegistry)))
	.Start())
{
	bus.Publish(new MemberRegisteredEvent
	{
		UserName = "Mr Resistor"
	});
}

Subscribe to those interesting events

SubscriptionManager.Default().Subscribe<MemberRegisteredEvent>();

Handle any messages

public class RegisterMemberHandler : IMessageHandler<RegisterMemberCommand>
{
	public void ProcessMessage(IHandlerContext<RegisterMemberCommand> context)
	{
		Console.WriteLine();
		Console.WriteLine("[MEMBER REGISTERED] : user name = '{0}'", context.Message.UserName);
		Console.WriteLine();

		context.Publish(new MemberRegisteredEvent
		{
			UserName = context.Message.UserName
		});
	}
}
public class MemberRegisteredHandler : IMessageHandler<MemberRegisteredEvent>
{
	public void ProcessMessage(IHandlerContext<MemberRegisteredEvent> context)
	{
		Console.WriteLine();
		Console.WriteLine("[EVENT RECEIVED] : user name = '{0}'", context.Message.UserName);
		Console.WriteLine();
	}
}

About

A highly extensible service bus implementation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%