| If to speak about desktop applications then any embedded DB will be unbeatable. So I am speaking about embeddable DBs here. Konstantin Knizhnik have implemented impressive set of various embedded DBs: http://garret.ru/databases.html Like his POST++ has direct mapping to C++ classes so if you use C++ then you don't need any ORM. In my Sciter[1] Engine I am using his DyBase library [3] as a bult-in persistence for Sciter's script [2] (JavaScript++). With the DyBase in script you have features similar to MongoDB (noSQL free-form DB) but without any need for ORM and DAL - you can declare some root object as be persistable and access those data trees as if they are JavaScript objects. The engine pumps objects from DB into memory when they are needed: var storage = Storage.open(...);
var dataRoot = storage.root; // all things inside are persitable
dataRoot.topics = []; // flat persistable list
dataRoot.topics.push({ foo:1, bar:2 }); // storing object
/* create indexed collection with string keys, keys can be unique or not */
dataRoot.titles = storage.createIndex(#string);
DyBase has Python bindings too.[1] http://sciter.com - multiplatform HTML/CSS UI Engine for Desktop and Mobile Application [2] TIScript - http://www.codeproject.com/Articles/33662/TIScript-Language-... [3] DyBase - http://www.garret.ru/dybase.html |