Delphi Programming

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)

Modeling

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.

Class diagram

Object persistence

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
  • Constraints

Bold uses its own OCL editor with syntax check and expression assistant. This makes writing OCL expressions in Bold easy and safe.

The legal rights

In spite of this excellent properties it is currently not possible to buy Bold from Embarcadero or any other vendor. Embarcadero have the legal rights of the source. Bold is included in Delphi 7 Architect. But as full source is not included it cannot be used in newer versions of Delphi. The latest official version of Bold is for Delphi 2006 Hopefully Embarcadero will do something about this situation and update Bold for latest Delphi or release it as open source.

There are some companies that bought the full source from Boldsoft before Borland bought it. One example is Attracs.