From 55635726bed4a43ad1481ff28f28a95470ccf0df Mon Sep 17 00:00:00 2001 From: SzymonPobiega Date: Tue, 11 Feb 2025 13:34:49 +0100 Subject: [PATCH] Cross-version pubsub sample for ASB --- .../ASBS_5/CrossVersionPubSub.sln | 49 +++++++++++++++++++ .../ASBS_5/PublisherV4/Program.cs | 38 ++++++++++++++ .../ASBS_5/PublisherV4/PublisherV4.csproj | 22 +++++++++ .../ASBS_5/PublisherV4/PublisherWorker.cs | 36 ++++++++++++++ .../ASBS_5/PublisherV4/appsettings.json | 12 +++++ .../ASBS_5/PublisherV5/Program.cs | 41 ++++++++++++++++ .../ASBS_5/PublisherV5/PublisherV5.csproj | 22 +++++++++ .../ASBS_5/PublisherV5/PublisherWorker.cs | 36 ++++++++++++++ .../ASBS_5/PublisherV5/appsettings.json | 12 +++++ .../ASBS_5/Shared/MyEvent.cs | 8 +++ .../ASBS_5/Shared/MyOtherEvent.cs | 7 +++ .../ASBS_5/Shared/Shared.csproj | 12 +++++ .../SubscriberV4/MyOtherEventHandler.cs | 23 +++++++++ .../ASBS_5/SubscriberV4/Program.cs | 37 ++++++++++++++ .../ASBS_5/SubscriberV4/SubscriberV4.csproj | 22 +++++++++ .../ASBS_5/SubscriberV4/appsettings.json | 12 +++++ .../ASBS_5/SubscriberV5/MyEventHandler.cs | 23 +++++++++ .../ASBS_5/SubscriberV5/Program.cs | 39 +++++++++++++++ .../ASBS_5/SubscriberV5/SubscriberV5.csproj | 22 +++++++++ .../ASBS_5/SubscriberV5/appsettings.json | 12 +++++ 20 files changed, 485 insertions(+) create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/CrossVersionPubSub.sln create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/Program.cs create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/PublisherV4.csproj create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/PublisherWorker.cs create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/appsettings.json create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/Program.cs create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/PublisherV5.csproj create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/PublisherWorker.cs create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/appsettings.json create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/MyEvent.cs create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/MyOtherEvent.cs create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/Shared.csproj create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/MyOtherEventHandler.cs create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/Program.cs create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/SubscriberV4.csproj create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/appsettings.json create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/MyEventHandler.cs create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/Program.cs create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/SubscriberV5.csproj create mode 100644 samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/appsettings.json diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/CrossVersionPubSub.sln b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/CrossVersionPubSub.sln new file mode 100644 index 00000000000..ef934e92678 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/CrossVersionPubSub.sln @@ -0,0 +1,49 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35527.113 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shared", "Shared\Shared.csproj", "{06CB90E0-85AD-4F8C-9D5C-D008EB63FA3A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PublisherV4", "PublisherV4\PublisherV4.csproj", "{29F1787F-7118-48F6-B4A3-E6C45E23956C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PublisherV5", "PublisherV5\PublisherV5.csproj", "{38C77DC9-51F3-421D-BBE6-3DE8508AEE15}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubscriberV4", "SubscriberV4\SubscriberV4.csproj", "{E95F1759-40E5-4B72-B3AE-868CB538F5DA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubscriberV5", "SubscriberV5\SubscriberV5.csproj", "{3713A7D0-E843-4FF1-9688-165F2345CFC5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {06CB90E0-85AD-4F8C-9D5C-D008EB63FA3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {06CB90E0-85AD-4F8C-9D5C-D008EB63FA3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {06CB90E0-85AD-4F8C-9D5C-D008EB63FA3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {06CB90E0-85AD-4F8C-9D5C-D008EB63FA3A}.Release|Any CPU.Build.0 = Release|Any CPU + {29F1787F-7118-48F6-B4A3-E6C45E23956C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29F1787F-7118-48F6-B4A3-E6C45E23956C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29F1787F-7118-48F6-B4A3-E6C45E23956C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29F1787F-7118-48F6-B4A3-E6C45E23956C}.Release|Any CPU.Build.0 = Release|Any CPU + {38C77DC9-51F3-421D-BBE6-3DE8508AEE15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38C77DC9-51F3-421D-BBE6-3DE8508AEE15}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38C77DC9-51F3-421D-BBE6-3DE8508AEE15}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38C77DC9-51F3-421D-BBE6-3DE8508AEE15}.Release|Any CPU.Build.0 = Release|Any CPU + {E95F1759-40E5-4B72-B3AE-868CB538F5DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E95F1759-40E5-4B72-B3AE-868CB538F5DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E95F1759-40E5-4B72-B3AE-868CB538F5DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E95F1759-40E5-4B72-B3AE-868CB538F5DA}.Release|Any CPU.Build.0 = Release|Any CPU + {3713A7D0-E843-4FF1-9688-165F2345CFC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3713A7D0-E843-4FF1-9688-165F2345CFC5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3713A7D0-E843-4FF1-9688-165F2345CFC5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3713A7D0-E843-4FF1-9688-165F2345CFC5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {071F7DAC-CB22-4DB9-86FF-4CFC7D3172B5} + EndGlobalSection +EndGlobal diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/Program.cs b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/Program.cs new file mode 100644 index 00000000000..bd5087535a5 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/Program.cs @@ -0,0 +1,38 @@ +using System; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using NServiceBus; + +namespace PublisherV4 +{ + class Program + { + static async Task Main(string[] args) + { + Console.WriteLine("Publisher 1 running Azure Service Bus transport V4"); + var builder = Host.CreateApplicationBuilder(args); + + builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); + builder.Logging.AddConsole(); + + var endpointConfiguration = new EndpointConfiguration("Publisher1"); + + var connectionString = builder.Configuration.GetConnectionString("AzureServiceBusConnectionString"); + var routing = endpointConfiguration.UseTransport(new AzureServiceBusTransport(connectionString)); + endpointConfiguration.UseSerialization(); + + // Operational scripting: https://docs.particular.net/transports/azure-service-bus/operational-scripting + endpointConfiguration.EnableInstallers(); + + builder.UseNServiceBus(endpointConfiguration); + + builder.Services.AddHostedService(); + + var host = builder.Build(); + await host.RunAsync(); + } + } +} \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/PublisherV4.csproj b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/PublisherV4.csproj new file mode 100644 index 00000000000..5ba3facd9e3 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/PublisherV4.csproj @@ -0,0 +1,22 @@ + + + + Exe + net9.0 + 13.0 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/PublisherWorker.cs b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/PublisherWorker.cs new file mode 100644 index 00000000000..0a8284ad0db --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/PublisherWorker.cs @@ -0,0 +1,36 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using NServiceBus; +using Shared; + +namespace PublisherV4 +{ + public class PublisherWorker : BackgroundService + { + private readonly IMessageSession messageSession; + private readonly ILogger logger; + + public PublisherWorker(IMessageSession messageSession, ILogger logger) + { + this.messageSession = messageSession; + this.logger = logger; + } + + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + try + { + await messageSession.Publish(new MyEvent()); + + logger.LogInformation("Published MyEvent"); + } + catch (OperationCanceledException) + { + // graceful shutdown + } + } + } +} \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/appsettings.json b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/appsettings.json new file mode 100644 index 00000000000..a4183fa434a --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV4/appsettings.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "System": "Information", + "Microsoft": "Information" + } + }, + "ConnectionStrings": { + "AzureServiceBusConnectionString": "" + } +} \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/Program.cs b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/Program.cs new file mode 100644 index 00000000000..a223db5e8a9 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/Program.cs @@ -0,0 +1,41 @@ +using System; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using NServiceBus; +using Shared; + +namespace PublisherV5 +{ + class Program + { + static async Task Main(string[] args) + { + Console.WriteLine("Publisher 2 running Azure Service Bus transport V5"); + var builder = Host.CreateApplicationBuilder(args); + + builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); + builder.Logging.AddConsole(); + + var endpointConfiguration = new EndpointConfiguration("Publisher2"); + + var connectionString = builder.Configuration.GetConnectionString("AzureServiceBusConnectionString"); + var topology = TopicTopology.MigrateFromSingleDefaultTopic(); + topology.EventToMigrate(); + var routing = endpointConfiguration.UseTransport(new AzureServiceBusTransport(connectionString, topology)); + endpointConfiguration.UseSerialization(); + + // Operational scripting: https://docs.particular.net/transports/azure-service-bus/operational-scripting + endpointConfiguration.EnableInstallers(); + + builder.UseNServiceBus(endpointConfiguration); + + builder.Services.AddHostedService(); + + var host = builder.Build(); + await host.RunAsync(); + } + } +} \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/PublisherV5.csproj b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/PublisherV5.csproj new file mode 100644 index 00000000000..342439411e1 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/PublisherV5.csproj @@ -0,0 +1,22 @@ + + + + Exe + net9.0 + 13.0 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/PublisherWorker.cs b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/PublisherWorker.cs new file mode 100644 index 00000000000..d47da4963b2 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/PublisherWorker.cs @@ -0,0 +1,36 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using NServiceBus; +using Shared; + +namespace PublisherV5 +{ + public class PublisherWorker : BackgroundService + { + private readonly IMessageSession messageSession; + private readonly ILogger logger; + + public PublisherWorker(IMessageSession messageSession, ILogger logger) + { + this.messageSession = messageSession; + this.logger = logger; + } + + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + try + { + await messageSession.Publish(new MyOtherEvent()); + + logger.LogInformation("Published MyOtherEvent"); + } + catch (OperationCanceledException) + { + // graceful shutdown + } + } + } +} \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/appsettings.json b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/appsettings.json new file mode 100644 index 00000000000..a4183fa434a --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/PublisherV5/appsettings.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "System": "Information", + "Microsoft": "Information" + } + }, + "ConnectionStrings": { + "AzureServiceBusConnectionString": "" + } +} \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/MyEvent.cs b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/MyEvent.cs new file mode 100644 index 00000000000..41674bbd6b1 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/MyEvent.cs @@ -0,0 +1,8 @@ +using NServiceBus; + +namespace Shared +{ + public class MyEvent : IEvent + { + } +} diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/MyOtherEvent.cs b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/MyOtherEvent.cs new file mode 100644 index 00000000000..d83b56b7767 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/MyOtherEvent.cs @@ -0,0 +1,7 @@ +using NServiceBus; + +namespace Shared; + +public class MyOtherEvent : IEvent +{ +} \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/Shared.csproj b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/Shared.csproj new file mode 100644 index 00000000000..7b0024524ac --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/Shared/Shared.csproj @@ -0,0 +1,12 @@ + + + + net9.0 + 13.0 + + + + + + + diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/MyOtherEventHandler.cs b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/MyOtherEventHandler.cs new file mode 100644 index 00000000000..17cda7b6c10 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/MyOtherEventHandler.cs @@ -0,0 +1,23 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using NServiceBus; +using Shared; + +namespace SubscriberV4 +{ + public class MyOtherEventHandler : IHandleMessages + { + private readonly ILogger logger; + + public MyOtherEventHandler(ILogger logger) + { + this.logger = logger; + } + + public Task Handle(MyOtherEvent message, IMessageHandlerContext context) + { + logger.LogInformation("Received MyOtherEvent"); + return Task.CompletedTask; + } + } +} diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/Program.cs b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/Program.cs new file mode 100644 index 00000000000..888c1d2232c --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/Program.cs @@ -0,0 +1,37 @@ +using System; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using NServiceBus; +using Shared; + +namespace SubscriberV4 +{ + class Program + { + static async Task Main(string[] args) + { + Console.WriteLine("Subscriber 2 running Azure Service Bus transport V4"); + var builder = Host.CreateApplicationBuilder(args); + + builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); + builder.Logging.AddConsole(); + + var endpointConfiguration = new EndpointConfiguration("Subscriber2"); + + var connectionString = builder.Configuration.GetConnectionString("AzureServiceBusConnectionString"); + var routing = endpointConfiguration.UseTransport(new AzureServiceBusTransport(connectionString)); + endpointConfiguration.UseSerialization(); + + // Operational scripting: https://docs.particular.net/transports/azure-service-bus/operational-scripting + endpointConfiguration.EnableInstallers(); + + builder.UseNServiceBus(endpointConfiguration); + + var host = builder.Build(); + await host.RunAsync(); + } + } +} \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/SubscriberV4.csproj b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/SubscriberV4.csproj new file mode 100644 index 00000000000..5ba3facd9e3 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/SubscriberV4.csproj @@ -0,0 +1,22 @@ + + + + Exe + net9.0 + 13.0 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/appsettings.json b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/appsettings.json new file mode 100644 index 00000000000..a4183fa434a --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV4/appsettings.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "System": "Information", + "Microsoft": "Information" + } + }, + "ConnectionStrings": { + "AzureServiceBusConnectionString": "" + } +} \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/MyEventHandler.cs b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/MyEventHandler.cs new file mode 100644 index 00000000000..835c25464d3 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/MyEventHandler.cs @@ -0,0 +1,23 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using NServiceBus; +using Shared; + +namespace SubscriberV5 +{ + public class MyEventHandler : IHandleMessages + { + private readonly ILogger logger; + + public MyEventHandler(ILogger logger) + { + this.logger = logger; + } + + public Task Handle(MyEvent message, IMessageHandlerContext context) + { + logger.LogInformation("Received MyEvent"); + return Task.CompletedTask; + } + } +} diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/Program.cs b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/Program.cs new file mode 100644 index 00000000000..cc810a0cfa8 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/Program.cs @@ -0,0 +1,39 @@ +using System; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using NServiceBus; +using Shared; + +namespace SubscriberV5 +{ + class Program + { + static async Task Main(string[] args) + { + Console.WriteLine("Subscriber 1 running Azure Service Bus transport V5"); + var builder = Host.CreateApplicationBuilder(args); + + builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); + builder.Logging.AddConsole(); + + var endpointConfiguration = new EndpointConfiguration("Subscriber1"); + + var connectionString = builder.Configuration.GetConnectionString("AzureServiceBusConnectionString"); + var topology = TopicTopology.MigrateFromSingleDefaultTopic(); + topology.EventToMigrate(); + var routing = endpointConfiguration.UseTransport(new AzureServiceBusTransport(connectionString, topology)); + endpointConfiguration.UseSerialization(); + + // Operational scripting: https://docs.particular.net/transports/azure-service-bus/operational-scripting + endpointConfiguration.EnableInstallers(); + + builder.UseNServiceBus(endpointConfiguration); + + var host = builder.Build(); + await host.RunAsync(); + } + } +} \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/SubscriberV5.csproj b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/SubscriberV5.csproj new file mode 100644 index 00000000000..342439411e1 --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/SubscriberV5.csproj @@ -0,0 +1,22 @@ + + + + Exe + net9.0 + 13.0 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/appsettings.json b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/appsettings.json new file mode 100644 index 00000000000..a4183fa434a --- /dev/null +++ b/samples/azure-service-bus-netstandard/cross-version-pub-sub/ASBS_5/SubscriberV5/appsettings.json @@ -0,0 +1,12 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "System": "Information", + "Microsoft": "Information" + } + }, + "ConnectionStrings": { + "AzureServiceBusConnectionString": "" + } +} \ No newline at end of file