Shuttle.Esb
13.2.0
Prefix Reserved
See the version list below for details.
dotnet add package Shuttle.Esb --version 13.2.0
NuGet\Install-Package Shuttle.Esb -Version 13.2.0
<PackageReference Include="Shuttle.Esb" Version="13.2.0" />
<PackageVersion Include="Shuttle.Esb" Version="13.2.0" />
<PackageReference Include="Shuttle.Esb" />
paket add Shuttle.Esb --version 13.2.0
#r "nuget: Shuttle.Esb, 13.2.0"
#:package Shuttle.Esb@13.2.0
#addin nuget:?package=Shuttle.Esb&version=13.2.0
#tool nuget:?package=Shuttle.Esb&version=13.2.0
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.AzureStorageQueues
We'll also make use of the .NET generic host:
PM> Install-Package Microsoft.Extensions.Hosting
Next we'll implement our endpoint in order to start listening on our queue:
internal class Program
{
private static void Main()
{
Host.CreateDefaultBuilder()
.ConfigureServices(services =>
{
services.AddServiceBus(builder =>
{
builder.Options.Inbox.WorkQueueUri = "azuresq://azure/work";
});
services.AddAzureStorageQueues(builder =>
{
builder.AddOptions("azure", new AzureStorageQueueOptions
{
ConnectionString = "UseDevelopmentStorage=true;"
});
});
})
.Build()
.Run();
}
}
Even though the options may be set directly as above, typically one would make use of a configuration provider:
internal class Program
{
private static void Main()
{
Host.CreateDefaultBuilder()
.ConfigureServices(services =>
{
var configuration =
new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
services.AddSingleton<IConfiguration>(configuration);
services.AddServiceBus(builder =>
{
configuration
.GetSection(ServiceBusOptions.SectionName)
.Bind(builder.Options);
});
services.AddAzureStorageQueues(builder =>
{
builder.AddOptions("azure", new AzureStorageQueueOptions
{
ConnectionString = configuration
.GetConnectionString("azure")
});
});
})
.Build()
.Run();
}
}
The appsettings.json file would be as follows:
{
"ConnectionStrings": {
"azure": "UseDevelopmentStorage=true;"
},
"Shuttle": {
"ServiceBus": {
"Inbox": {
"WorkQueueUri": "azuresq://azure/work",
}
}
}
}
Send a command message for processing
bus.Send(new RegisterMember
{
UserName = "user-name",
EMailAddress = "user@domain.com"
});
Publish an event message when something interesting happens
Before publishing an event one would need to register an ISubscrtiptionService implementation such as Shuttle.Esb.Sql.Subscription.
bus.Publish(new MemberRegistered
{
UserName = "user-name"
});
Subscribe to those interesting events
services.AddServiceBus(builder =>
{
builder.AddSubscription<MemberRegistered>();
});
Handle any messages
public class RegisterMemberHandler : IMessageHandler<RegisterMember>
{
public RegisterMemberHandler(IDependency dependency)
{
}
public void ProcessMessage(IHandlerContext<RegisterMember> context)
{
// perform member registration
context.Publish(new MemberRegistered
{
UserName = context.Message.UserName
});
}
}
public class MemberRegisteredHandler : IMessageHandler<MemberRegistered>
{
public void ProcessMessage(IHandlerContext<MemberRegistered> 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.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. |
-
- Microsoft.Extensions.DependencyInjection (>= 6.0.0)
- Microsoft.Extensions.Hosting (>= 6.0.1)
- Shuttle.Core.Compression (>= 11.0.0)
- Shuttle.Core.Encryption (>= 11.0.0)
- Shuttle.Core.Pipelines (>= 12.0.0)
- Shuttle.Core.PipelineTransaction (>= 11.0.0)
- Shuttle.Core.Reflection (>= 12.0.0)
- Shuttle.Core.Serialization (>= 10.0.5)
- Shuttle.Core.Specification (>= 10.1.0)
- Shuttle.Core.Streams (>= 10.1.0)
- Shuttle.Core.System (>= 11.0.1)
- Shuttle.Core.Threading (>= 12.0.0)
- Shuttle.Core.Transactions (>= 11.0.0)
NuGet packages (30)
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.Sql.Subscription
Sql-based implementation of ISubscriptionService interface for use with Shuttle.Esb implementations. |
|
|
Shuttle.Esb.Process
Shuttle.Esb process management using Shuttle.Recall event sourcing. |
|
|
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 | |
|---|---|---|---|
| 20.0.0 | 3,523 | 2/2/2025 | |
| 15.0.0 | 2,181 | 8/5/2024 | |
| 14.0.1 | 2,961 | 5/3/2024 | |
| 14.0.0 | 1,223 | 4/30/2024 | |
| 13.2.1 | 13,890 | 12/1/2022 | |
| 13.2.0 | 10,216 | 9/16/2022 | |
| 13.1.0 | 8,660 | 9/11/2022 | |
| 13.0.0 | 8,612 | 9/4/2022 | |
| 12.1.1 | 1,778 | 5/18/2022 | |
| 12.1.0 | 1,585 | 5/18/2022 | |
| 12.0.1 | 9,970 | 4/9/2022 | |
| 12.0.0 | 9,066 | 3/21/2022 | |
| 11.2.0 | 8,919 | 2/15/2021 | |
| 11.1.1 | 1,795 | 2/9/2021 | |
| 11.1.0 | 2,012 | 1/30/2021 | |
| 11.0.3 | 13,645 | 1/17/2021 | |
| 11.0.2 | 2,537 | 11/27/2020 | |
| 11.0.1 | 24,515 | 7/31/2019 | |
| 11.0.0 | 14,068 | 6/20/2019 | |
| 10.1.8 | 3,193 | 12/26/2018 |