[ 1 ]  [ 2 ]

Session V-RAD

Business-Objects: Endlich RAD ?

Andreas Flohr
INDISoftware GmbH


Einführung

Business-Object ?? Geschäftsobjekte ?? Business-Rules ?? Geschäftsregeln ??

Diese oder ähnliche Begriffe haben Sie sicherlich auch schon häufiger gehört. Doch was versteht man unter diesem Begriff. Der eine spricht bei Business-Objects z. B. von einer Kundenklasse, in der die Eigenschaften und Methoden die Spezifikation des Kunden darstellen. Für andere ist ein Business-Object eine Sammlung von Plausibilitäten und Regeln für ein bestimmtes Objekt.

Was verstehen wir unter Business-Objects ?

Mit den Business-Objects für ClassMaxX kann sehr schnell eine fertige Datenbankanwendung auf der Grundlage von ClassMaxX, im Rahmen eines VFP-Projekt erstellt werden. Es können Prototypen vorgestellt werden, um die Darstellung und Wirkung der Applikation schon im Anfangsstadium zu zeigen und gegebenenfalls zu korrigieren. Eine mitgelieferte Standarddatenbank ermöglicht eine sofort funktionsfähige Applikation, so daß Adress- und Produktverwaltung zum Kinderspiel wird.

Ebenso wie bei der Entwicklung von ClassMaxX war es auch diesmal unser Bestreben, den Entwickler nicht in ein starres Korsett zu zwängen und damit die Flexibilität des Entwicklers einzuschränken, sondern Ein- und Durchblicke in die Business-Objects zu gewähren, um überschauen zu können, was die Business-Objects für Sie tun.

Auf den nachfolgenden Seiten werden wir Ihnen das Grundkonzept der Business-Objects für ClassMaxX darstellen, damit Sie sich einen Eindruck machen können, wie Ihre Anwendungsentwicklung in Zukunft aussehen könnte !!!

Überblick

Die Business-Objects für ClassMaxX bilden eine 2.Generation von Klassen. Diese Komponenten enthalten für eine Menge von Standardtabellen, wie Adressen, Banken, Postleitzahlen, Dokumente usw. bereits fertige Container inkl. der Steuerelemente, einer Mehrsatzanzeige per Combo-,Listbox oder Grid, sowie der Basistabelle mit dem dazugehörigen View.
Sie binden die Tabelle in Ihre Datenbank ein, setzen den Container auf eine Form und Ihr Formular ist fertig und lauffähig, inklusive aller Dialogfunktionalität zum Neuanlegen, Löschen, Speichern u.v.m.!
Jetzt werden Sie sagen, ja aber meine Adresstabelle benötigt noch diese und jene Felder, die sicherlich nicht vorhanden sind. Kein Problem, fügen Sie Ihre Tabelle mit den entsprechenden Feldern der Datenbank hinzu, setzen Sie die zusätzlichen Steuerelemente in die vorgegebene Ableitung des Containers ein, und Sie sind fertig!
Diese Containertechnik bietet einen weiteren Vorteil. Sie können eine nicht unerhebliche Performancesteigerung in komplexen Masken dadurch erreichen, daß Sie die Container zur Laufzeit erst dann laden, wenn sie benötigt werden.
Jeder BO-Container kann "Vater" oder "Kind" sein, d.h. Sie können zwischen den Containern beliebige 1:n:n Beziehungen in beliebiger Verschachtelungstiefe aufbauen und das ohne zusätzlichen Programmieraufwand.
Erstellen Sie sich Ihre eigenen, wiederverwendbaren Komponenten in dem Sie diese aus den Standard BO-Klassen erzeugen.

Voraussetzungen

Bei der Realisierung der Business-Objects für ClassMaxX sind wir von folgenden Voraussetzungen ausgegangen:

Die Business-Objects sollten sich problemlos in den ClassMaxX integrieren.

Aufgrund dieser Kriterien ergab sich ein Ebenenkonzept, das die Klassenbibliotheken aufeinander aufbaut.


Ebenenkonzept

Auf der 1. Ebene unseres Konzeptes befindet sich die ClassMaxX-Grundfunktionalität. Hier befinden sich die ClassMaxX-Klassen und Bibliotheken, die für die Ausführung und Ablauf einer Applikation zuständig sind wie z.B. die Applikationsklasse selbst und deren Unterklassen. In dieser Ebene befinden sich auch die Userklassen der Klassenbibliothek kiUser.vcx.

Auf der 2. Ebene liegen dann die internen Bibliotheken der Business-Objects für ClassMaxX
BizInt.vcx und BizHook.vcx, welche die neuen Funktionalitäten enthalten. dadurch das alle verwendeten Klasssen in diesen Bibliotheken von der Userklassenbibliothek kiuser.vcx erben ist gewährleistet, daß sich Änderungen an den ClassMaxX-Userklassen auch auf die Business-Objects auswirken. In dieser Ebene liegt auch die Userklassenbibliothek Bizobj.vcx.

Diese beiden Ebenen stellen die anwendungsunabhängige Schicht dar. Sie können jetzt auf diesen Ebenen aufbauen und Ihre eigenen, anwendungsunabhängigen oder anwendungsspezifischen Business-Objects Klassenbibliotheken aufbauen. Dabei leiten Sie alle Klassen von der Userklassenbibliothek Bizobj ab. Damit ist auch gewährleistet, daß bei einem Update der Business-Objects ihre eigenen Veränderungen bzw. Erweiterungen nicht verloren gehen.

Ebenenkonzept der Business-Objects

Die Basisklassen der Business-Objects
Es gibt einige Basisklassen der Business-Objects, in denen sich die grundlegende Funktionalität befindet. Diese befinden sich in der Klassenbibliothek bizobj.vcx und werden nachfolgend kurz beschrieben:

Business-Objects Kommunikation

In der nachfolgenden Abbildung ist ein Formular der Klasse frmBO mit zwei BO-Containern und einem BoCntMultiobjekt dargestellt. Der in dieser Abbildung sichtbare Datahandler ist normalerweise nicht sichtbar. Er wird programmatisch in die Form eingefügt. Er ist hier nur zur besseren Übersicht plaziert worden.
Der BoManager des BO-Containers Adressen verweist auf den DataManager des Formulars FrmBo. Der BoManager des Formulares FrmBo verweist ebenfalls auf den DataHandler
Grundlegender Ablauf:

[ 1 ]  [ 2 ]