As the chief architect for the Solution Family, I’m always s looking for new places to store M2M data. I like to investigate anything that might make sense for either ourselves or our customers. A few months ago I came across Dream Factory, which is an open-source, standards-based Cloud Services Platform. They provide more than just storage, but my first foray was into the storage side of things.
First I had to understand exactly how to use their REST APIs to do the basic CRUD operations. On the surface, their API documentation was cool, but it actually lacked some of the fundamental pieces of information on how to initiate a session and start working. I suspect that this is because they’re small and new and let’s face it, documentation isn’t that fun to generate. Fortunately, their support has been fantastic – I actually can’t praise it enough. Working with their engineers I was able to piece together everything necessary to build up a .NET SDK to hit their DSP service. To be fair, the documentation has also improved a bit since I started my development as well, so several of the questions I had have been clarified for future developers. Again, this points to their excellent support and reacting to customer feedback.
Once I had a basic SDK, I then wrapped that in an implementation of the ORM that, for now, supports all of your basic CRUD operations. The code is still wet, doesn’t support all ORM features, and is likely to be a bit brittle still, but I wanted to get it published in case anyone else wanted to start playing with it as well. So far I’m pretty pleased with it and once I have it integrated into Solution Engine, it will get a whole lot of use.
I’ve published the SDK and the ORM implementations up in CodePlex, all under the OpenNETCF.DreamFactory branch of the source tree. Head over to Dream Factory to learn more and set up your free DSP account, then jump in.
It’s worth noting that at this point it’s a Windows Desktop implementation only. Mono, Compact Framework and Windows Phone will follow at some point.