Accessing azure storage services - c#

There are couple of ways to access azure storage services. And I wanted to know from the experts:
Which is the recommended way for accessing azure storage services?
What are the pros/cons of either? (like performance, no of
requests…)
Windows Azure Storage Client Library Class Library
OR
Windows Azure Storage Services REST API

If you are familiar with .NET and feel more comfortable in coding in e.g. C# then the Storage Client Library abstracts all the REST API calls from you and makes your life easier :)
Storage Client Library
Pros - easy of use, .NET, good community support
Cons - none that I'm aware of
The REST interface is excellent and can give you a more native way to write interoperable code at the REST/HTTP layer
Pros - interop e.g. devices, platforms, languages
Cons - complexity IMO
HTH

The other answers are helpful, but on a technical note, there's exactly one way to access Windows Azure storage, and that's via its only API (REST). The .NET storage client library is one of many available libraries you can use to call that API.

This depends on your environment. If you're using .NET, Node, Java, PHP or Python I suggest you take a look on the Windows Azure website since there's an SDK for all these environments, which is much easier than using the REST api (underneath the SDK still uses the REST api):
You don't have to handle the low level REST API
The SDK is built by the Windows Azure team, they have the most knowledge of how to best use the REST API
For the number of requests, most of the time you are in control in both scenarios (batching for table storage, getting multiple messages from queue, ...).
Now, keep in mind that the REST api will always have the new features first, and it can take a while before these are implemented in the SDKs. But still, you can follow the repositories on GitHub to get the newest versions (the 1.7.1 .NET SDK is here while the 'official' release is still 1.7).

If you just want to access your Azure Storage, just download FREE 3rd party application and configure your Azure Storage using "Storage Name" and "Storage Key" and you are good to go. Here is a list of a few applications:
Azure Storage Explorer
CloudXplorer
CloudBerry Azure Storage Explorer
If you want to get your hands dirty and use Azure Storage Client API, here is a full example code.

Related

Are Azure DevOps APIs language agnostic?

I've written small programs in C# that integrate with Azure DevOps and perform actions on WorkItems and complete other small tasks. I accomplished this using the APIs provided by Microsoft as well as the NuGet packages they provide in order to successfully integrate with DevOps.
I want to create a similar application using Dart/Flutter, largely as a practical exercise that has a useful product. However I'm unsure whether doing this in a language that is not C# is actually feasible. Since the integration with DevOps required the NuGet packages provided by Microsoft, and the fact that these don't exist for Dart, would I still be able to write a Dart app that could communicate with DevOps?
Azure DevOps APIs: https://learn.microsoft.com/en-us/rest/api/azure/devops/?view=azure-devops-rest-5.1
NuGet: Microsoft.VisualStudio.Services.Client etc.
Given that the API is referred to as a REST API returning XML or JSON data, and there are client libraries in a number of different languages (https://learn.microsoft.com/en-us/rest/api/azure/devops/?view=azure-devops-rest-5.1#client-libraries) this should be possible.
Worst-case is you'll end up talking to the HTTP endpoints directly, rather than via some helpful wrapper library, as is your case with C#.

Can we replace Azure Portal by our enterprise Client app to perform all tasks that we perform on azure protal

Does Azure offer full APIs to accomplish all tasks without opening azure portal.
I heard some REST APIs are available but not sure about their coverage.
My questions is can we replace Azure portal completely by our customized enterprise App which actually calls REST APIs provided by Azure.
here is Why I need this strange thing
We need this as our organization is developing a Internal Unified App to manage our resources on all three cloud Azure,AWS and Google Cloud from single point..
The answer to your question is yes. You can certainly do that. As Alex mentioned in his comments, take a look at Azure Service Management API to begin with.
However there are a few things I would like to point out:
As you know there are two portals right now (Live and Preview). Unfortunately both of these portals use different sets of API. Live one uses Service Management API and the Preview one uses Azure Resource Manager (ARM) API. So you have to make sure that you use both of these APIs in your application. Though Microsoft is pushing very hard to make all the APIs exposed through ARM API but there's still a lot of work that needs to be done.
Another thing I noticed is that at times documentation for REST API for certain services is missing though there are ways to find that information. Just keep that in mind if you're building support for these services and not able to find documentation.
I would suggest you start here: https://msdn.microsoft.com/en-us/library/azure/mt420159.aspx and then find out REST APIs for the services you're interested in supporting in your application.

What is the best practice to consume Azure table storage in a windows store app?

I'm using PRISM framework to develop my App, there is no Patterns and practice guidance available on consuming Azure table with Windows store app?
What is the best practice to consume Azure table storage in a windows store app?
App calling WCF REST service which then talks to Azure table through Azure SDK
App calling Azure table storage REST service
App calling Azure mobile service which then talks to Azure table through data script
App consuming Azure table storage through Azure SDK
Any other option?
I don't think there's any guidance available on the best practices for consuming Azure Table Storage with Windows Store App.
Given your 4 options above, I would not recommend using #2 and #4 as is for one reason - In order for you to use any of these options, you would need to include your storage credentials (account name/account key) in your application itself which I think is a big security risk.
There's one other way by which you can use #2 and #4 and that's by using Shared Access Signature (SAS) functionality. Essentially you create SAS tokens using some kind of server side code (WCF/Mobile Service/Web API etc.) and provide that SAS token to your client application. Then you can use #2 or #4 approach.
The advantage with this approach to me is that your server-side component is really light weight as all it is doing is creating SAS tokens and your Windows 8 application is directly talking with storage service without the need of an intermediary. Given that Windows Azure Table Storage now supports JSON, the data transferred between your app and storage will be very minimal (compared to ATOMPUB XML format which was really bulky).

Is ServiceStack really appropriate for iOS/Objective-C clients?

I'm developing an iOS/Objective-C Enterprise application that needs access to a SQL Server back-end via a hosted C# service. WCF is the obvious choice for the plumbing, but like most Microsoft development technologies, once you get beyond a simple demo app, it gets pretty ugly.
I came across ServiceStack and it looks much nicer than WCF. It worries me that I can find almost no references to anybody else using an iOS/Objective-C client (although I do see a couple references to iOS/Mono ServiceStack clients).
ServiceStack is clearly focused on standard protocols so i'm sure it can do the job, but I have the nagging feeling that I'm missing something. Am I trying to drive nails with a blender or something?
What's the mainstream solution for iOS/Objective-C developers connecting to a back-end SQL Server database?
From the outside you can think of ServiceStack as just shipping clean JSON over the wire, although ServiceStack does provide a nice story for .NET clients by being able to share typed DTOs to provide an end-to-end Typed API for free, i.e. without any code-gen or additional effort. The web service output itself is clean and doesn't have any coupling to ServiceStack and can be easily consumed with the standard JSON or XML serializers in each of the respective platforms.
The swedishstartupspace.com recently posted how they built their winning SLussen iOS mobile app in a day at the Uppsala Hackathon. They used the native iOS RestKit library to consume their back-end ServiceStack API.
Others have used Xamarin.iOS front-end to build native iOS apps in C#, there's also a course on PluralSight showcasing how to use c# to develop Xamarin.iOS native mobile apps talking to a ServiceStack back-end.

Deploying a WCF application in Windows Azure

I'm looking for some advise / best practices for setting up a WCF application in Windows Azure.
Currently I have an SQL Azure DB and I want to make some services which need to provide information for iPhone and some other 3rd party products.
1) How do I develop a WCF application in Windows Azure, using SQL Azure data?
2) What is the best architecture to do this and what is the best way to make this secure?
I'm using C# as language.
You can create the WCF Web Role by using the Azure SDK, or you can host your WCF on a worker role as well. It's up to you.
Connect to SQL Azure would be very very similar as what you did to connect to SQL Server, just pay attention to the connection string.
Since you mentioned this WCF will be used for iPhone and some 3rd part application, I strongly recommended you have a look on WCF RESTful Toolkit, and the JSON format. Since for this scenario, RESTful API (or web api) with JSON format would be the best.
Take a look at this post 'Building a Massively Scalable Platform for Consumer Devices on Windows Azure'
http://msdn.microsoft.com/en-us/magazine/hh781021.aspx
Should cover your two topics nicely...
Connecting to SQL Azure is easier, you have so many options, ADO.NET, Entity Framework, OData etc..
http://msdn.microsoft.com/en-us/library/ee621789.aspx
Take a look at the Windows Azure Training Kit for more sample on this.

Categories

Resources