Development

Storing simple data for prototypes with Biggy

Data

I've used a lot of databases ranging from enterprise SQL Server and Oracle to NoSql MongoDB to Azure blob storage in the cloud. But recently I've been looking for alternatives when creating quick prototypes, proof of concepts or MVPs (Minimal Viable Products).

My Azure Virtual Machine on which I run a number of personal websites doesn't cost much, but it has little in the way or resources. So little in fact that installing SQL Server Express isn't even an option and installing MongoDB is something i'd rather avoid as well. Which is a shame because I love code first Entity Framework.

For my personal projects in the past i've initially relied on simply using the .NET XmlSerializer and saving files to the app_data folder. And if your data needs are simple, then this is totally acceptable for creating something simple. Problem is, I tend to re-write the same serialisation / deserialisation code again and again.

Until now.

I have just discovered an open source project started by Rob Conery called Biggy. Biggy is a local file storage ORM, that stores serialised json objects with Linq support. It has recently been extended to support SQL Lite.

I see myself using Biggy on my side projects including SiteHealth.co, SimpleStatus.co, Task.camp, CompareDlls.com, PushupCounter.com, Trackmy.Fitness and maybe more.

I think Biggy will let me more rapidly develop the data persistence layer of these small projects. Sometimes the simplest solutions are often the best.

Assuming I abstract away the data layer, I don't see any reason for implementing a data storage technology that scales vertically (eg local SQL Server) or horizontally (eg azure cloud or sharded MongoDB) when Biggy will suit my immediate data storage needs.

With these sorts of side projects premature optimisation is to be avoided as the point is to get to a working proof as concept as fast as possible to determine viability.

But don't take my word for it. Go try Biggy for yourself.

-- Lee