Thursday, January 10, 2008

Win32 Object Persistence Frameworks

Persistence of Win32 Objects, specifically in trivial desktop applications, has been a bit of a pet project for me. As the question does come up from time to time in the News Groups, I thought I'd put together a page where anyone interested can find links to the ones that are out there. There is another reason ... I'm hoping to get through at least a couple of them and try them out. The results of those trials, I expect I'll post here.

The OPF, with a bit of content from their respective sites [in no particular order], that I know about:

InstantObjects™
is an integrated framework for developing object-oriented business solutions in Borland Delphi™. The framework provides the foundation for the development process as well as the engine that powers the final application. InstantObjects™ offers: Model realization in the Delphi IDE via integrated two-way tool. Object persistence in the most common relational databases. Object presentation via standard data-aware controls.
Originally from seleqt.com

tiOPF
The tiOPF is an Open Source framework for Delphi & Free Pascal that simplifies the mapping of an object oriented business model into a relational database. The framework is mature and robust having been in use on production sites since 1999. It is free, open source, and available for immediate download with full source code.

Infra - Integrated Framework
A set of frameworks, written initially in Delphi, able to facilitate the application development purely oriented to objects. These frameworks supply a solid base for the development of applications in Delphi, taking in consideration characteristics found in applications developed in Java and .Net platforms. Infra also will have a code generation tool, called InfraGen. This tool will allow analysts to draw UML models, to define business rules, they will can also setting screen and report templates, setting a language and/or platform. Setting this configurations, Infra take care of what else. 'Its a Dream? I do not believe, future is in our hands'

jazz-sdk
Set of Frameworks for OOP development in Object Pascal - Delphi and Free Pascal
VTF - Value Type Framework
OPF - Object Persistent Framework
MVP - Model View Presenter Framework

Snap Object Dataset
Want you conciliate pure object oriented programming and Delphi data aware controls? Through Snap Object Dataset components you will be able to join your business logic with the true RAD powerful Delphi data aware controls; in this way your GUI will continue to completely being detached from the persistence layer. The package contain two components TSnapVirtualDataset and TSnapObjectDataset and one editor for use of this components in a true RAD way. These components are completely free with source and demos, and with the editor you can create automatically for every properties of your business classes the associated TField descendent.

PressObjects
is a software development kit (SDK) composed of several frameworks that assist the construction of object oriented applications.
The core frameworks are:
PressSubject, a Data Type used to build business objects
PressOPF used to perform O-R mapping and persist/instantiate objects against relational databases
PressMVP used to present business objects to the user through the Model-View-Presenter pattern
PressNotifier used to create notifications through the Publish-Subscriber pattern
Code was built for Delphi-Win32 and Free Pascal compilers. It is 100% portable, 100% object oriented, 100% Object Pascal.

Macrobject DObject suite [Commercial]
is an O/R Mapping (Object-Relation Mapping) component package to be used in Borland Delphi. DObject O/R Mapping suite supports a variety of databases and transparent to users and needn't to alter code when switching to different database. At the same time, DObject O/R Mapping provides XObject XML, a database engine with high performance. DObject O/R Mapping suite allows you to access database completely in the way of object-oriented. It includes OQL.Delphi, which is a strong-typed OQL (Object Query Language) based on native Delphi language, even you needn't to write a single line of SQL statement based on string.

ObjectSight [Commercial ... last release July 29, 2003]
provides Object Oriented Programming (OOP) tools including an advanced set of libraries to create intelligent business objects for development in the Borland Delphi environment. Developers can generate all the pre-requisite code and object definitions to read, modify, insert and delete records within a relational database - in minutes! ObjectSight objects provide all the features associated with true object oriented development - encapsulation to hide complex operations relevant to the object, and inheritance to re-use existing definitions and code.

A couple I missed that have been added thanks to Andrey [in the comments section below]:

Delphi Persistent Object [Open Source ... latest release Oct 24, 2003]
Delphi Persistent Object (DePO) is a Object Persistent Framework. The implementation follows strictly the Scott Ambler implementation, adapting itself into the Borland VCL.

Easy MVC [Open Source ... latest release Sept 03, 2006]
or eMVC is a lightweight MVC frame work, design for Delphi developers. eMVC based on two design patterns, Chain of Responsibility and Observer. An application with eMVC would be flexible and easy to be extended. Source code reuse also maximized.

 

OPF Tools MIA

Spider OO Database from Interval Software
Data-Aware Business Components from Raize Software.

 

For The Web

g-framework
G is a model driven web application development framework providing: Native Win32 web application development on Delphi 2006 (including Turbos). Completed applications in minutes instead of days, weeks or months. Declarative business rules (most "coding" appears in the Interface section). Automatic database persistence (no SQL required). Automatic user interface generation (modifiable, of course)

 

Miscellaneous

In a recent NG thread someone mentioned using RemObjects or kbmMW [from Components4Developers] in an OPF discussion - I suspect they were serious, I haven't looked into either of them. If you do ponder having a look at kbmMW remember you can get the kbmMW CodeGear Edition from either myC4D.Com or TurboMiddleware - both from Components4Developers.

 

Must Read:

Scott W. Ambler articles at Agile Data

 

Not all are actually "OPF" tools, a few are more than that - others a bit less ... but they are generally tools used with the persistence/design of Objects at their core. Did I miss any? Drop me a line.

Sorry I've been negligent in my articles and ... thanks for stopping by,
Dave