Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Microsoft Windows Azure Development Cookbook
Microsoft Windows Azure Development Cookbook

Microsoft Windows Azure Development Cookbook: Realize the full potential of Windows Azure with this superb Cookbook that has over 80 recipes for building advanced, scalable cloud-based services. Simply pick the solutions you need to answer your requirements immediately.

Arrow left icon
Profile Icon Neil Mackenzie
Arrow right icon
€18.99 per month
Full star icon Full star icon Full star icon Full star icon Empty star icon 4 (9 Ratings)
Paperback Aug 2011 392 pages 1st Edition
eBook
€22.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m
Arrow left icon
Profile Icon Neil Mackenzie
Arrow right icon
€18.99 per month
Full star icon Full star icon Full star icon Full star icon Empty star icon 4 (9 Ratings)
Paperback Aug 2011 392 pages 1st Edition
eBook
€22.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m
eBook
€22.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Microsoft Windows Azure Development Cookbook

Chapter 2. Handling Blobs in Windows Azure

In this chapter, we will cover:

  • Setting properties and metadata for a blob

  • Using blob directories

  • Creating and using a blob snapshot

  • Creating and using the root container for blobs

  • Uploading blocks to a block blob

  • Uploading a VHD into a page blob

  • Downloading a blob asynchronously

  • Optimizing blob uploads and downloads

  • Using retry policies with blob operations

  • Copying a blob with the Windows Azure Storage Service REST API

  • Leasing a blob using the Protocol classes in the Windows Azure Storage Client Library

  • Using the Windows Azure Content-Delivery Network (CDN)

Introduction


The Windows Azure Blob Service is the Windows Azure Storage Service feature that manages the storage of file-based entities referred to as blobs. In this chapter, we will focus on the Blob service. In the next two chapters, we will look at the other storage services: the Table service and the Queue service.

The definitive way to access the storage service is through the Windows Azure Storage Service REST API. The Windows Azure Storage Client library is a high-level managed library, included in the Windows Azure SDK, which abstracts the RESTful interface into a set of classes. The Windows Azure Storage Client Protocol classes contained in the Storage Client library expose functionality not provided in the core library classes. Specifically, the protocol classes provide access to the underlying HttpWebRequest object used to invoke the RESTful operations.

Nearly all the recipes in this chapter use the Storage Client library. Scattered through the recipes are examples of how to use...

Setting properties and metadata for a blob


The Windows Azure Blob Service allows metadata and properties to be associated with a blob. The metadata comprises a sequence of developer-defined, name-value pairs. The properties comprise HTTP request headers including: Cache-Control, Content-Encoding, Content-MD5, and Content-Type. The Blob service also supports metadata and properties for blob containers. Requesting a download of the blob attributes—its metadata and properties—is an efficient way of checking blob existence as only a small amount of data is downloaded.

The Blob service uses the Content-MD5 property to validate blob upload. When specified, the Content-MD5 property must be set to the base64-encoded value of the MD5 hash of the blob data. The Blob service returns an error if this value does not match the value it calculates from the uploaded blob content.

In this recipe, we will learn how to set and get blob properties and metadata. We will also learn how to calculate the Content...

Using blob directories


The Windows Azure Blob Service uses a simple organizational structure for containers and blobs. A storage account has zero or more containers each of which contains zero or more blobs. Containers contain only blobs and may not contain other containers. There is no hierarchy for containers.

The Windows Azure Storage Service REST API provides support for a simulation of a hierarchical directory structure through an ability to parse blob names containing a special delimiter character and navigate the list of blobs while taking account of that delimiter. This delimiter is the forward-slash symbol (/). The Windows Azure Storage Client library exposes this feature through the CloudBlobDirectory class.

The CloudBlobDirectory class provides methods allowing blobs to be enumerated in a way that takes account of the directory structure built into the naming convention used. A blob name can include multiple levels of directory.

A CloudBlobDirectory object can be created using either...

Creating and using a blob snapshot


The Windows Azure Blob Service supports the creation of read-only snapshots of a blob. A storage account is billed only for those blocks and pages in a snapshot that differ from those in the underlying blob. A blob snapshot is useful in providing a backup for a blob as it can be used to reset the blob to an earlier state. Indeed, multiple snapshots can be made over time allowing a historic record to be kept of changes to a blob.

An important use case for blob snapshots is provided by the Azure Drive feature. An Azure Drive is a page blob comprising an NTFS-formatted VHD that can be attached to a hosted service role instance and accessed as an NTFS drive. To avoid read-write conflicts, a single VHD page blob can be attached to only one instance at a time. However, a blob snapshot is read-only, allowing no possibility of write contention, so an arbitrary number of instances can attach a VHD snapshot simultaneously.

A blob snapshot is created using the CloudBlob...

Creating and using the root container for blobs


The Windows Azure Blob Service supports a simple two-level hierarchy for blobs. There is a single level of containers, each of which may contain zero or more blobs. Containers may not contain other containers.

In the Blob service, a blob resource is addressed as follows:

http://{account}.blob.core.windows.net/{container}/{blob}

{account}, {container}, and {blob} represent the name of the storage account, container, and blob.

This addressing convention works for most uses of blobs. However, when using Silverlight the runtime requires that a cross-domain policy file reside at the root of the domain and not beneath a container, as would be the case with the standard addressing for blobs. The cross-domain policy file allows a web client to access data from more than one domain at a time. (http://msdn.microsoft.com/en-us/library/cc197955(VS.95).aspx) Microsoft added support for a root container, named $root, to the Blob service, so that it could...

Uploading blocks to a block blob


The Windows Azure Blob Service supports two types of blobs: block blobs optimized for streaming, and page blobs optimized for random access. Block blobs are so named because they comprise blocks and can be updated by either replacing the entire blob or by replacing individual blocks. Page blobs can be updated by either replacing the entire blob or by modifying individual pages.

A block blob can be up to 200 GB, and comprises blocks that can be up to 4 MB. Block blobs larger than 64 MB must be uploaded in blocks and then a list of uploaded blocks must be committed to create the blob. The various upload methods in the CloudBlob class handle this two-phase process automatically. However, there are times when it is worthwhile taking direct control of the block upload and commit process. These include: uploading very large blobs, performing parallel uploads of blocks, or updating individual blocks.

At any given time, a block blob can comprise a set of committed...

Uploading a VHD into a page blob


An instance of a Windows Azure role comprises several virtual disks (VHD) deployed into a virtual machine. One VHD contains the Guest OS; another contains the role package, while the third is a writable VHD containing the local resources of the instance.

Windows Azure provides the Azure Drive feature whereby an arbitrary VHD, contained in a page blob, can be attached to an instance and then accessed as an NTFS drive. This VHD must be an NTFS-formatted, fixed-size VHD. The VHD can be created directly as a page blob or uploaded like any other page blob.

The Disk Management snap-in for the Microsoft Management Console (MMC) can be used to create and format a VHD on a local system. Once attached to the local system, files can be copied to, or created on the file system of the VHD just as they can with any hard drive. The VHD can then be detached from the local system and uploaded as a page blob to the Windows Azure Blob Service.

A page blob, which may have a maximum...

Downloading a blob asynchronously


The Windows Azure Storage Client library provides synchronous and asynchronous versions of nearly all the methods that access the Windows Azure Storage Service.

The asynchronous methods follow the common language runtime (CLR) Asynchronous Programming Model (APM). In this model, asynchronous methods for an action are defined as a pair named BeginAction and EndAction. The asynchronous operation is initiated through a call to BeginAction and is cleaned up by a call to EndAction. BeginAction has a parameter that is a callback delegate and EndAction must be invoked in that delegate.

This apparent complexity can be greatly simplified through the use of a lambda expression to represent the callback delegate. Furthermore, local variables defined in the method containing the lambda expression are available inside the lambda expression. This removes any difficulty caused by a need to pass variables into the delegate. Using a lambda expression, instead of a callback...

Optimizing blob uploads and downloads


Large blobs need to be uploaded to the Windows Azure Blob Service, either in blocks for block blobs or in pages for page blobs. Similarly, blobs can be downloaded in byte ranges. These operations can be implemented in parallel using different threads to upload or download different parts of the blob.

The Blob service has a scalability target for throughput of about 60 MB per second for an individual blob. This creates a limit to how much performance improvement can be achieved through parallelizing operations on a blob. When contemplating parallelization, it is always worth testing the actual workload to ensure that any expected performance gain is in fact realized.

.NET Framework 4 includes the Parallel Extensions to .NET that simplifies the task of parallelizing operations. These provide parallel versions of the traditional for and foreach statements. The Parallel.For and Parallel.ForEach methods can be dropped in almost as replacements for for and foreach...

Using retry policies with blob operations


A storage operation accessing the Windows Azure Storage Service can fail in various ways. For example, there could be an unexpected timeout if the storage service is moving a partition for performance reasons. It is advisable, therefore, to code defensively in the assumption that failure could occur unexpectedly.

The Windows Azure Storage Client library supports defensive coding by providing a retry policy for operations to the storage service. This is done by default, but the retry policy classes support parameterization and customization of the process.

CloudBlobClient has a RetryPolicy property. A storage operation on a CloudBlob object has a retry policy associated with it through the RetryPolicy property of its BlobRequestOptions parameter. These RetryPolicy properties provide access to a RetryPolicy delegate that returns a ShouldRetry delegate which specifies whether or not a retry should be attempted.

The RetryPolicies class provides several...

Copying a blob with the Windows Azure Storage Service REST API


RESTful APIs have become a common way to expose services to the Internet since Roy Fielding first described them in his Ph.D. thesis (http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm). The basic idea is that a service exposes resources that can be accessed through a small set of operations. The only operations allowed are those named for and which behave like the HTTP verbs—DELETE, GET, HEAD, MERGE, POST, and PUT. Although this appears to be very simplistic, RESTful interfaces have proven to be very powerful in practice.

An immediate benefit of a RESTful interface is cross-platform support as regardless of platform an application capable of issuing HTTP requests can invoke RESTful operations. The Windows Azure Platform exposes almost all its functionality exclusively through a RESTful interface, so that it can be accessed from any platform.

In particular, the Windows Azure Storage Service REST API provides the definitive...

Leasing a blob using the Protocol classes in the Windows Azure Storage Client Library


The Windows Azure Storage Service REST API provides the definitive way to access the Windows Azure Storage Service. It provides platform independence for the storage service allowing it to be accessed from any platform capable of using a RESTful interface.

Microsoft also provides the Windows Azure Storage Client Library that simplifies access to the storage service from a managed .NET environment. The high-level classes in this library are in the Microsoft.WindowsAzure.StorageClient namespace. These classes hide from the complexity of dealing with the raw HttpWebRequest and HttpWebResponse classes used with the Storage Service REST API. However, this simplicity comes at the cost of hiding some features of the storage service.

The Storage Client library also provides a set of lower-level managed classes in the Microsoft.WindowsAzure.StorageClient.Protocol namespace that expose the HttpWebRequest and HttpWebResponse...

Using the Windows Azure Content-Delivery Network (CDN)


The Windows Azure Blob Service is hosted in a small number of Windows Azure datacenters worldwide. The Windows Azure Content-Delivery Network (CDN) is a service that enhances end user experience by caching blobs in more than 20 strategic locations across the World.

After the CDN is enabled for a storage account, a CDN endpoint can be used, instead of the storage-account endpoint, to access a cached version of publicly accessible blobs in the storage account. The CDN endpoint is location aware, and a request to the CDN endpoint is directed automatically to the closest CDN location. If the blob is not currently cached there, then the CDN retrieves the blob from the Blob service endpoint and caches it before satisfying the request.

The cache-control property of the blob can be used to specify a time-to-live in the cache. Otherwise, the CDN uses a heuristic based on how old the blob is and caches the blob, for the shorter of 72 hours or 20...

Left arrow icon Right arrow icon

Key benefits

  • Packed with practical, hands-on cookbook recipes for building advanced, scalable cloud-based services on the Windows Azure platform explained in detail to maximize your learning
  • Extensive code samples showing how to use advanced features of Windows Azure blobs, tables and queues.
  • Understand remote management of Azure services using the Windows Azure Service Management REST API
  • Delve deep into Windows Azure Diagnostics
  • Master the Windows Azure AppFabric Service Bus and Access Control Service

Description

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.

Who is this book 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. You should have some exposure to Windows Azure and need basic understanding of Visual Studio, C#, SQL, .NET development, XML, and Web development concepts (HTTP, Services).

What you will learn

  • Develop highly scalable services for Windows Azure
  • Handle authentication and authorization in the Windows Azure platform
  • Use advanced features of the Windows Azure Storage Services: blobs, tables, and queues
  • Attach Azure Drives to a role instance
  • Diagnose problems using Windows Azure Diagnostics
  • Perform remote management of Azure services with the Windows Azure Service Management REST API
  • Expose services through the Windows Azure AppFabric Service Bus
  • Learn how to autoscale a Windows Azure hosted service
  • Use cloud-based databases with SQL Azure
  • Improve service performance with the Windows Azure AppFabric Caching Service
  • Understand the latest features ‚Äì including VM roles, Windows Azure Connect and startup tasks

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Aug 05, 2011
Length: 392 pages
Edition : 1st
Language : English
ISBN-13 : 9781849682220
Vendor :
Microsoft
Languages :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Aug 05, 2011
Length: 392 pages
Edition : 1st
Language : English
ISBN-13 : 9781849682220
Vendor :
Microsoft
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 117.97
Microsoft Azure: Enterprise Application Development
€37.99
Windows Azure programming patterns for Start-ups
€37.99
Microsoft Windows Azure Development Cookbook
€41.99
Total 117.97 Stars icon

Table of Contents

9 Chapters
Controlling Access in the Windows Azure Platform Chevron down icon Chevron up icon
Handling Blobs in Windows Azure Chevron down icon Chevron up icon
Going NoSQL with Windows Azure Tables Chevron down icon Chevron up icon
Disconnecting with Windows Azure Queues Chevron down icon Chevron up icon
Developing Hosted Services for Windows Azure Chevron down icon Chevron up icon
Digging into Windows Azure Diagnostics Chevron down icon Chevron up icon
Managing Hosted Services with the Service Management API Chevron down icon Chevron up icon
Using SQL Azure Chevron down icon Chevron up icon
Looking at the Windows Azure AppFabric Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
(9 Ratings)
5 star 66.7%
4 star 11.1%
3 star 0%
2 star 0%
1 star 22.2%
Filter icon Filter
Top Reviews

Filter reviews by




Adwait Ullal Feb 10, 2012
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book skips the introductory (and educational) aspects of Azure so the assumption is that the reader is familiar (or has worked) with Azure. If you're at that stage, you'll find the book very handy for solving specific issues that you may encounter during an Azure project.The topics that the author has covered are:Chapter 1, Controlling Access in the Windows Azure Platform.Chapter 2, Handling Blobs in Windows Azure.Chapter 3, Going NoSQL with Windows Azure Tables.Chapter 4, Disconnecting with Windows Azure Queues.Chapter 5, Developing Hosted Services for Windows Azure.Chapter 6, Digging into Windows Azure Diagnostics.Chapter 7, Managing Hosted Services with the Service Management API.Chapter 8, Using SQL Azure.Chapter 9, Looking at the Windows Azure AppFabric.Each chapter then has recipes for specific tasks that one may need. Each recipe starts with a task, a description of the task and how to complete that task. If any preparation needs to be done, the author lists it a "Getting Ready" section. Then, an "How to do it..." section goes into detail explaining how to complete the task with code. Lastly, each recipe ends with an "How it works..." section where the author explains how the code seen in the previous section works.A warning to the reader: some of the recipes are not task oriented but will help you make architectural decisions, which I found was a pleasant surprise.In summary, this book is for an intermediate or advanced Azure developer/Architect who is in need of immediate help with a particular issue s/he might be facing in a project.
Amazon Verified review Amazon
Pat Tormey Dec 16, 2011
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Neil's "Cookbook" is a well-organized list of functional tasks, organized around the specific pillars of Azure; each task can be applied independently.Every recipe clearly states "How to Do It" and "How it Works".Wish I'd read this last week.The samples are clear and concise, without sacrificing important concepts. IF I had read his recipe for dealing with the counter intuitive "Append anti-pattern" I could have saved myself a couple of days of experimentation and head scratching.Thanks Neil
Amazon Verified review Amazon
Jeffo Aug 15, 2011
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Given the complexities of Windows Azure, it's very effective when climbing up the learning curve to have a practical reference that helps you code on a variety of topics that span most of the relevant aspects of the subject. This is such a reference.I like the format of each recipe - an introduction to the topic, including explanations for why Azure is architected the way it is and what the various elements of each topic (e.g. associated classes and methods) do within the Azure architecture, then a "How to do it..." section with specific coding steps to generate the code that's included in the accompanying set of Visual Studio solutions, followed by a "How it works..." section that summarizes the coding steps and includes additional explanations and "gotchas".Different recipes build on one another. For example, there is a recipe for using Azure Drives (virtual hard drives mounted as blobs) in the cloud, and the author concludes that recipe by pointing out the differences between using them in the cloud versus in the development environment (locally, before deployment to the cloud). The following recipe then describes simulating Azure Drives in the development environment.I also appreciate that the author is not at all "chatty". This I've come to expect with "recipe" books, as I refer to them when I need to learn something very specific, usually in the middle of a project. The author holds very true to this format.I was a bit surprised to find that some of the recipes are not coding exercises at all, but rather advice in making certain solution architecture or pattern choices. For example, there is a recipe on how to choose the best Azure storage type for a hosted service. The recipe follows the same format as other recipes but replaces the detailed coding instructions with simple statements about why to choose each storage type. Nevertheless, the format works: the information is provided in a logical and concise manner, and I found myself referring back to the storage choice recipe a number of times as I was trying to decide on the storage layout for one of my simple solutions.One nice feature of the eBook is that pages referenced in the Index are hyperlinked so that you can look up topics or class names and go directly to the page where they are discussed.Overall, this is a very comprehensive reference that is easy to navigate and addresses each topic with an appropriate level of detail.
Amazon Verified review Amazon
Evelio Alonso Fuentes Aug 11, 2011
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book starts directly by hitting on the major areas of Microsoft Windows Azure Development that any developer should understand real well to make good use of this platform. Topics like Controlling Access, Blobs, Azure Tables, Azure Queues, Azure Diagnostics and more are discussed in detail. Not only how to use these things, but in which scenarios would you want to utilize each.One more thing I would like to mention is the inclusion of exercises in this book - a great idea in my mind for folks who learn by sample (like myself).My recommendation: Buy it for yourself. It's worth the price!
Amazon Verified review Amazon
NithyananthaBabu Sep 12, 2011
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Awesome Coding Steps!Every Steps will introduce different Approach of doing same thing. This will teach you the way of coding... Excellent explanation about Azure Storage and Access Control. I am in the middle of book. I am working for cloud more that 2 years. Now working as Architect in the field of Distributing computations. Full rank to authors.Who wants the guide for the developing windows azure apps as Web or WCF or Worker roles.. This is the highly recommended books.. Excellent.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.