DDOData-Classes
DDOBasicDataObject is the super class for all data-classes based on the Dynamic Data Objects. All tables that are not mapped to developer defined inherited classes are mapped to DDOBasicDataObject. So you can build a complex application without any custom data class, but on the other side, we recommend to place all you business logic regarding to such an object in a class inherited from DDOBasicDataObject.
The DDOBasicDataObject is a intelligent combination of set / list management and access to single record values. So all of the CRUD-operations (Create, Request, Update, Delete) are done in this single place. Using qualifiers you can select and fetch data from your database and then navigate through the results all using a DDOBasicDataObject.
For many purposes, not only in use with a DDOXMLDBContext or a RemoteEditingContext you can serialize / deserialize the DDOBasicDataObject to a special XML format. Even import of data can be done through this methods.
The dynamic of Dynamic Data Objects is integrated in almost all parts of the framework. To be consequent we use KVC (Key-Value-Coding) to access objectsproperties not only through hardcoded methods, but also by parameter. Of course you can implement wrappers for the most needed properties in your inherited classes, but for internal usage it's not necessary.
Together with the definition of joins (DDOSchemaJoin) and the integrated list management in the DDOBasicDataObject you can easily access joined informations. For example you've got contacts, invoices and line items and you need the rebate of the contact to calculate the current prize of the item you simply use GetValue(“myInvoice.myCustomer.RebateValue”).