Is Azure the New Silver Lining?

For instance, to create a table, you could construct an XML command such as the following, and send it to the Azure system using a HTTP POST command to an URL like https://mystorage.table.core.windows.net:

Although accessing data over HTTP is fine for simple needs, most business applications require better, more relational-like databases. This is exactly what the SQL services are for. But, unlike what you might guess from the name, Azure does not (yet?) have a hosted instance of SQL Server running on the cloud that you could connect to directly. Instead, you will have to settle with a semi-relational model. In fact, a table in SQL Data Services is more like a collection of entities that can have properties of different types.

Azure also supports a service called ".NET Service." The purpose of this service is to help applications control access to their features, allow creation of a service bus, and finally support long-running workflows. The .NET Access Control Service, which is part of the .NET Service, supports application authentication and access control using the standard SAML language (Security Assertion Markup Language). The language uses digitally signed tokens to know who is who, and also allows transferring authentication data between different applications.

The service bus concept allows easy publishing of web based services to the public. The idea is that the service bus is a central place to publish web services (either REST or SOAP based), and also allows easier locating of services connected to the bus. Of course, you could develop your own web services by hosting them in your own servers or even on Azure, but the idea of the service bus is to help locate and connect applications together to create composite applications.

The workflow service allows you to run long-running processes in the cloud. Microsoft has a on-site installed product called BizTalk to support workflows, and also the .NET Workflow Foundation part of .NET 3.0 supports workflows. Workflows are especially useful in enterprise applications and integration projects.

The final set of services related to Azure is the Live Services umbrella. Live Services contains a diverse set of functionality from data synchronization to directory and communication services. The so-called Live Operating Environment lets you access Live services in the cloud in a coherent manner. Just as with the SQL Services, resources in the Live environment can be accessed with HTTP URLs, which makes it an easy way in to the services from almost any application or platform.

A Database Example Using SQL Data Services

In the earlier example, you saw a quick walkthrough on how to create a Hello World style Azure application. But, how would you access data in the cloud using the SQL Data Services? See a concrete example to help you learn.

As with the Azure data storage, the SQL Data Services support REST-based interfaces that use the HTTP protocol methods GET, POST, CREATE, and DELETE (the basic CRUD operations). Although using these features from C# code is quite simple, it is somewhat tedious. Because the SQL Data Services also supports SOAP (web services) interfaces, you will find it easier to write code to use this interface instead of REST and HTTP.

To begin using the web service interface, you will need to start a new Visual Studio project and add a service reference to your project. The URL to access the SOAP interface of the SQL Data Services is:

Once you have added the reference, you are ready to start programming. Unless you already have done so, it is now a good time to make sure you have a proper solution created on the Azure web portal. You will need an invitation code to create a solution. When you create a solution on the portal, Azure assigns a password to your solution. You will need this password when using the SOAP interface, so remember to write it down. If you want, you also can change the password (see Figure 7).