Book Image

Microsoft Windows Azure Development Cookbook

By : Neil Mackenzie
Book Image

Microsoft Windows Azure Development Cookbook

By: Neil Mackenzie

Overview of this book

The Windows Azure platform is Microsoft's Platform-as-a-Service environment for hosting services and data in the cloud. It provides developers with on-demand computing, storage, and service connectivity capabilities that facilitate the hosting of highly scalable services in Windows Azure datacenters across the globe. This practical cookbook will show you advanced development techniques for building highly scalable cloud-based services using the Windows Azure platform. It contains over 80 practical, task-based, and immediately usable recipes covering a wide range of advanced development techniques for building highly scalable services to solve particular problems/scenarios when developing these services on the Windows Azure platform. Packed with reusable, real-world recipes, the book starts by explaining the various access control mechanisms used in the Windows Azure platform. Next you will see the advanced features of Windows Azure Blob storage, Windows Azure Table storage, and Windows Azure Queues. The book then dives deep into topics such as developing Windows Azure hosted services, using Windows Azure Diagnostics, managing hosted services with the Service Management API, using SQL Azure and the Windows Azure AppFabric Service Bus. You will see how to use several of the latest features such as VM roles, Windows Azure Connect, startup tasks, and the Windows Azure AppFabric Caching Service.
Table of Contents (16 chapters)
Microsoft Windows Azure Development Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Preface

The Windows Azure Platform is Microsoft's Platform-as-a-Service environment for hosting services and data in the cloud. It provides developers with on-demand compute, storage, and service connectivity capabilities that facilitate the hosting of highly-scalable services in Windows Azure datacenters across the globe.

This practical cookbook will show you advanced development techniques for building highly-scalable, cloud-based services using the Windows Azure Platform. It contains several practical, task-based, and immediately usable recipes covering a wide range of advanced development techniques for building highly scalable services to solve particular problems/scenarios when developing these services on the Windows Azure Platform. The solutions are presented in a clear systematic manner and explained in great detail, which makes them good learning material for everyone who has experience of the Windows Azure Platform and wants to improve.

Packed with reusable, real-world recipes, the book starts by explaining the various access control mechanisms used in the Windows Azure platform. Next, you will see the advanced features of Windows Azure Blob storage, Windows Azure Table storage, and Windows Azure Queues. The book then dives deep into topics such as developing Windows Azure hosted services, using Windows Azure Diagnostics, managing hosted services with the Service Management API, using SQL Azure and the Windows Azure AppFabric Service Bus. You will see how to use several of the latest features such as VM roles, Windows Azure Connect, startup tasks, and the Windows Azure AppFabric Caching Service.

The Windows Azure Platform is changing rapidly with new features being released or previewed every few months. However, the core of the platform remains stable. This cookbook focuses on that core but, where appropriate, points out the direction the platform is moving in. Using this book, you can build advanced scalable cloud-based services with the Windows Azure Platform.

What this book covers

Chapter 1, Controlling Access in the Windows Azure Platform, shows you techniques that applications can use to authenticate against the Windows Azure Storage Service, the Windows Azure Service Management API, and the Windows Azure AppFabric Caching service. This authentication provides applications with secure access to the resources managed by these services. The chapter also shows how to control public access to Windows Azure blobs.

Chapter 2, Handling Blobs in Windows Azure, shows how to use the Windows Azure Storage Client library and the Windows Azure Storage Services REST API to access the Windows Azure Blob Service. It demonstrates various techniques for uploading and downloading block and page blobs. The chapter also shows how to use the Windows Azure Content Delivery Network (CDN) to optimize the distribution of blobs.

Chapter 3, Going NoSQL with Windows Azure Tables, shows how to use the Windows Azure Storage Client library and WCF Data Services to access the Windows Azure Table Service. It shows how to create a scalable data model and how to upload and download entities conforming to that model. The chapter also shows how to use the lightweight transaction capability provided by entity group transactions.

Chapter 4, Disconnecting with Windows Azure Queues, shows how to use the Windows Azure Storage Client Library to manage and access the Windows Azure Queue Service. It shows how to insert and retrieve messages from a queue. The chapter also shows how to handle poison messages.

Chapter 5, Developing Hosted Services for Windows Azure, shows how to develop and deploy an application as a Windows Azure hosted service. It shows how to create an appropriate service model for an application. For web roles, it shows how to use a custom domain name and implement HTTPS, as well as use the Windows Azure AppFabric Caching service to share session state. The chapter also shows how to use Windows Azure Connect and the Windows Azure MarketPlace DataMarket.

Chapter 6, Digging into Windows Azure Diagnostics, shows how to use Windows Azure Diagnostics to capture diagnostic data on a hosted service and persist it to the Windows Azure Storage Service. The chapter also shows how to access Windows Azure Diagnostics remotely, both to manage it and to access the diagnostic data for analysis.

Chapter 7, Managing Hosted Services with the Service Management API, shows how to use the Windows Azure Service Management REST API to manage a Windows Azure hosted service. It shows how to create and upgrade deployments of a hosted service, including how to modify the number of role instances for that service. The chapter also shows how to use the Windows Azure Platform PowerShell cmdlets to manage a Windows Azure hosted service.

Chapter 8, Using SQL Azure, shows how to use SQL Azure and, specifically, how to migrate to SQL Azure. It shows how to manage ADO.NET connections to SQL Azure and how to handle the connection failures that are more prevalent in that environment. The chapter also shows how to scale out a SQL Azure database into the Windows Azure Blob Service.

Chapter 9, Looking at the Windows Azure AppFabric, covers various features of the Windows Azure AppFabric. It shows how to use the relay and event capability of the Windows Azure AppFabric Service Bus. The chapter also shows how to use the Windows Azure AppFabric Caching service to scale out Windows Azure hosted services.

What you need for this book

This book requires you to have some exposure to Windows Azure and you need basic understanding of Visual Studio, C#, SQL, .NET development, XML, and web development concepts (HTTP, Services, and so on).

Who this book is for

If you are an experienced Windows Azure developer or architect who wants to understand advanced development techniques when building highly scalable services using the Windows Azure platform, then this book is for you.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text are shown as follows: "We can include other contexts through the use of the include directive."

A block of code is set as follows:

String containerName = "chapter2";
String blobName = "DownloadBlobExample";
String fileName = Path.GetTempPath() + @"\Pippo";
DownloadBlob(containerName, blobName, fileName);

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

String containerName = "chapter2";
String blobName = "DownloadBlobExample";
String fileName = Path.GetTempPath() + @"\BlobName";
DownloadBlob(containerName, blobName, fileName);

Any command-line input or output is written as follows:

# makecert -sky exchange -r -pe -a sha1 -len 2048 -sr localmachine
   -ss My –n "CN=Azure Service Management" AzureServiceManagement.cer


New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "On the Windows Azure Compute node, right click on an instance node and select View IntelliTrace logs".

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply send an e-mail to , and mention the book title via the subject of your message.

If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or e-mail .

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code for this book

You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the errata submission form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at if you are having a problem with any aspect of the book, and we will do our best to address it.