[ 1 ] [ 2 ]
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 !!!
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.
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.
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.
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:
1. FrmBo: Diese Formularklasse ist die Basisklasse für alle BO-Formulare, d. h jedes Formular, welches mit den Business-Objects arbeitet, muß mindestens von dieser Klasse oder einer vererbten Klasse dieser Klasse abgeleitet sein. Diese Klasse enthält immer einen Datahandler und einen BOManager für die Form und ist gleichzeitig selbst ein BO-Container.
2. BOCnt: Diese Containerklasse ist die Basisklasse für alle visuellen Steuerelemente eines Business-Objects. Jedes neue Business-Object muß von dieser Klasse oder einer vererbten Klasse dieser Klasse abgeleitet sein. Diese Klasse enthält immer einen BOManager.
3. DataHandler: Die Datahandler-Klasse enthält die Funktionalität der Dialogmethoden wie New(), Save(), Delete() usw. und ist verantwortlich für die Gesamtkommunikation zwischen den einzelnen Klassen. Diese Klasse wird jedem Formular, welches mit den Business-Objects arbeitet, automatisch hinzugefügt. Der Datahandler ist die Steuerungsklasse für alle auf einem Formular vorhandenen Business-Objects.
4. BoManager: Die BOManager-Klasse ist die Steuerungsklasse für einen BOContainer. Sie ist in jedem Business-Object automatisch vorhanden und übernimmt die Kommunikation zwischen BoContainer und Datahandler.
5. BOCntMulti: Diese Klasse ist die Basisklasse für eine Mehrsatzanzeige in einem Business-Object. Sie stellt die grundlegende Funktionalität für die Mehrsatzanzeige zur Verfügung. Diese Klasse arbeitet mit dem BoManager zusammen. Weiterhin sind bereits fertige, abgeleitete Klassen für eine Listbox (BoCntMultiLst), ein Grid (BoCntMultiGrd) und eine Combobox (BoCntMultiCbo) vorhanden.
6. CmdBO: Diese Klasse ist die Basisklasse für alle Commandbuttons, welche sich auf einem BO-Container befinden können. Diese Klasse enthält die Kommunikation mit dem BoManager. In der Klassenbibliothek bizobj.vcx befindet sich eine Vielzahl von bereits fertigen Buttons, die alle auf dieser Klasse basieren.
7. BoData: Die BoData-Klasse ist das Verbindungselement zwischen ClassMaxX und den Business-Objects. Diese Klasse muß in den Applicationscontaienr gezogen werden und instanziiert sich dann automatisch während des Programmstartes.
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 ]