title: Azure CloudStorageAccount namespace conflict in various NuGet packages, and migration to newer Azure SDKs
body: <p>I know I may be somewhat late to this party, but remain baffled nonetheless.</p>
  
  <p>We have for years been using the NuGet package <code>WindowsAzure.Storage</code> to work with Blobs, Tables, and Queues, in the context of .Net and using the .Net Azure SDKs.</p>
  
  <p>In the lowest level of shared code in many Azure web apps we have developed, we have a pattern of caching the <code>CloudStorageAccount</code> we use to get the various clients needed for those storage entities.  We get that storage account with the following C# code:</p>
  
  <pre><code>    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
  </code></pre>
  
  <p>That "storageAccount" is cached and we use it throughout the app to get access to the various storage clients, namely <code>CloudBlobClient</code>, <code>CloudTableClient</code>, and <code>CloudQueueClient</code>, like this:</p>
  
  <pre><code>    CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
      CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
      CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
  </code></pre>
  
  <p>Those clients are also cached, but that may not be relevant to this question.</p>
  
  <p>There seems to be encouragement (although maybe not any deprecation warnings?) from Microsoft to move to the newer SDKs that are instead in the NuGet packages in <code>Microsoft.Azure.Storage.Xxxxxx</code> and/or <code>Azure.Storage.Xxxxxxx</code>, but those NuGet package hierarchies do not support tables, and only support Blobs and Queues (and Files, which I am not currently using).</p>
  
  <p>Tables instead seem to be in a different hierarchy, namely <code>Microsoft.Azure.Cosmos.Table</code>.</p>
  
  <p>But there seems to be a namespace collision on the type <code>CloudStorageAccount</code> between one declared type in <code>Microsoft.Azure.Cosmos.Table</code> and another declared with the same name in <code>Microsoft.Azure.Storage.Common</code>.  </p>
  
  <p>And then the even newer <code>Azure.Storage.Xxxxxxxx</code> libraries don't seem to have any support for tables.</p>
  
  <p>Of course I can alias the types or always fully specify them, but this will mean I would have to rewrite my caching code (not the end of the world) but there is part of this whole exercise that makes me wonder if I am missing some key important concept in the nature of these various different storage entities.  I'm also hesitant because it seems likely I could break some third-party dependencies.  So the whole issue seems really thorny.</p>
  
  <p>I would so appreciate any conceptual understanding, pointers to comprehensive learning documents, code examples, suggestions, or explanations.  Tables are key for us, but I doubt we will be moving to the new Cosmos DB tables anytime soon.</p>