Sterling Object-Oriented Database 1.0 RTM

In early 2010 I was working on several Silverlight projects that were driven by the need to provide a working offline solution. Isolated storage was the obvious answer. Unfortunately, serializing 10,000 contacts came with some overhead and I realized quickly that I was following some similar patterns when it came to handling large sets of data: I would serialize the key fields (for example, names for contacts) in order to manage lists that I could filter in-memory, while saving the bulk of data for separate serialization events.

This inspired me to create Sterling as a way to ease the burden of persisting data. I looked at other options and didn’t like having to change my classes just to save data (for example, make them derive from a database base class when I already was deriving them from my own helper classes). I also didn’t like the inflexibility of options available. So, I set out to build something lightweight and non-intrusive that would give the user full control over serialization. The key would be to provide keys and indexes through lambda expressions to make it easy to access common data using LINQ to Object queries in memory while saving the “slow” part (loading from disk) for when it was needed.

I knew I would use Sterling in my own projects but I never imagined how popular it would become with other users. The timing for Sterling was perfect because when the Windows Phone 7 was released, the application developers were faced with a unique scenario called “tombstoning” that requires saving data when the application is swapped to the background. Sterling turns out to be a perfect fit for saving and restoring that data.

After asking some of my peers whether or not it would make sense to provide the solution as an open source community project, the responses were consistent and I realized this was definitely the way to go. I uploaded the bits and quickly went from a fledgling “0.1” release to several interim change sets that morphed into something I was comfortable calling “beta.”

That’s when the real power of the open source community began to transform the project. Numerous people were pulling down Sterling and using it in their applications, then providing me with valuable feedback for features and bug fixes. Some even sent me code-complete patches to implement various changes. We went from a small set of options for serializing data to a rich, interactive, highly adaptive and flexible solution that can handle a large variety of class configurations and relationships.

It’s been a challenging 8 months of late nights fixing bugs, responding to feature requests, and writing a comprehensive guide to make sure the product is well documented, but I would be lying if I said I didn’t enjoy every moment. I’m excited to see what the future versions will bring but for now am absolutely ecstatic to announce that I’ve released Sterling from beta to version 1.0. Enough people have shared the testimonial of their projects and helped me expand the battery of unit tests on both the phone and browser versions to finally make this milestone possible.

You can download the release at CodePlex. You can read the full user’s guide at www.SterlingDatabase.com. Please take the time to rate your experience with the product so others know what to expect, and if you are interested in what others are doing or are willing to share your own story, visit our Real World Sterling Projects thread. Thanks everyone and I look forward to exciting features to come.

Jeremy Likness

Recent Posts

8-Step AWS to Microsoft Azure Migration Strategy

Microsoft Azure and Amazon Web Services (AWS) are two of the most popular cloud platforms.…

7 days ago

How to Navigate Azure Governance

 Cloud management is difficult to do manually, especially if you work with multiple cloud…

2 weeks ago

Why Azure’s Scalability is Your Key to Business Growth & Efficiency

Azure’s scalable infrastructure is often cited as one of the primary reasons why it's the…

4 weeks ago

Unlocking the Power of AI in your Software Development Life Cycle (SDLC)

https://www.youtube.com/watch?v=wDzCN0d8SeA Watch our "Unlocking the Power of AI in your Software Development Life Cycle (SDLC)"…

1 month ago

The Role of FinOps in Accelerating Business Innovation

FinOps is a strategic approach to managing cloud costs. It combines financial management best practices…

2 months ago

Azure Kubernetes Security Best Practices

Using Kubernetes with Azure combines the power of Kubernetes container orchestration and the cloud capabilities…

2 months ago