Azure Storage Client helpers

In my last post, I described how the configuration setting publisher worked. More specifically, I covered how to use the typical use-case of retrieving connection strings from Azure or local configuration and the typical errors you might produce when you use this incorrectly. I found myself writing the same code very often so I encapsulated this into a simple set of fluent-ish extensions (I say “ish” because by technical definition of fluent, these aren’t self-referencing… yet). That said, I thought I’d share this code as it helps me get my apps started pretty quickly.

// Author: Tobin Titus <>
// Copyright (c) 2010 Tobin Titus
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// See the License for the specific language governing permissions and
// limitations under the License.

using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.StorageClient;
using Microsoft.WindowsAzure.ServiceRuntime;
using System.Configuration;

namespace AzureNinja.Storage
  public class Client
    public const string DEFAULT_CONNECTION_STRING_NAME
          = "StorageConnectionString";
    static Client()
          (configName, configSettingPublisher) =>
              var connectionString = RoleEnvironment.IsAvailable
                 ? RoleEnvironment.GetConfigurationSettingValue(configName)
                 : ConfigurationManager.AppSettings[configName];

    public static CloudStorageAccount FromConfig(
       string configSetting = DEFAULT_CONNECTION_STRING_NAME)
        return CloudStorageAccount.FromConfigurationSetting(configSetting);

    public static CloudStorageAccount FromString(string connectionString)
       return CloudStorageAccount.Parse(connectionString);

  public static class CloudStorageClientHelpers
    public static CloudBlobClient ForBlobs(this CloudStorageAccount account)
       return account.CreateCloudBlobClient();
    public static CloudQueueClient ForQueues(this CloudStorageAccount account)
        return account.CreateCloudQueueClient();
    public static CloudTableClient ForTables(this CloudStorageAccount account)
        return account.CreateCloudTableClient();

You can then construct your requests for a CloudXxxClient as follows:

CloudBlobClient  client1 = Client.FromConfig().ForBlobs();
CloudQueueClient client2 = Client.FromConfig().ForQueues();
CloudTableClient client3 = Client.FromConfig().ForTables();

This uses “StorageConnectionString” as the default configuration key. And you can specify configuration key as well:


Furthermore, this allows you to concentrate on your calls to an otherwise fluent Azure API:




Let me know if you have any questions or input.

Be Sociable, Share!

    One Thought on “Azure Storage Client helpers

    1. Pingback: Tweets that mention Tobin Titus » Azure Storage Client helpers --

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    Post Navigation