Closed Meyce closed 5 years ago
Really good idea! I'll look into it...
Rebus.AzureServiceBus 7.0.0-a07 is on NuGet.org now. It defaults to arranging topics beneath their assemblies, just as you proposed.
This means that e.g. await bus.Subscribe<string>();
will result in the creation of a topic named mscorlib/System.String
, which will show up as a System.String
node nested beneath an mscorlib
node in tools that support it.
Funnily, in the Azure Portal, the topic will display as mscorlib~System.String
, because.... well, because Microsoft is weird I guess.
Thanks for proposing this change – I'm looking forward to hearing how it works out for you.
PS: "Legacy naming" is still available for those that need it – just go .Transport(t => t.UseAzureServiceBus(...).UseLegacyNaming())
(or .Transport(t => t.UseAzureServiceBusAsOneWayClient(...).UseLegacyNaming())
for one-way clients) to revert to using the same naming strategy as Rebus.AzureServiceBus versions 6 and older.
This is a suggestion and is related to issue #25. Since breaking changes are being introduced to the names of topics and queues, the topic names can be changed such that they use
/
to create virtual directories. In #25 I added some code that alters the standard topic names from {fully qualified type name}__{assembly name} to {assembly name}/{fully qualified type name}. The difference when looking at this within software for managing queues and topics are shown in the screenshot below.If there are other reasons such a change wouldn't work then this issue can be disregarded, and I can accomplish it with a
IStorageSubscription
decorator. However, this format is very convenient when dealing with a large number of topics on a namespace from multiple assemblies, and it would be nice if it wasn't necessary to introduce a new decorator throughout to accomplish it.