AW: ssFrameWork (StahliSoft - FrameWork)
Liste der Anhänge anzeigen (Anzahl: 1)
Ich will nun als nächsten Schritt den Komponenteneditor angehen (ein Formular habe ich schon ;-)).
Man wird dort dann die Metadaten für die BL-Objekte (Klassen, Listen und Eigenschaften) definieren, das Speicherziel (Objektlisten, ORM, DataSet) einstellen und die entsprechenden Units erstellen können. (Falls jemand Erfahrungen damit hat, erzeugte Units direkt in ein Package einzubinden und dies vielleicht sogar zu installieren, wäre er/sie hiermit um Hilfe gebeten.) PS: Irgendwie ist das lustig, dass ich den Komponenteneditor für das Framework jetzt schon mit dem Framework aufbauen kann (bissl wie "Henne und Ei"). ;-) |
AW: ssFrameWork (StahliSoft - FrameWork)
Liste der Anhänge anzeigen (Anzahl: 1)
Etwas OT, aber mal zum Thema RTTI:
Ich habe mal Tests bezüglich Geschwindigkeiten durchgeführt. Die RTTI bremst ganz gewaltig. Wenn man die Funktion sehr häufig nutzt sollte man daher eine Alternative andenken. Anbei ein kleines FMX-Projekt (Sorry, aber auf VCL lässt sich das ja ggf. auch leicht übertragen.) Die Formularunit zeigt die verschiedenen Varianten. Es werden 1Mio Objekte erzeugt und für alle Objkete die Eigenschaft "Value" ausgelesen und neu geschrieben. Hier die Ergebnisse: Zitat:
Im Ergebnis geht das schneller. Mehr Schreibarbeit ist (durch das automatische Erzeugen der Klassen) damit auch nicht verbunden. Das Framework kapselt den Zugriff und kann selbst die schnelle Version wählen wenn die Klasse dafür eingerichtet ist und andernfalls die RTTI nutzen. |
AW: ssFrameWork (StahliSoft - FrameWork)
Zitat:
|
AW: ssFrameWork (StahliSoft - FrameWork)
Alles andere würde wieder einen höheren Verwaltungsaufwand mit sich bringen.
Im Grunde wollte ich auch nur darauf hinweisen, dass (und wie stark) sich die Nutzung der RTTI auf die Geschwindigkeit auswirken kann. |
AW: ssFrameWork (StahliSoft - FrameWork)
Hier mal der aktuelle Stand meiner Gitterkomponente und einige Überlegungen zum weiteren Ausbau...
Video: http://youtu.be/HBq9eSbg_kA Demoanwendung: www.stahlisoft.de/tmp/MyFriends.zip Es läuft noch nicht alles perfekt, aber Funktionsweise und Ziele werden schon ganz gut erkennbar. Der Spalteneditor für das Gitter ist seinerseits mit dem ssFrameWork und dem TssGrid aufgebaut (ich zeige auch kurz, wie einfach die Objekte daran gebunden werden können). Sowohl das Beispielprojekt als auch der Spalteneditor kommen somit quasi ohne Quelltext aus. An der Arbeitsweise der Listbox ist noch nichts weiter geändert. Hier sollen aber auch noch einige Erweiterungen folgen. Da das Gitter und die Listbox nun grundsätzlich so funktionieren wie ich es vorgesehen hatte (natürlich sind künftig noch Erweiterungen und Korrekturen notwendig) werde ich mich nun erst einmal um den Komponenteneditor kümmern, der mir dann anhand von zu definierenden Metadaten die passenden Klassen für die Businesslogik erzeugt... Wenn entsprechendes Interesse besteht lässt sich das auch für die VCL realisieren (und in eingeschränkter Form wohl auch für Delphiversionen < 2010). |
AW: ssFrameWork (StahliSoft - FrameWork)
Liste der Anhänge anzeigen (Anzahl: 2)
Master-Detail-Beziehungen lassen sich auch darstellen:
Das Mastergrid benutzt eine Menge: "ClassList". Das DetailGrid benutzt die Menge "ClassPropertyList" der aktuell selektierten "Class". Die Zuweisung erfolgt so: .ClassList[].ClassPropertyList Grundsätzlich ließen sich auch mehrere Cursor auf eine Menge zuordnen. Das könnte dann so aussehen: .ClassList[100].ClassPropertyList .ClassList[CursorCustomer].ClassPropertyList .ClassList[Cursor2].ClassPropertyList |
AW: ssFrameWork (StahliSoft - FrameWork)
25 min kostenfreie Unterhaltung: http://youtu.be/BIQgb5-mWu0 ;-)
Ich erstelle nun mal ein neues kleines Demoprojekt mit vollständiger Unterstützung des Frameworks. Auch wenn noch nicht alles fertig umgesetzt ist wird doch ersichtlich, welche Arbeitsweise das Framework ermöglicht. Wenn die Entwicklung in der Form weiter läuft (oder mit Unterstützung sogar schneller und besser) wird das vielleicht wirklich so, ich mir das schon immer gewünscht habe... :) |
AW: ssFrameWork (StahliSoft - FrameWork)
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal die Combobox etwas verändert, so dass sie sich besser in mein Framework einfügt (optisch und funktionell).
Im Grundsatz passt das schon ganz gut, aber ein paar Dinge werde ich mit der Zeit noch ausbauen. Ich rufe ein eigenes Formular auf, das bei MouseLeave wieder geschlossen wird und Einträge ggf. scrollt. Die Anordnung der Einträge ist voll in der Hand des Programmierers. Insofern kann man beliebige Änderungen und Erweiterungen vornehmen. Man muss es ja nicht genau so regeln, aber die FMX-native Lösung ist einfach mal... :-( Youtube spinnt etwas, aber das Hochladen hat zumindest funktioniert: http://youtu.be/LjS96oquwS8 (2 Min) |
AW: ssFrameWork (StahliSoft - FrameWork)
Hier mal die nächsten Schritte: http://youtu.be/XW5MnL45Nyo (10 min )
Die Zellen sind jetzt immer komplett vom gleichen Typ. Sie enthalten also nicht mehr eingesetzte Comboboxen oder Checkboxen sondern ändern lediglich je nach Vorgabe ihre Erscheinung und Verhaltensweise. Entsprechend lassen sich beliebige weitere Zellentypen erstellen und verwenden. Mein Problem ist noch der Umgang mit den Styles unter FMX. Das ist irgendwie zu verwirrend und vor allem auf Grund diverser Fehler und Probleme nicht wirklich benutzbar. Bisher kommt die GUI nahezu ohne Quellcode aus. Die Füllung der Listen mit Einträgen kann direkt in den Businessklassen "vordefiniert" werden. Als nächstes will ich dem Gitter die Möglichkeit bieten, die Zellen dynamisch zu formatieren. Wenn in meinem Beispiel in der Spalte "NativeType=ntString" eingetragen wäre, müssten die Zellen MinValue und MaxValue für die Zeile ausgeblendet und dafür aber "MaxLength" und "UpperLower" eingeblendet werden. Im Falle von ntBoolean müsste "DefaultValue" als Checkboxzelle dargestellt werden. Das muss dann natürlich über einen Ereignishändler in der GUI erfolgen. Mein Ziel ist aber, die GUI so weit wie möglich ohne Quelltext auskommen zu lassen. Entsprechend soll das Framework den größten Teil der Vermittlungsarbeit übernehmen. |
AW: ssFrameWork (StahliSoft - FrameWork)
Liste der Anhänge anzeigen (Anzahl: 5)
Der ORM flutscht nun grundsätzlich auch (ist natürlich noch einiges zu tun)...
Im Beispiel lese ich 33.000 Datensätze ein, erzeuge zwei Objekttypen und eine Verbindungstabelle und brauche dafür im Moment 27 Minuten. Das scheint mir schon ganz ok. Ein Datensatzwechsel im Gitter braucht 1/2 Sekunde (da alle Datencontrols neu gezeichnet und wenn vorhanden mit neuen Daten befüllt werden). Es rennt also nicht, ist aber m.E. flüssig genug. Einiges kann man sicher auch noch optimieren. Das Formular benötigt absolut keinen Quelltext (OnCreate wäre verzichtbar). Ansonsten habe ich nur zwei Units, in denen ich in zwei Funktionen die Businesslogik implementieren musste. Den Rest erzeugt der Klassenexperte und die Datenbindung regelt das Framework. "StrasseHausNr" ist eine berechnete Eigenschaft des Objektes TGrundstueck und kann im Gitter mit dargestellt werden. Die Datenbank-Tabellen müssen derzeit noch von Hand angelegt werden (passend zu den Klassenstrukturen). Bestenfalls sollte das Framework diese Definitionen/Änderungen später natürlich selbst mit vornehmen. Die letzten Tage war ich etwas gebremst aber jetzt bin ich doch wieder optimistisch. :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz