Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

README.md

Sterling NoSQL Object-Oriented Database

This is the project for Sterling, and object-oriented database Jeremy Likness created to meet the growing demand for queryable, persistent storage in Silverlight and Windows Phone apps in the early two-thousand tens.

Sterling Database

This project was migrated from CodePlex. You can read the legacy documentation here.

If you want to browse the code, the "heart" or "brains" of Sterling are contained in SerializationHelper.cs. The rest of the codebase can be inferred from there.

At the time, Sterling was designed to be an unobtrusive solution for taking existing C# classes and persisting them without having to modify the classes themselves. A common use case for this was "tombstoning" Windows phone apps, which referred to saving the View Model that contained the app state when the app is swapped to the background so it can be restored later.

A few features of Sterling:

  • It could serialize almost any class "as is"
  • For special cases you could define your own serializers
  • It supported "byte interceptors" to modify the raw streams (i.e. for compression or encryption, etc.)
  • It supported multiple databases
  • You could define triggers to be called as data was saved (for validation) or loaded (for computed fields, etc.)
  • Lambda expressions defined indexes (i.e. index on name: entity => entity.name)
  • The storage was decoupled from the database engine, so you could write your own persistence or leverage the built-in engines including a server side storage engine that used the file system, an isolated storage mechanism for phones and an in-memory default engine for cache

Sterling was later ported to support WinRT apps.

The original online user guide still exists.

For nostalgia, you can still browse old Twitter conversations about Sterling.

About

Sterling NoSQL Object-Oriented Database

Topics

Resources

License

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.