DDODBContext
Inside the DDOs there are two different types of context-classes. First there are datacontext used to define your datasource and internally manage all the differences between the different data sources.
For management of your class instances during runtime and all of the CRUD-operations there is a DDOEditingContext.
Using the DDODBContext you get transparent access to all your data, the interesting part, it doesn't matter what kind of data source the data is stored.
There are DDODBContext for several SQL-databases, i. e. Valentina, FrontBase, PostgreSQL Using other databases like Oracle or mySQL is possible too, but due to licence and coast issues not as simple as the others.
Because of the intelligence integrated in each DDODBContext the specific dialect for each SQL-database is handled in background. All layers above the DDODBContext access the different context classes through a unique API, so you didn't know about the underlying database.
A change of the database means simply rewriting a small xml-file and a restart of the application, no recompilation, no debugtime, … nothing more! (To be honest, it's up to you to move your datasbase structure and the data from one database to another – the framework is about mapping data and objects and not about managing databases!)
But we go a big step further! The DDODBContext are not a single definition for an application you can use as many as you want and of course you can mix several different data sources. The relations (links between objects) are defined on a higher level, so it's possible to store all Contacts in a Valentina database and join the invoices stored in a big Oracle-ERP.
DDODBContext are not only designed to be used with (sql-) databases. There are several context classes for file, especially XML-files. Of course we didn't recommend to store bigger amount of data in the xml-files, the DDOXMLDBContext is pretty handy for storing preferences and any other small bit of seperate informations.
The Dynamic Data Objects are itself developed using the Dynamic Data Objects – I know many developers are really contently to read this, you know we eat our own … food! So all schema definitions, data context definitions and many, many more files are all accessed through the DDOXMLDBContext!