views:

42

answers:

2

We recently spent the afternoon debugging our Azure application after trying to move the storage from the local store to the cloud storage -- the first step in moving the entire thing to the cloud.

We came across a problem in where the local fabric storage was letting us store improperly initialized DateTime objects (initialized to DateTime.MinValue, or "0") to an Azure storage table, but the Cloud storage would throw a "value out of range" exception when the value was committed to the table.

Is there a way to have the local storage throw the same exceptions as the cloud?

Failing that, is there a list of these things? I found an MSDN page on some differences, but it didn't list anything like this.

A: 

I think this is the page you want: http://msdn.microsoft.com/en-us/library/dd320275.aspx (It does mention the discrepancy you saw.)

smarx
Yeah, that appears to be it. Is there a way to have the local fabric throw exceptions around these differences?
gdc
No, its one of the "problems" with the DevFabric at this time
Taylor
A: 

It is not possible to make local storage and fabric behave exactly like the production counterparts. There are completely different implementations.

The practice that we've adopted at Lokad based on our experience with Azure is:

  • start using production storage and fabric as early as possible in the prototyping and development;
  • if really needed, build development abstractions and helper classes, that hide or handle critical differences or sharp edges of Azure.

Some of these abstractions and classes are made available in the open source projects for Azure:

  • Lokad.Cloud (storage mapping and distributed executor)
  • Lokad.CQRS (CQRS-style scalable architectures for Azure)
Rinat Abdullin