Implementing methods
The ClassEditor supports implementing methods on module and project level (typically C functions), but also on class level. In the resource project containing the database model definitions typically OSI functions are implemented, which can directly access database type properties. For implementing functions via the ODABA API it is suggested to create a new project, since than one gains more support from the ClassEditor.
Usually, separate projects are created for database context class implementation (business rules), GUI context class implementation (application rules) and common functionality.
Implementing methods is supported as OSI, C++ or C# functions. OSI is quick to implement, but may cause performance problems when accessing data intensively. Since C# or C++ classes may also contain OSI functions, one might implement a function first as OSI function and re-implement it later in C++ or C#, when it seems to behave to slow. Since the syntax for all three languages is rather similar, it is not a big job to rewire one or more functions.