Q:

Programmatically create service bus subscription using .net standard

My scenario:  Website hosted on the cloud, where each instance creates a subscription to a Service Bus Topic for itself to listen for messages.
My question:  How do I programmatically create subscriptions?
...
Problem:  I'm used to using the older WindowsAzure library.  Now I'm using .NET Standard which doesn't support the old library
Solution:  Use Microsoft.Azure.ServiceBus NuGet package
...
Problem:  It doesn't support management features (like creating a subscription)
Solution:  Also use NuGet library Microsoft.Azure.Management.ServiceBus
...
Problem:  It doesn't support using a connection string or the keys given to you by the Azure Portal
Solution:  https://github.com/Azure-Samples/service-bus-dotnet-management gives the general programming pattern to use.
...
Problem:  WTF is the {tenantId} it's talking about?
Solution:  Well clearly, it's found under "Azure Active Directory" -> "Properties" and helpfully labelled "Directory ID" instead of tenantId, just as one would expect
...
Problem:  WTF is the {clientId} and {clientSecret}?
Solution:  Even easier.  It's obvious from that information that you must:

Go to "Azure Active Directory"
Click "App Registrations"
Click "Create a new app registration"
Name it, leave it as "Web app / API" and give it a sign on URL of pretty much anything you want, because it doesn't actually matter even though it's mandatory
Record the "Application ID", which everyone knows is actually what {clientId} refers to
In your new application click "Settings"
Click "Keys"
Type in some random description under the "Passwords" section and click "Save"
Save the "Value" there, because it's secretly the {clientSecret} (how clever! cus it's secret!!)
Return to "Service Bus"
Select "Access Control (IAM)"
Choose a role like Owner/Contributor
Type in your application name and save

...
Ok, so does step 1 of the example work?  AcquireTokenAsync returns back an access token!  YAYYYYYYYYYYYYY
result.AccessToken is the "token" referred to in step 2, it seems.
Step 2, 3... no problem... on to step 4.  Except use sbClient.Subscriptions.CreateOrUpdate instead
{resourceGroupName} seems easy enough - copy from "Resource groups" on the portal
...
Problem:  What is {namespaceName}??
Is it the Service Bus name?  like {name}.servicebus.windows.net?  Or is the namespace the full thing like {name.servicebus.windows.net}?  Or does it include the scheme like {sb://name.servicebus.windows.net}??
...
Problem:  No matter what I try here, I end up with "Operation returned an invalid status code 'NotFound'" at the CreateOrUpdate call.
And that's where I'm stuck.  Where have I gone wrong?
And on a sidenote, the snark is reflective of my frustration - it really feels as though I need to learn a large stack of Azure technology that I don't really want to know anything about just in order to do something that "should be simple".  Like I'm being sucked down a rabbit hole.  
[EDIT #1] - "SubscriptionId" turns out to be the AZURE subscription ID found under the billing section of the portal, NOT referring to the service bus subscription.
[EDIT #2] - "namespaceName" does not include .servicebus.windows.net - just the name itself
And with those changes, after countless hours of research, IT WORKS

A:

Microsoft.Azure.ServiceBus.3.1.0 allows to create a ManagementClient using the ConnectionString. 
private async Task CreateTopicSubscriptions()
{
    var client = new ManagementClient(ServiceBusConnectionString);
    for (int i = 0; i < Subscriptions.Length; i++)
    {
        if (!await client.SubscriptionExistsAsync(TopicName, Subscriptions[i]))
        {
            await client.CreateSubscriptionAsync(new SubscriptionDescription(TopicName, Subscriptions[i]));
        }
    }
}

A:

Original plan for the new Azure Service Bus client was not to include management plane at all and use Azure Active Directory route instead. This has proven to be too problematic, just like you've pointed out. Microsoft messaging team has put together a sample to demonstrate the basic operations. 
Note that there's a pending PR to get it working with .NET Core 2.0
Moving forward, it was recognized that developers prefer to access Service Bass using a connection string like they used to over Azure Active Directory option. Management Operations issue is raised to track requests. Current plan is to provide a light weight management library for the .NET Standard client.
For now, the options are either to leverage the old client to create entities or use Microsoft.Azure.Management.ServiceBus (or Fluent) until the management package is available.
Update
Management operations were released as part of 3.1.0 version of the client.

