Bold for Delphi is an Object Relational Mapper(ORM) and application framework. It's designed to significantly increase developer's productivity providing them with the following facilities:
- Object-relational mapping for persisting domain objects
- UML modeling of domain classes
- OCL as means of making queries (in-memory or to DB)
As in true model-driven environment model is a central part of an Bold application. The developer alters the model and the changes are applied automatically to the underlying implementation. This allows developers to concentrate on the problem domain model instead of drowning in the implementation specifics. In particular there is no need to take care of database design that makes Bold applications more object-oriented and less database-oriented. Model construction in Bold is done in visual Rational Rose 2003 UML editor. There is also a builtin editor that lack the UML diagrams. The corresponding code is generated on the fly in Delphi code.
Bold performs object-relational mapping based on metadata which is taken from the model (the bld-file). It implements such advanced object persistence features as caching, lazy load and others.
Object Constraint Language
OCL is often referred to as an object analog for SQL. And indeed it is quite convenient to make OCL queries in terms of objects. For example the following expression gets company employees older than 30 years: "company.employees->select(age > 30)". Originally OCL was proposed by OMG as a means of describing constraints in UML models. But actually the usage area of OCL is much wider. In Bold OCL is used to express:
- Queries to the DB
- In-memory queries
- Evaluation expressions for derived class members
Bold uses its own OCL editor with syntax check and expression assistant. This makes writing OCL expressions in Bold easy and safe.