|
Inside DBUpdater
The three parts of DBUpdater
Db Updater can be divided in three parts:
- Schema Info paradigm
- business logic
- Database specific
Schema Info paradigm
The first part is a redefinition of the Ado schema info.
This is due to the fact that Microsoft Schema Info does not contain all the information required to handle all kind of synchronization features.
We will discuss this point in more detail in Schema Info limitations.
Business logic
With business logic we intend the core of the technology, i.e. the part that uses the Schema Info and the DbSpecific settings in order to compare and update database.
Database specific
The third part is the more domain specific but also the more exciting part of the technology. The approach used is to encapsulate all the logic inside the business logic part.
All this logic makes uses of specific settings and domain specific information in order to choose the better approach to use during compare.
For example, some database (i.e. ASA) don't allow to set in one instruction both default value and property NULL.
The core business logic is aware of this differences and is able to use the better approach.
What it requires is that the Domain specific object describing the target database contains the right specification about this treatment.
As a consequence, in order to support a different provider (i.e. Oracle, Interbase, .) what need to do is to discover the domain specific settings and create another class of the factory which describes the new database.
New Schema Info Paradigm
A specific study has been done to define a new Schema Info paradigm containing all the information required for compare and update database.
This is due to the fact that Microsoft Schema Info does not contain all the information required to handle all kind of synchronization features.
Moreover, often when available, the information is not extracted properly.
But Microsoft ADO Schema Info is a good technology so, instead of define from scratch a new paradigm, we decided to extend the schema information.
|