The Windows Phone platform limits application development to either Silverlight based development or XNA based development. While these platforms will work for most of the application scenarios, there are still scenarios where you might want to refactor some of the application logic into a dedicated functionality that resides outside the application and can be called on an as needed basis as a web service.
Microsoft offers a cloud computing platform called Windows Azure that serves this requirement.
Windows Azure Platform
Windows Azure platform is defined as a bunch of services hosted by Microsoft that provide highly-scalable processing and storage capabilities, database services, data subscriptions and other services.
Of the various offerings via the Windows Azure platform, let us explore the ones that can be leveraged for use in the Windows Phone applications.
Windows Azure Compute Offering
Windows Azure Compute Services offer scalable computing services that can execute both managed and native code.
Windows Phone platform only allows managed code. This limits the capability of many Windows Phone applications. Application developers can use Azure compute service to do some computing not supported by the Windows Phone platform.
Here are a few advantages of using Windows Azure compute services:
- Processing is no longer limited to the device, so CPU heavy computations, which can drain the battery life, can be done via a Windows Azure service. Also, since Azure services can be scaled up or down, you are not limited to how many processors you can use for computing.
- Windows Azure environment is maintained at Microsoft datacenters so they are guaranteed to be always available for use in your Windows Phone application.
- You are not limited to only using Silverlight and XNA framework libraries. You can write services in any of the languages/platforms that Azure supports, even native code.
Windows Azure Storage Offering
Since the phone only comes with 8GB and 16GB of storage available, you can use Azure for storing your application data. Say you were developing an application where you want to store state information. It is easy for the state information to be misused by a rogue application. By having this information in the cloud, you can protect it from malicious applications.
SQL Azure is a cloud-based relational database that is based on SQL Server. SQL Azure allows easy provisioning and deployment of databases because developers do not have to install, setup or manage any software (It is taken care by Microsoft). This also comes with high fault tolerance and high up-time. Windows Phone application developers can use web services to store and retrieve data in a SQL Azure database.
Windows Azure Marketplace DataMarket enables developers to discover, purchase and manage data subscriptions using oData feeds. We have already seen how to use oData services in an earlier article (Using oData Services in a Windows Phone Application). oData offers REST-based APIs to simply data access via the oData Client library for Windows Phone.
In this article, we learned about Windows Azure services, which can be used in a Windows Phone application. I hope you have found this information useful and can use it in developing Windows Phone application, which uses the Windows Azure platform.