tiOPF

From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de) English (en) italiano (it) 日本語 (ja)

About

The TechInsite Object Persistence Framework (tiOPF) is an Open Source framework of Delphi/Object Pascal code that simplifies the mapping of an object oriented business model into a relational database. The framework is mature and robust. It has been in use on production sites for over seven years. It is free, open source, and available for immediate download with full source code.

Some of the key features of the tiOPF include:

  • Lets you build an object oriented application that can swap databases with the flick of a command like a command line parameter or a change of a compiler directive. Currently, there are persistence layers for Interbase-IBX, Oracle-DOA, XML-MSDOM, XML-XMLLite, Paradox-BDE, MSAccess-ADO, MSSQLServer-ADO, FireBird-FBLib, FireBird-SqlDB, HTTP Proxy-Remote, CSV files and TAB files.
  • Family of abstract base classes for building a complex object model
  • 27 Persistent object aware components for building complex GUIs (Delphi only).
  • Model-GUI-Mediators for enabling any standard GUI component to become Object Aware.
  • 1400+ DUnit/fpcUnit tests to guarantee stability
  • 160 pages of documentation to get you started
  • News groups for support
  • Automated, daily builds and unit testing
  • Lots of demos focusing on specific parts of the framework for easy learning.
  • Cross platform. Currently tested on Windows and Linux.

Authors

Peter Hinrichsen - Original Developer.
Graeme Geldenhuys - Ported to Free Pascal.

License

Mozilla Public License 1.1 (please contact the author if the MPL doesn't work with your project licensing)

Download

The latest stable release can be found on the TechInsite page.
The latest development code can be found on the SubVersion server as follows

svn co --ignore-externals https://svn.sourceforge.net/svnroot/tiopf/tiOPF2/Trunk Source

or downloaded as a nightly build zip file from the DailyBuild page.

NOTE: The tiOPF code has recently moved to SourceForge, so there isn't any pre-packaged zip files available yet. The latest code can be downloaded from SubVersion though.

An easy way to get the code, is to use the command line svn client as follows. The commands below will checkout the Source, Demos and Docs directories of tiOPF version 2.

 mkdir tiOPF2
 cd tiOPF2
 svn co --ignore-externals https://svn.sourceforge.net/svnroot/tiopf/tiOPF2/Trunk Source
 svn co https://svn.sourceforge.net/svnroot/tiopf/tiOPF2_Demos Demos
 svn co https://svn.sourceforge.net/svnroot/tiopf/tiOPF2_Docs Docs

Try and keep the above directory layout. It is much easier to support and the documentation build scripts will work without modification. The --ignore-externals is specified so that it doesn't bring in other third party components that are only required by Delphi.

Dependencies / System Requirements

  • Compiler: Free Pascal 2.0.4 (FPC 2.1.1 though more risky, also works. It is used for the nighly builds under Linux).
  • Components for your required persistence layer, if it is not included with the compiler. eg: FBLib for FireBird RDMS.

Status: Stable (Tested on Windows and Linux.)

Issues: None

Installation

The Packages

Inside the Source\Compilers\FPC directory there are four packages.

tiOPF
Core units (run-time only package)
tiOPFGUI
GUI related units and components (run-time only package).
tiOPFGUIDsgn
Registers/Installs the components into the Lazarus component palette (design-time only package). The GUI components used under Lazarus are still experimental and under heavy development. It is recommended to get frequent updates from SubVersion if they are going to be used.
tiOPFHelpIntegration
Integrates the fpdoc generated help files into Lazarus's help system (design-time only package)

The Setup

  • Unzip the zip file or check out the source from SubVersion to a location of your choice.
  • Open Lazarus
  • Open the package tiOPF.lpk with Component/Open package file (.lpk) located in the Source\Compilers\FPC directory.
  • Click on Compile
  • Open the tiOPFGUI.lpk package and click Compile

Optional

  • Open the tiOPFGUIDsgn.lpk package and click Compile and then Install (Lazarus should rebuild and restart).
  • Open the tiOPFHelpIntegration.lpk package and click Compile and the Install (Lazarus should rebuild and restart).

NOTE #1
I included the FBLib Firebird Library components as the default persistence layer for Free Pascal in the tiOPF.lpk package. That is the only one I use under Free Pascal/Lazarus. So make sure you have FBLib installed, or you need to remove it from the tiOPF package.

Persistence layers are controlled by a Compiler Directive under Compiler Options -> Other -> Custom Options. eg: LINK_FBL = FBLib components. For more all the available options see the end of the tiOPFManager.pas unit.

NOTE #2
For the Integrated Help to work, Lazarus needs to know how to find the html help files. Please read the tiOPFHelpIntegration.txt file located in \Source\Compilers\FPC for further instructions.

Usage

In Lazarus, open your project and add tiOPF as a Required Package (Project -> Project Inspector -> Add). Include tiObject in your uses clause. You are now ready to create objects descending from TtiObject or TtiObjectList.

See the example projects in the Demos directory for additional examples.