Client Databases for Silverlight

When comes the time to use Silverlight out of browser functionality, we may have to face the fact that Silverlight might be used without an internet connection. In this particular case, the application must implement a local cache.

I have found some very interesting database solution available for Silverlight.

siaqodb (in beta when this post was published)

This database is using LINQ natively to retrieve the data which is stored in the isolated storage on the client machine.

var p = new Product { Name = "Pencil", Price = 0.25 };

db.StoreObject(product);

var query = from Product p in db
            where p.Name == "Pencil"
            select p;

http://siaqodb.com/

Silverlight Database (in beta when this post was published)

Again, this database is using the isolated storage to persist locally the offline data.

var db = Database.CreateDatabase("test");
db.CreateTable<Person>();

var person = new Person{ FirstName = "John", LastName = "Doe" };
db.Table<Person>().Add(person);

var q = from p in db.Table<Person>()
        where p.LastName == "Doe"
        select p;

http://silverdb.codeplex.com/

Others

db4o : They are working on a Silverlight port.
EffiProzSL : A port of the EffiProz database.
Perst : A port from Java.

Experimentations

Google gears and silverlight
C#-SQLite running in Silverlight

Happy new year!