Azure tools for cloud-based development

Before working with Microsoft Azure, it's good to get familiarized with its components and software development kits.

This is the second in a four-part series from contributor Patrick Meader on working with Microsoft Azure.

The major components of Azure
Microsoft has identified several key components of its Windows Azure Services Platform, one of which is Windows Azure's various developer tools. These include .NET Services, a set of Microsoft-hosted services is intended to help users focus on creating applications; Microsoft SQL Azure, a set of SQL Server-based data services; and Live Services, which lets users take advantage of the Live Framework to leverage existing Live services such as Live ID and Live Messenger.

Two of these services should be of particular interest to existing .NET developers. First, .NET Services helps facilitate deploying cloud-based apps, handling difficult plumbing that would otherwise have to be provided by the user. It includes two services: Access Control, which simplifies securing applications beyond many companies' organizational structure, and the .NET service bus, which, as Microsoft describes it, "provides a secure, standards-based messaging infrastructure that dramatically reduces the barriers for building composite applications, even when their components have to communicate across organizational boundaries."

Note that earlier iterations of .NET Services included Workflow Service, which extended Workflow Foundation (WF) to govern the interaction of a given application's parts, but this was dropped recently. Microsoft promises that more .NET services will debut in the future.

The second service, Microsoft SQL Azure, simplifies extending SQL Server to the cloud as web-based services. The chief goal again is to take away some of the complexity. Microsoft promises that "SQL Azure will deliver a rich set of integrated services that enables relational queries, search, reporting, analytics, integration and synchronize data with mobile users, remote offices and business partners." Currently, Microsoft offers a single relational database service that was recently renamed Microsoft SQL Azure Database (SAD). As with .NET Services, Microsoft promises that more database-related services will be forthcoming.

More information on these services can be found at Azure's home page.

Getting started with Azure
Microsoft's site for Azure includes several key software development kits (SDKs) to help get started, including the Windows Azure SDK and the Microsoft .NET Services SDK. Visual Studio developers will also be interested in the Windows Azure Tools for Microsoft Visual Studio. Provided tools include C# and Project Templates for building Cloud Services, tools to change the Service Role configuration, the ability to debug Cloud Service Roles running in the Development fabric and the ability to build and package Cloud Service Packages.

The system requirements for using Azure's Visual Studio SDK are Windows 7, Windows Server 2008, or Windows Vista with at least SP1 installed; SQL Server 2005 Express Edition (or above); IIS 7.0; and VS 2008 with SP1, Visual Studio 2010 Beta 1, or Microsoft Visual Web Developer 2008 Express Edition with SP1.

Use Java or Ruby SDKs with Azure
The fact that Microsoft supports Visual Studio developers is no surprise, but what might be is that Microsoft's Azure site also includes links for Java- and Ruby-based SDKs. The Java and Ruby SDKs weren't developed by Microsoft's partner companies rather than the company itself. Microsoft indicates on its Azure FAQ that users can expect more Azure-compatible languages to debut in the future.

For now, the Java SDK for Microsoft .NET Services from Schakra Inc. is available, with more information available here and here. The most recent version of the Ruby SDK for .NET Services from ThoughtWorks is available here, as well.

In contrast to Azure, Google App Engine supports writing applications in Java and Python. Amazon EC2 supports a range of operating systems, including Windows 2003, Red Hat Enterprise Linux, Open Solaris and Oracle Enterprise Linux; a handful of application development environments, such as IBM sMash, JBoss Enterprise Application Platform and Ruby on Rails; and several application servers, including IBM WebSphere Application Server, Java Application Server and Oracle WebLogic Server.

Part 1: An introduction to developing for Microsoft Azure
Part 2: Azure tools for cloud-based development
Part 3: Comparing Microsoft Azure's pricing policies
Part 4: The risks and rewards behind developing in Azure

ABOUT THE AUTHOR: Patrick Meader has been covering the Windows development as an editor, analyst and author for more than 13 years.

Dig Deeper on Cloud application development