NDBGen is built on a plugin system that allows functionality to be added in three forms. By adding descriptors, one may extend NDBGen's markup to support new features or syntax. By adding generators, one may extend NDBGen to support generating code or database
scripting for new platforms.
Descriptors are classes that describe sections of NDBGen markup to the generators. There are several different types of descriptors.
- Column DataType Descriptors represent the data type of a column. Data types available to SQL are normalized into the DataType enumeration.
- Column Token Descriptors represent properties or attributes of a column, such as whether it is nullable, a foreign key, or a primary key.
- Table Token Descriptors represent properties or attributes of a table, such as whether the table should be represented in code as an enumeration.
A generator plugin will consist of multiple generators. Most descriptor implementations will require a corresponding generator implementation. There are two types of generators.
- Data Access Generators are used to generate code representations of the database schema, such as classes and their properties, or enumerations.
- Database Script Generators are used to generate database scripts to create the database schema and define data.
Project File Managers
A Project File Manager helps NDBGen integrate with an IDE by determining when and how to add to an IDE's project or solution file.