After investigating the `Channel` object, It maybe more harm than good to use `Channel` object instead of `BlobClient`. So we  don't want to remove `BlobClient` and it works well until now :).

IStorageBlobManagement  is used for **test purpose** in our project and we could use it with azure storage client in production environment and with mocked implementation in unit test. IStorageBlobManagement  only works with azure storage client and  don't do any rest call directly.

In our scenario, users could use storage cmdlet with or without subscription. In order to use subscription and `Channel` object, our `IStorageBlobManagement` should extend your `IServiceManagement` which have already contained `GetStorageService` and `GetStorageKeys`.  We only could use static extension method to extend it and we have to add another operation context parameter for each static extension method. It doesn't seem very maintainable. The interface in `IStorageBlobManagement` that we have already defined are similiar with these in azure storage client. If we change it, our source code will less readable.


Sql project add operations into sql context, it's a good solution however it don't suit us since we have many operations.

So we don't want to use `BlobClient` instead of `Channel` object. 

Please correct me if any mistake or have a better soultion.