Building your object models on the ObjectExtender framework can be done in several ways. How you begin depends upon whether your data store already exists. Whether you are starting from scratch, or creating an application to persist to a legacy database, it is best to separate your application domain into three programming tasks:
These tasks can be implemented by a team of programmers or by one. In either case, the framework addresses all of the details required for persistent object behavior. For each task, browsers, tools, and code generation services are provided.
Object modeling involves defining the application domain in terms of objects and the relationships between them. ObjectExtender facilitates the task of mapping object models to a range of back-end storage and processing technologies, most notably new and existing relational databases and transaction processing monitors.
Application programming comprises implementing scripts on the model objects, relationships objects and other application objects that implement the functions, business rules and user-interface of the application. ObjectExtender provides an extensible transaction abstraction that gives application programmers a framework to implement the logic of the basic use cases of an application.
Data access programming implements the individual services that map objects and relationships in the object model to the underlying data store using such mechanisms as SQL and transaction processing monitor based calls. For relational databases, ObjectExtender provides a code generation services that create an implementation of a data access service layer from a higher-level mapping specification. The generated code is complete. Enhancement to the generated code is only needed in special cases, for example, tuning the performance of special SQL queries because of special knowledge of underlying data or application access patterns, or because of unusual table structures in existing database schemas.