AFX++ von DS-Datasoft

Moderator: Moderatoren

Antworten
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

AFX++ von DS-Datasoft

Beitrag von Martin Altmann »

Folgendes kam gerade per Mail von Alaska - ich denke mal es ist auch für andere interessant und Dieter wird sicherlich auch noch was dazu schreiben:

Ab sofort ist AFX++ das neue AddOn Programmierwerkzeug für Xbase++ erhältlich.

Was ist AFX++ ?

Mit AFX++ lassen sich Applikationen aufbauen, deren Verhalten und Aussehen über externe Steuerdateien (Textdateien) bestimmt wird. Diese Steuerdateien können zur Laufzeit geändert werden, ohne das neu compiliert werden muß.
Dies bedeutet, daß Änderungen bzw. Anpassungen in den Steuerdateien direkt vor Ort beim Kunden zur Laufzeit gemacht werden können, bzw. nur die modifizierten Steuerdateien zum Kunden gegeben werden müssen.

Weiterhin kann die Verarbeitungslogik von der Bedieneroberfläche getrennt werden und somit lassen sich verschiedene Kundenvarianten leicht pflegen. Verarbeitungslogiken/Validierungen können aber auch in der Steuerdatei definiert werden.

In den Steuerdateien können alle Klassen und Funktionen aus Xbase++/XClass++ oder anderen mitgelinkten Libraries benutzt werden. Die Schreibweise entspricht der Codierung von Xbase++. Ferner werden Codeblöcke, iif() und IF/ELSEIF/ELSE/ENDIF Bedingungen unterstützt und auch die Definition von Variablen und deren Belegen und Abfragen.

Alle Datenbanken von Xbase++/XClass++/(ADSClass++) können benutzt werden, somit auch SQL-Datenbanken. Jede Steuerdatei beschreibt einen Dialog (Fenster). In der Steuerdatei werden das Menü, Toolbar, Statusbar, Dialog, Tabpages und alle Controls in Aussehen, Verhalten und Position definiert. Weiterhin werden darin die Tabellen zugeordnet und evtl. Scopes/Filter und Abfragen definiert.

Im Prinzip wird eine Steuerdatei wie PRG-Code geschrieben und zur Laufzeit interpretiert.

AFX++ kann von der Homepage www.ds-datasoft.de als voll benutzbare Trialversion heruntergeladen werden.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Martin,

ich glaube das haben wohl alle bekommen. In meinem Postfach war die Mail auch.

Mir stellt sich da nur die Frage: Was für einen praktischen Sinn hat so ein Tool?

Jan
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jan,
es gibt ja auch einige, die hier nur so lesen und nicht bei Alaska im Verteiler hängen - darum hatte ich das mal gepostet (zumal Dieter dies sowieso vorhatte...)
Ich durfte mir das Tool auf der letzten DevCon anschauen (bwz. bekam es vorgeführt).
Es ist in erster Linie dafür da, die Fensterlayouts und das handling "von außen" zu modifizieren/verwalten.
Der Kunde will eine Änderung (z.B. die Reihenfolge der Felder anders angeordnet oder ein Feld zusätzlich in der Maske, oder eine gewisse Abhängigkeit (wenn Nachname angegeben ist, muss auch eine Adresse angegeben werden)) - diese Änderung kann dann ohne neu-kompilieren umgesetzt werden. Beim Kunden vor Ort oder auch zu Hause (der Kunde muss dann nur eine Datei austauschen).
Ich hatte damals noch angeregt, bereits bestehenden Code mittels eines Konverters in AFX++-Code konvertieren zu lassen - ob Dieter und Marcus das noch gemacht haben, weiß ich leider nicht.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Jan.
Was für einen praktischen Sinn hat so ein Tool?
Deine Applikation wäre weitgehend data-driven, ihr Verhalten könnte also Kundenanforderungen angepaßt werden, ohne den Code ändern zu müssen, im Zweifelsfall sogar vor Ort, möglicherweise sogar durch den Kunden selbst. Das schafft Flexibilität und verkürzt Antwortzyklen bei Änderungswünschen. Es hat allerdings gelegentlich den Nachteil, daß ein Support-Department wie der Ochs vorm Tor steht, weil die bei Kunden laufenden Applikationen so unterschiedlich sind, daß es keine allgemeinen Antworten auf Fragen mehr gibt.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

... und jeder Texteditor reicht um die Anwendung zu ruinieren ;-) ...

Aber es kommt halt immer darauf an, was einem wichtiger ist.
Ich ziehe es vor, dass meine EXE unerschütterlich (na hoffentlich hört das jetzt kein Virenschreiber 8) ) tut, was ich einprogrommiert habe.

Andere haben eventuell andere Probleme und können es brauchen.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

stimmt, Parameterdateien, wie z.B. damals die Win.ini waren/sind echt prima, aber leider können sie mit jedem Texteditor verändert werden. Und ich möchte den Kunden/User sehen, der die Finger davon läßt......

Und dann kläre später mal ab, wer denn nun wo dran war und herumgedoktert hat.

So toll diese Technik sicherlich ist....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Rolf
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 258
Registriert: Do, 27. Apr 2006 12:28
Wohnort: Görlitz

Beitrag von Rolf »

Hi
Martin Altmann hat geschrieben:es gibt ja auch einige, die hier nur so lesen und nicht bei Alaska im Verteiler hängen - darum hatte ich das mal gepostet
Danke Martin das trift auf mich zu. :)

Wann wird diese Strukturdatei interpretiert, wenn ich den Dialog einbinde oder beim Start des Programms?

Wird die Exe dadurch kleiner oder muss der Dialog vorher reincompiliert bzw. bekannt gegeben werden?

Grüße Rolf
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Beitrag von Tom »

Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Rolf,
ergänzend zu Toms Hinweis: Ich selber nutze AFX++ nicht und habe keine eigenen Erfahrungen damit.
Reincompiliert werden muss es nicht - die gesamte Definition liegt außerhalb in der entsprechenden Datei.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Beitrag von Tom »

Ich gehe mal davon aus, daß AFX zwei der großen Stärken "unserer" Sprache nutzt, nämlich den Makro-Compiler und den Präprozessor. Diese Systematiken erlauben es, nahezu sämtlichen Xbase-Code auch zur Laufzeit zu erzeugen und zu "compilen". Ich nutze derlei auch für "data-driven"-Ansätze, etwa bei einem sehr umfassenden Präferenzen-System, das sich vollständig - inclusive der Objekterzeugung - aus Daten speist, und bei einem Menüsystem, das dieserart von außen veränderbar ist. Wer Roger Donnays eXPress++ besitzt, verfügt mit "DC_Dot" über ein Laufzeitsystem, das die Interpretation komplexer Ausdrücke zuläßt:

Bild
Herzlich,
Tom
Dieter Stelzner
UDF-Programmierer
UDF-Programmierer
Beiträge: 72
Registriert: Fr, 09. Jun 2006 13:31
Wohnort: Friesenried
Danksagung erhalten: 5 Mal
Kontaktdaten:

AFX++

Beitrag von Dieter Stelzner »

Hallo,
mit der nächsten Version von AFX++ wird es auch eine Verschlüsselung der Steuerdateien geben, so das der Kunde diese nicht einfach ändern kann.
Der Vorteil bleibt aber nach wie vor, das nur eine Steuerdatei ausgetauscht werden muß.

Was bei der Diskussion noch gar nicht beachtet wurde, ist, das der Code für dei Verarbeitungslogik und für das Erscheinungsbild getrennt werden kann.
Die Verarbeitungslogik kann z.B. hartcodiert im exe sein, während alles andere über die Steuerdatei gemacht wird.

Eine weitere Sache über die ich für die Zukunft nachdenke ist, wenn AFX++ in der Lage wäre, eigene Funktionen in Steuerdateien zu verstehen, mit Parameterübergabe etc. wäre für eine Endapplikation kein Xbase Compiler nötig, d.h. der Xbase Compiler ist nur für den Kernel notwendig, nach außen
ist AFX++ eigenständig. Dies hätte zur Folge, das auch Benutzerkreise angesprochen werden können, die mit Xbase nichts am Hut haben.

Viel Spaß beim ausprobieren!
Dieter

DS-Datsoft GmbH & Co.KG
Antworten