Chances are that as a developer, sooner or later you’re going to be asked to move apps to the cloud. IT directors may not know what ‘the cloud’ is, but they know it’s something trendy, and being able to tell the rest of the board of directors that things are ‘cloud based’ makes their job sound exciting and difficult enough to warrant a nice bonus. Of course, the IT director isn’t the one who has to actually make the apps work in the cloud. That’s your problem.

If you need to work with either Microsoft Azure or Office 365, Thomas Rizzo and his co-authors, Razi bin Rais, Michael van Otegem, Darrin Bishop, George Durzi, Zoiner Tejada and David Mann have put together the info you need. The book is split into five parts, starting with an introduction to Microsoft’s cloud - Azure and Office 365, and how you can set up a development environment for working with Office 365. Rizzo et al show start by showing developing ‘Hello World’ level apps for SharePoint Online, Exchange Online, and Lync Online using Visual Studio.

Part 2 introduces Office 365 Identity Services and SharePoint Online. The chapter on Office 365 Identity Services takes you from the basics of ‘what is identity?’ through to working with role-based administration.

Part 3 gets to the heart of developing for Office 365, with chapters on SharePoint Online Development including workflows and InfoPath forms, and how to use List, View and Event enhancements. There’s a chapter on Exchange Online Development looking at how Exchange Online works in Office 365, and how to develop for Exchange Online using the Exchange Web Services Managed API. The chapter goes as far as building notification apps that subscribe to streaming notifications in a mailbox so you can listen for and handle mailbox events. The chapter on Lync Online development looks at the Lync 2010 SDK to integrate presence and ‘click to communicate’ features into WPF and Silverlight apps. There are also examples showing how to use the Managed API to interact with Lync conversations.

Part 4 covers working with Azure, taking you from a Hello World app through working with Azure Table Storage and the REST API). There’s a chapter on Identity in Azure, and another on making use of Blob storage. The identity chapter gives a guide to federated and claims-based identity, and looks at working them using Windows Identity Foundation. The chapter on Blobs storage starts from the basics of how Blobs work and goes through programming Blobs storage, creating and using a container, managing Blobs and managing access to them.

The final part of the book is dedicated to programming Azure. This part kicks off with a chapter on SQL Azure, followed by a look at the Azure Datamarket. If you’ve not encountered this before, it’s a subset of the Azure Marketplace where data content owners can publish and sell content using a standardized publish/subscribe model. The chapter shows how you can find useful datasets and subscribe to them, and how to consume the content from .NET and other platforms. There’s a chapter on the Service Bus showing how to program Service Bus brokered messaging, how to decide when to use REST and when managed clients are better, and how to choose between Service Bus Brokered Messaging and Windows Azure Queues. The final chapter looks at the Access Control Service, how you can use it to secure apps with Windows Live ID or Google ID, and how you can set up single sign-on from your local network to the cloud.

I liked this book a lot, and felt that it covered the material really well. You could start the book knowing next to nothing about programming the online environments, and by the end you’d know enough to be able to write useful apps. There’s no wasted space on irrelevant padding, and Rizzo and his co-authors do a good job of explaining concepts that some developers will be unfamiliar with. The balance between the different parts is good; the ones on setting up Office 365 and Azure are short compared to the much lengthier details of how to develop apps. There’s a lot of code samples, and it is of course available for download. The examples used in the code are good; short enough to be understandable, but relevant. If you need to learn about programming the Microsoft cloud services, this is definitely a book to read.