Authors: Scott Klein and Herve Roggero
Publisher: Apress, 2012
Aimed at: Developers wanting to work with Azure SQL database
Reviewed by: Kay Ewbank
Writing a good app that uses a database is hard enough; doing the same thing in the cloud adds even more complexity and things to go wrong.
Pro SQL Database for Windows Azure is a good guide to making the move from Microsoft SQL Server to the SQL database that Microsoft makes available on its cloud platform.
The book opens with an introduction to cloud computing in general and Azure in particular, working through setting up your Azure account, creating an instance, configuring the firewall, and the other steps necessary to get you up and running. This type of material is normally a waste of space, but the combination of database and cloud makes it worth including. There’s a good little section on what you don’t get in an Azure SQL database, and other limitations.
Moving on, Klein and Roggero look at design considerations such as how high availability is managed, how throttling affects your app’s performance, and how to synchronize your data. This is a really good chapter, covering aspects of design you’re not likely to have encountered when working on a ‘normal’ database server.
Chapter 3 introduces security, and is the first place code appears in the book, with C# code showing how to encrypt string values, how to use hashing to check encrypted data has remained secure, and how to create and use a security certificate. Access control, authorization and the SQL database firewall take up the rest of the chapter. Chapter 4 looks at data migration and backup, and how to migrate your databases and data to Azure.
From Chapter 5 onward the book moves from admin tasks to everyday developer work, starting with a chapter on programming with SQL Database. This chapter still has a feel of admin type concerns, with code showing how to use ADO.NET to make connections to Azure databases, then how to use a data reader and a dataset. ODBC and sqlcmd get the same treatment before Klein and Roggero move on to more in-depth coverage of using WCF Data Services (what used to be called ADO.NET Data Services).
SQL Reporting gets its own chapter, covering the differences and similarities between SQL Reporting for Azure and SQL Server Reporting Services running on a local server, and showing how to use the cloud-based option from provisioning the server to creating and deploying reports . SQL Data Sync also gets a chapter, with good explanations of its role in bidirectional synchronization. The techniques of writing ASP.NET applications that use SQL Azure are next on the list, with code to create an ASP.NET app that runs in the cloud. There’s an interesting chapter on designing for high performance, looking at how you build a shard library and use it, with sections on multitenant systems and vertical partition shards, all done using standard techniques. Federations, which are SQL Azure’s specific implementation of the concepts behind sharding, are covered next, with good descriptions of how they deal with sharding, their advantages, and code for creating and using them. I thought these two chapters were the most useful in the book. Chapters on performance tuning and Azure Mobile Services round off the book.
This is a good introduction to the nuts and bolts of using SQL Database for Azure. If you know how to use SQL Server, you will soon be able to get up and running with its cloud-based cousin and have a good understanding of doing it well.