By Josef Finsel on 2/12/2010 2:49 PM
There has been a surge in recent years involving Test Driven Development, something that Mike Amundsen and I were discussing last night. It's not a development style that we work with much and that discussion led to this post and a new style of programming we call MDD, матрёшка doll development. матрёшка (Matryoshka) dolls are nesting dolls, looking something like this:
To understand the MDD, let's look at TDD and some of the reasons it seems to have exploded in popularity. One reason that I posited was that TDD is really great for quickly creating demo software. Create the... Read More » |
By Josef Finsel on 2/1/2010 11:00 AM
Read More » |
By Josef Finsel on 11/10/2009 5:00 AM
So, you've got an Azure SQL Database and have been doing some work in it/on it and then find out it is a CTP and you need to move the data and schema to another database.
Which isn't bad but there aren't any good tools for scripting an Azure SQL database, mostly because Azure SQL doesn't support using the DMO, which is what most people use.
So, I wrote my own.
It's not perfect, it's missing a few things (doesn't handle triggers, for instance) but it should be good enough to get you started.
It's simple enough. Download and... Read More » |
By Josef Finsel on 10/12/2009 9:19 AM
As you may know, there have been some changes going on for Windows Azure. One of those changes has been related to Affinity.
Windows Azure production applications and storage will no longer be supported in the ‘USA-Northwest’ region. We will be deleting all Windows Azure applications and storage accounts in the “USA - Northwest” region on October 31st. To move your application/storage, first delete the project using the “Delete Service” button. Then recreate it, choosing the “USA - Southwest” region. (It may take a few minutes for your previous application and storage account names to become available again.)
I've been meaning to write a couple of utilities for backing up blobs and storage and this is just the impetus to do so. Point your favorite SVN tool to http://reluctantdba.svn.beanstalkapp.com/demonstrations/trunk/AzureCommands and download the latest and greatest set. There's two new programs, AzureBlobLoader and AzureBlobRetriever. The first utility, AzureBlobLoader, will load a directory... Read More » |
By Josef Finsel on 6/23/2009 7:02 PM
As I said in my last post, the Worker Role should be an extremely light wrapper that calls a class that does all of the real work. There are two good reasons for this. First, the less code in the Worker Role, the less debugging you need to do in the Development Fabric, the easier it will be to write, test and debug your code. Second, the code in the Worker Role should be fairly stable. If all it is doing is instantiating a class and calling it every few seconds, it lessens the chances of errors happening in the Cloud version that will require major changes. Follow the basic rule of Keep It Super Simple when it comes to your Worker Role. The class that the Worker Role is instantiating should include a call back function... Read More » |
By Josef Finsel on 6/23/2009 6:54 PM
Windows Azure isn't just about Azure Storage Services, it's also about running hosted programs in the sky. And this is actually a critical part of Azure Storage Services, even though it may not seem like it. The series so far has introduced Azure Storage Services and talked about what you can do with each of the pieces, but the time has come to take it to the next level, which includes taking care of some of the management issues that SQL Server and other RDBMSs do for us. Now, I have said that one of the reasons that Azure Table Storage scales better than SQL Server is because it is simpler and doesn't have all the overhead of managing the data that SQL Server does. And you might accuse me of reinventing the wheel. But there are certain pieces of data management that make sense. Take what SQL Server does when we ask it to process something like this: Read More » |
By Josef Finsel on 6/23/2009 6:41 PM
Creating and Retrieving Blobs with BlocksIf you want to upload a large file to Azure Blob Storage (ABS), you're going to need to split it into pieces and transmit the individual pieces. Then, when you get them all uploaded, you tell the server to assemble them. This is all done using Blocks, which may be up to 4MB in size. It sounds complicated, but it isn't really. The first thing you do is split the file into 4MB blocks. If you have a Byte Array, this is easy enough to do. Then, you upload each block to the server using PUT and the URI of http://{account}.blob.corewindows.net/{Container}/{Blob}?comp=block&blockid={blockid} (CanonicalURL is Read More » |
By Josef Finsel on 6/23/2009 6:35 PM
Today I venture into Azure Blob Storage. If you want to follow along, download a copy of my AzureCommand class. You also might want to create an Microsoft Azure Account. I should state that I am not looking at the locally hosted development storage, only at the cloud hosted one. When we talk about BLOBs, we are talking about Binary Large Objects, not an amoeba like alien that terrorized Downington, PA (although it appears that a blob is a blob and not really a BLOb). And BLOBs generally can be thought of as files. These files exist in... ContainersContainers in Azure Blob Storage (ABS) Read More » |
By Josef Finsel on 6/23/2009 6:28 PM
When one thinks Queues, one may conjure up many different images. Microsoft has MMQ and has implemented Service Broker, both as means of having stateless communication. Azure Queue Storage (AQS) is similar. The stated reason for using AQS is to be able to kick off Azure Worker Roles, but you can actually use AQS for any type of stateless communication. AQS consists of two parts: Queues and Messages. Queues, like Tables in ATS, are really nothing more than defined URIs that can be used to store and retrieve messages.Messages are nothing more than text packets (up to 8KB) that can be stored and retrieved from a specific URI. So, let's dig in. Read More » |
By Josef Finsel on 6/23/2009 6:22 PM
Today I'm going to look deeper at some aspects of Azure Table storage that didn't make it into the last post. If you want to follow along, download a copy of my AzureCommand class. You also might want to create an Microsoft Azure Account and load in some data. If you're looking for some data to play with, load a copy of test data. I should state that I am not looking at the locally hosted development storage, only at the cloud hosted one. Read More » |