I have decided to centralize my code on GitHub. As of today, you can find the code from my Windows Azure posts, bundled in Brisebois.WindowsAzure.
I also packaged my code and made it available through Nuget.org
To install Brisebois.WindowsAzure, run the following command in the Package Manager Console
PM> Install-Package Brisebois.WindowsAzure
Issues can be logged on GitHub
Disclaimer
These are my personal Windows Azure tools. I am actively adding to them as I publish new blog posts.
This code does not come with any guaranties. Bugs are possible and I will be happy to fix bugs that are reported through the dedicated Issues page on the GitHub repository. Please keep in mind that work on this code is done on me personal time.
For those who are wish to contribute bug fixes and new features, I will be happy to consider all pull requests and collaborate in order to integrate your generous contributions to the package available on Nuget.org.
Contents
Logging & Diagnostics
- Logger – A simple lightweight logger. The problem I have with more widely used Logging frameworks, is that they collect too much information. This Logger has helped me rapidly stop errors in my Windows Azure Worker Roles.
Windows Azure SQL Database
- BulkWriter – SQL Database on Windows Azure is extremely good at protecting itself from abuse. This bulk writer has helped me insert massive amounts of data into SQL Database.
- Database<TModel> – Makes working with Entity Framework and Windows Azure SQL Database simpler by wrapping modifications with a transaction and by using the exponential back off transient error detection strategy. This is necessary because the connection to SQL Database is not considered to be reliable. It also enables the developer to use a query level cache by implementing DatabaseQuery.
Windows Azure Blob Storage Service
- BlobCompressor – Keep blobs in a container compressed. This is an example of what can be achieved with a BlobContainerWorker. The BlobCompressor monitors a container and compresses blobs that are not compressed. Upload new blobs and they will be compressed within a 17 minute delay.
- BlobContainerWorker – Is a base class that can be implemented to work with blobs in a container. It implements a PollingTask.
Windows Azure Queue Storage Service
- QueueWorker – Is a base class that can be implemented to work with queues. It implements a PollingTask.
Windows Azure Table Storage Service
- TableStorageWriter – Was designed to batch operations together and reduce the number of transactions required to modify data in Windows Azure Table Storage Service.
-
TableStorageReader – Was designed to execute reusable queries on Windows Azure Table Storage Service. The reader can cache query results in order to reduce operational costs and speedup your response times.
REST
- HttpTransientErrorDetectionStrategy – Adds logic to decide weather the exception raised by the code executed within a RetryPolicy is a transient HTTP error.
- RestClient – A Fluent REST Client that uses the HttpTransientErrorDetectionStrategy and a RetryPolicy to be tolerant to transient faults.
Framework
- PollingTask – Is a base class responsible for limiting costs by backing off from services when there is no work to be done. They are building blocks for my Worker Roles and empower me to easily organize work loads.
- DelayCalculator – Used to calculate an exponential back off delay based on failed attempts.
- JobSchedule – Can be used to schedule jobs using Quartz.Net and defining schedules through the CloudConfigurationManager.