Visual Studio Toolbox
43 Great Windows Azure Development Resources
Windows Azure is Microsoft's stack of cloud computing resources that lets you build Web apps and services based on the Windows, Microsoft .NET Framework, Visual Studio and SQL Server tools with which you're already familiar. Here's a collection of tools and information that will get you writing apps for Windows Azure today.
- By Terrence Dorsey
Windows Azure is Microsoft's cloud app development, hosting and management service. Building a public cloud hosting service from scratch was a bold move, and under the guidance of Scott Guthrie we've seen an amazing string of updates and new feature additions to the service over the past few years.
Back in 2010 I did a roundup of Windows Azure Development Resources for MSDN Magazine. Enough has changed in the last three years that it's worth a look to see what's new and improved.
Your first stop should be the Windows Azure Documentation Center. Here you'll find information about the entire platform organized by development language (.NET Framework, Node, Java, PHP, Python and Ruby are all supported), service targets (mobile and media services) and Windows Azure features (VMs, data services and more).
A nice touch is a direct link to Windows Azure-related questions on StackOverflow.
The Windows Azure portal lets you set up and manage your account. You'll need a Windows Live ID to sign up. Check out the "Free Trial" link for the current offer (see Figure 1).
To be at your most productive when developing for Windows Azure, your best bet is to use the Microsoft tools optimized for Windows Azure. As we go to press, the latest version is Windows Azure SDK 2.2, which is compatible with Visual Studio 2012 and 2013. Instructions for Getting Started with these tools are available on the Windows Azure Web site.
If you don't have the latest Visual Studio, however, that's OK. Windows Azure Tools also works with Visual Studio 2010 and you can still work with Visual Web Developer 2010 Express as well.
Visual Studio isn't your only choice for Windows Azure development, however. For example, over on the JetBrains blogs, Maarten Balliauw explains how you can use WebStorm and Windows Azure Mobile Services to build the Node-based back-end services for a mobile app.
PHP on Windows Azure
One of the first "traditional" Web development languages supported by Windows Azure was PHP, and that support continues to be strong.
First, head over to Github and grab the Windows Azure SDK for PHP, which includes all the client APIs for interacting with native Windows Azure resources directly from your PHP code.
Also download the PHP Tools for Visual Studio extension. It includes PHP-specific syntax highlighting, code completion, syntax-error checking, debugging support and more. Versions are available for Visual Studio 2010, 2012 and 2013.
To jump-start your next project, Bruno Skvorc provides a great tutorial, "PHP and MySQL on Windows Azure: Getting Started and Deploying with Git." Scott Hanselman has an interesting walk-through on installing the PHP-based Sendy app on Windows Azure to send e-mail newsletters via Amazon SES, with handy tips on porting mod_rewrite rules to a web.config file.
Python and Ruby
Python and Ruby are both popular Web development languages these days; and, like PHP, you'll find excellent support from the Windows Azure team for these languages.
The Windows Azure SDKs for Python and Ruby are available on Github.
For your IDE, there's Python Tools for Visual Studio -- Hanselman calls it "One of Microsoft's Best-Kept Secrets." IronRuby Tools haven't been updated recently, unfortunately, but do still work with Visual Studio 2010. For something with more recent development, check out SapphireSteel Software Ruby In Steel Developer for Visual Studio or JetBrains RubyMine.
Python and Ruby aren't installed by default on Windows, but the installers and tutorial resources for getting your development environment set up are better than ever. For example, RailsInstaller provides a one-stop solution for getting Ruby, Rails, SQLite and more installed on a Windows development machine.
If you're already an experienced Python or Ruby developer, you'll probably just want some help getting the environment set up. Here are a few tutorials to get you started:
SQL and NoSQL
Most Web apps of any size include a data store of some sort. If you're migrating an existing SQL Server database, the SQL Database Migration Wizard (formerly SQL Azure Migration Wizard) I mentioned back in 2010 is still under active development (see Figure 2).
For a deeper look at the data migration process using the SQL Database Migration Wizard, read through RobinDotNet's post on migrating the database to Windows Azure, part of an extensive seven-part "Azure for Developers Tutorial." The final post in the series also demonstrates how you can use Windows Azure Table Storage instead of SQL Database, and why it might be a good idea for your application.
If your app needs something other than SQL Database, there are many other data management options to choose. I mentioned PHP and MySQL previously, and Windows Azure Table Storage is an option if you need a key-value data store.
Microsoft's Bruce Kyle has a great guide to getting acquainted with NoSQL on Windows Azure, which provides an overview of the different "NoSQL" database flavors, then focuses on some implementation basics using a MongoDB document database and a GraphDB graph database.
Mike Wood recently wrote an extensive introduction to Windows Azure Table Storage that shows you how to use the built-in Windows Azure data store as a key-value database. Dario Solera has a slightly older, but still useful, look at Windows Azure Table Storage performance considerations to help you keep things snappy.
Here's a handy StackOverflow question comparing Windows Azure Table Storage to MongoDB, and ContentMaster has a code-heavy guide to using Windows Azure Mobile Services with a MongoDB database. The MongoDB Ecosystem site itself provides installers, VMs and guides to deploying the database.
Let's not forget blob storage with Nuno Godinho's "8 Essential Best Practices in Windows Azure Blob Storage."
Performance Monitoring and Troubleshooting
I'd love to provide a comprehensive list of tools and best practices for keeping your Windows Azure apps running as well as possible, but Buck Woody beat me to it. Instead, I'll turn you on to his roundup, "Management and Monitoring Tools for Windows Azure," covering everything from the Windows Azure management portal and System Center to almost 20 commercial and open source tools.
Special shout out for the Zudio Azure Cloud storage toolkit created by Mark Rendle, who you may know from his Simple.Data and Simple.Web frameworks. Run Zudio from any device with a modern browser to keep tabs on your Windows Azure storage. Mike Martin has a great introductory post showing you how it works.
And how many JetBrains tools have I mentioned so far? Not enough, apparently. How about some tips for remote profiling Windows Azure Cloud Services with dotTrace. You can also do remote application profiling with < a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh369930.aspx#BK_ProfilingCloudService" target="_blank">Visual Studio or Azure Application Monitor, available on CodePlex.
Cloud Cover on Channel 9
If you want to keep up-to-date with what's happening with Windows Azure and get some priceless tips and tricks from Windows Azure insiders, look no further than the Windows Azure Cloud Cover Show on Channel 9. Nick Harris and Chris Risner have been putting together great videocasts on Windows Azure for more than four years now.
Handy Tools for Your Toolbox
Let's finish up with two free tools you shouldn't overlook. Their simplicity and low price belie their usefulness.
First, Azure Ticker is a Windows 8 app that helps you keep track of your Windows Azure account balance (see Figure 3). You pay only what you use on Windows Azure, but it's easy to forget a running instance and have the fees pile up. Find Azure Ticker on the Windows Store.
Second, the Windows Azure PowerShell cmdlets collection gives you quick command-line control over setting up and managing instances, deploying apps and more. Sort of like running a Linux box, but without the bushy gray beard
unless you have a bushy gray beard. Ahem.