Shuttle.Esb
12.1.1
Prefix Reserved
See the version list below for details.
dotnet add package Shuttle.Esb --version 12.1.1
NuGet\Install-Package Shuttle.Esb -Version 12.1.1
<PackageReference Include="Shuttle.Esb" Version="12.1.1" />
paket add Shuttle.Esb --version 12.1.1
#r "nuget: Shuttle.Esb, 12.1.1"
// Install Shuttle.Esb as a Cake Addin
#addin nuget:?package=Shuttle.Esb&version=12.1.1
// Install Shuttle.Esb as a Cake Tool
#tool nuget:?package=Shuttle.Esb&version=12.1.1
Documentation
Please visit out official documentation for more information.
Getting Started
Start a new Console Application project and select a Shuttle.Esb queue implementation from the supported queues:
PM> Install-Package Shuttle.Esb.AzureMQ
Now we'll need select one of the supported containers:
PM> Install-Package Shuttle.Core.Autofac
We'll also need to host our endpoint using a worker service:
PM> Install-Package Shuttle.Core.WorkerService
Next we'll implement our endpoint in order to start listening on our queue:
internal class Program
{
private static void Main()
{
ServiceHost.Run<Host>();
}
}
public class Host : IServiceHost
{
private IServiceBus _bus;
public void Start()
{
var containerBuilder = new ContainerBuilder();
var registry = new AutofacComponentRegistry(containerBuilder);
registry.Register<IAzureStorageConfiguration, DefaultAzureStorageConfiguration>();
registry.RegisterServiceBus();
_bus = new AutofacComponentResolver(containerBuilder.Build())
.Resolve<IServiceBus>().Start();
}
public void Stop()
{
_bus.Dispose();
}
}
A bit of configuration is going to be needed to help things along:
<configuration>
<configSections>
<section name="serviceBus" type="Shuttle.Esb.ServiceBusSection, Shuttle.Esb"/>
</configSections>
<appSettings>
<add key="azure" value="UseDevelopmentStorage=true;" />
</appSettings>
<serviceBus>
<inbox workQueueUri="azuremq://azure/shuttle-server-work"
deferredQueueUri="azuremq://azure/shuttle-server-deferred"
errorQueueUri="azuremq://azure/shuttle-error" />
</serviceBus>
</configuration>
Send a command message for processing
bus.Send(new RegisterMemberCommand
{
UserName = "user-name",
EMailAddress = "user@domain.com"
});
Publish an event message when something interesting happens
bus.Publish(new MemberRegisteredEvent
{
UserName = "user-name"
});
Subscribe to those interesting events
resolver.Resolve<ISubscriptionManager>().Subscribe<MemberRegisteredEvent>();
Handle any messages
public class RegisterMemberHandler : IMessageHandler<RegisterMemberCommand>
{
public RegisterMemberHandler(IDependency dependency)
{
}
public void ProcessMessage(IHandlerContext<RegisterMemberCommand> context)
{
// perform member registration
context.Publish(new MemberRegisteredEvent
{
UserName = context.Message.UserName
});
}
}
public class MemberRegisteredHandler : IMessageHandler<MemberRegisteredEvent>
{
public void ProcessMessage(IHandlerContext<MemberRegisteredEvent> context)
{
// processing
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
- Shuttle.Core.Compression (>= 10.0.4)
- Shuttle.Core.Container (>= 12.0.1)
- Shuttle.Core.Encryption (>= 10.0.3)
- Shuttle.Core.Pipelines (>= 11.0.0)
- Shuttle.Core.PipelineTransaction (>= 10.0.4)
- Shuttle.Core.Reflection (>= 11.0.3)
- Shuttle.Core.Serialization (>= 10.0.5)
- Shuttle.Core.Specification (>= 10.0.3)
- Shuttle.Core.Streams (>= 10.0.3)
- Shuttle.Core.System (>= 11.0.0)
- Shuttle.Core.Threading (>= 11.1.1)
- Shuttle.Core.TimeSpanTypeConverters (>= 10.0.2)
NuGet packages (23)
Showing the top 5 NuGet packages that depend on Shuttle.Esb:
Package | Downloads |
---|---|
Shuttle.Esb.RabbitMQ
RabbitMQ implementation for use with Shuttle.Esb. |
|
Shuttle.Esb.Tests
Test fixtures to facilitate testing of components, such as queues, that relate to Shuttle.Esb. |
|
Shuttle.Esb.Process
Shuttle.Esb process management using Shuttle.Recall event sourcing. |
|
Shuttle.Esb.Msmq
MSMQ implementation for use with Shuttle.Esb. |
|
Shuttle.Esb.FileMQ
File-based queue implementation for use with Shuttle.Esb. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
13.2.1 | 10,503 | 12/1/2022 |
13.2.0 | 9,088 | 9/16/2022 |
13.1.0 | 7,818 | 9/11/2022 |
13.0.0 | 7,740 | 9/4/2022 |
12.1.1 | 1,494 | 5/18/2022 |
12.1.0 | 1,313 | 5/18/2022 |
12.0.1 | 9,072 | 4/9/2022 |
12.0.0 | 8,258 | 3/21/2022 |
11.2.0 | 7,126 | 2/15/2021 |
11.1.1 | 1,505 | 2/9/2021 |
11.1.0 | 1,661 | 1/30/2021 |
11.0.3 | 11,466 | 1/17/2021 |
11.0.2 | 2,170 | 11/27/2020 |
11.0.1 | 16,675 | 7/31/2019 |
11.0.0 | 12,410 | 6/20/2019 |
10.1.8 | 2,564 | 12/26/2018 |
10.1.7 | 1,843 | 12/9/2018 |
10.1.6 | 36,535 | 10/15/2018 |
10.1.4 | 1,801 | 10/13/2018 |
10.1.2 | 3,945 | 10/6/2018 |
10.1.1 | 4,690 | 9/19/2018 |
10.1.0 | 2,251 | 9/17/2018 |
10.0.10 | 3,667 | 7/10/2018 |
10.0.9 | 2,134 | 7/8/2018 |
10.0.7 | 2,039 | 4/22/2018 |
10.0.6 | 2,792 | 4/12/2018 |
10.0.5 | 2,819 | 4/8/2018 |
10.0.3 | 8,144 | 2/13/2018 |
9.1.4 | 3,098 | 12/29/2017 |
9.1.3 | 2,058 | 10/22/2017 |
9.0.3 | 2,124 | 8/26/2017 |
9.0.2 | 3,518 | 8/6/2017 |
8.0.14 | 2,373 | 3/23/2018 |
8.0.13 | 4,530 | 12/29/2017 |
8.0.12 | 2,292 | 7/20/2017 |
8.0.11 | 2,089 | 7/17/2017 |
8.0.9 | 2,099 | 7/14/2017 |
8.0.8 | 2,661 | 7/6/2017 |
8.0.7 | 5,798 | 5/15/2017 |
8.0.5 | 2,324 | 5/7/2017 |
8.0.4 | 2,072 | 5/6/2017 |
8.0.3 | 2,312 | 5/6/2017 |
8.0.1 | 2,261 | 4/23/2017 |
8.0.0 | 7,866 | 3/24/2017 |
7.0.4 | 3,272 | 10/26/2016 |
7.0.3 | 2,847 | 10/4/2016 |
7.0.1 | 2,940 | 9/19/2016 |
7.0.0 | 2,256 | 9/4/2016 |
6.2.1 | 2,577 | 7/26/2016 |
6.2.0 | 2,866 | 7/23/2016 |
6.1.3 | 2,439 | 6/6/2016 |
6.1.2 | 2,158 | 6/4/2016 |
6.1.1 | 6,438 | 6/4/2016 |
6.1.0 | 2,763 | 6/4/2016 |
6.0.0 | 7,525 | 4/24/2016 |
5.1.9 | 5,275 | 4/3/2016 |
5.1.6 | 7,666 | 3/21/2016 |