Azure Service Bus hosting integration obsolete APIs

In .NET Aspire 9.1, the methods AddQueue, AddTopic, and AddSubscription are being obsoleted. This change introduces new methods that better reflect the intended usage and improve the API's clarity.

Version introduced

.NET Aspire 9.1

Previous behavior

Previously, the methods AddQueue, AddTopic, and AddSubscription were used to add resources to the Azure Service Bus.

var builder = DistributedApplication.CreateBuilder(args);

var serviceBus = builder.AddAzureServiceBus("messaging");

serviceBus.AddQueue("queueName");
serviceBus.AddTopic("topicName");
serviceBus.AddSubscription("topicName", "subscriptionName");

New behavior

The new methods use the AddServiceBus prefix. The Add prefix indicates that a child resource is created and returned, aligning with the intended usage.

var builder = DistributedApplication.CreateBuilder(args);

var serviceBus = builder.AddAzureServiceBus("messaging");

var queue = serviceBus.AddServiceBusQueue("queueName");
var topic = serviceBus.AddServiceBusTopic("topicName");
topic.AddServiceBusSubscription("subscriptionName");

Type of breaking change

This change is a source incompatible.

Reason for change

A better API is provided, as the names Add reflect that a child resource is created and returned. Add should be used when it returns the new resource (not the parent resource). For more information, see EventHubs, ServiceBus, and CosmosDB Hosting integrations should create Resources for children.

Replace any usage of the obsolete methods with the new methods.

var builder = DistributedApplication.CreateBuilder(args);

var serviceBus = builder.AddAzureServiceBus("messaging");

serviceBus.AddServiceBusQueue("queueName");
serviceBus.AddServiceBusTopic("topicName");

Affected APIs

  • Aspire.Hosting.AzureServiceBusExtensions.AddQueue
  • Aspire.Hosting.AzureServiceBusExtensions.AddTopic
  • Aspire.Hosting.AzureServiceBusExtensions.AddSubscription