Ann: dhRichClient3-Toolset

02/03/2009 - 18:29 von Schmidt | Report spam
Ok,
zur Abwechslung mal wieder was "handfestes"
(und nicht nur "Gequatsche") ;-)

Die neue Version 3 ist jetzt rund, die Binàrkompatibilitàt
ist eingeschaltet, die "Featuritis" somit erstmal beendet. <g>

Version3 ist (trotz Bruch der Binàrkompatibilitàt mit
dem Vorgànger) dennoch calling-kompatibel auf
dem Class-Level.
Also ein Update bestehenden Codes dürfte sich
auf ein Einhàngen der neuen Projekt-Referenz
beschrànken. Die Version làsst sich jedoch auch
parallel zur alten Version installieren (registrieren)
und betreiben, die zwei Haupt-Dlls haben deshalb
neue Namen und kommen jetzt als:
dhRichClient3.dll (Projektreferenz jetzt dhRichClient3)
und
sqlite36_engine.dll
DirectCOM.dll hat keine Änderungen erfahren und
ist weiter wie bisher im Paket enthalten.

Die wesentlichste Neuerung gegenüber der àlteren
Version 2.3. dürfte der neue Threading-Support sein,
aber auch bei den SQLite-Wrapperklassen hat sich
einiges getan - die neue sqlite-engine (3.6.11)
unterstützt jetzt Nested-Transactions über sogenannte
"Named-SavePoints", die jetzt innerhalb der
Cnn.BeginTrans/CommitTrans/RollBackTrans-
Methoden über entsprechende optionale Parameter
abgebildet sind und angesprochen werden können.
Mit cSelectCommand ist ein neues CommandObjekt
für die "Leserichtung" dazugekommen und beide
CommandObject-Typen unterstützen jetzt auch
die Command-Persistierung innerhalb der DB.

Die neue cCollection-Klasse ist calling-kompatibel zur
VB-Collection und arbeitet mit wesentlich besserer
Performance.
Die GDI-Klassen wurden erweitert (cDDB) und
verbessert (neu in cDIB is beispielsweise (Alpha-)
Icon-Loading auch von ByteArrays bzw. IconResourcen
inkl. des korrekten Renderings) - erweiterter Alpha-
Blending-Support, sowohl in cDIB als auch cDDB.

Ansonsten viel Feintuning im Variant-Serialisierer,
der jetzt auch von der neuen Threading-Unterstützung
benutzt wird und nicht mehr nur vom "DCOM-Ersatz"
innerhalb der RPC-Klassen - Recordset-Selects wurden
ebenfalls beschleunigt (ca. 10%) - und natürlich die
üblichen Bugfixes (vor allem in der SQLite-encryption -
aber teilweise auch in den SQL-internen VB-Funktionen
wie z.B. Instr() oder auch Format$() bei bestimmten
Parametern u. Stringgrößen) - cSortedDictionary
verschluckt sich jetzt auch nicht mehr an einem übergebenen
vbNullString als "Key" - inkorrektes (lokales) Sortieren in
SQLite-Recordsets bei nested Sorts mit Tiefen >3 ,
so die Art Bugs halt.

Bitte die Readmes lesen - die Einrichtung auf einer
Entwickler-Maschine sollte jetzt etwas einfacher handhabbar
sein - bei den Demos versuche ich jetzt auch eine
einfachere Herangehensweise (jeder Demo-Ordner soll
für sich funktionieren - also die etwas "komplexere", sich
gegenseitig bedingende Ordner-Struktur wie in den alten
Demos will ich künftig vermeiden).

Derzeit ist nur eine Demo "im neuen Format" enthalten,
die demonstriert zunàchst mal den neuen Threading-
Support, der dem was man von AX-Exen her so
gewohnt ist, recht nahe kommt (die Threadklassen
benötigen jedenfalls keine Helper-Objekte und
innerhalb dieser Klassen geraiste, normale VB-Events
werden ebenfalls unterstützt und asynchron zum
hostenden "Client-MainThread" transportiert.
Genau wie bei AX-Exen kann man auch Prozess-
übergreifend auf in "ThreadCreator-Prozessen" gehostete
ThreadObjekte zugreifen, multiple Clients werden
hierbei unterstützt, also auch Singleton-Szenarios sind
so möglich (alles regfree versteht sich). Support für
synchrone und asynchrone Calls (àhnlich CallByName).

Lasst mich wissen, wenn irgendwo noch was "klemmt",
das Toolset und die Demos sind ab jetzt separiert -
hier jedenfalls die Links:
www.datenhaus.de/Downloads/dhRichClient3.zip
www.datenhaus.de/Downloads/dhRichClient3-Demo.zip
Und wie gesagt, bitte die Readmes lesen (auch wenn
die erstmal "in englisch" sind).

Olaf
 

Lesen sie die antworten

#1 Ulrich Korndoerfer
03/03/2009 - 02:29 | Warnen spam
Hallo Olaf,

Schmidt schrieb:

...
Die neue Version 3 ist jetzt rund, die Binàrkompatibilitàt
ist eingeschaltet, die "Featuritis" somit erstmal beendet. <g>




Was mir so auf die Schnelle aufgefallen ist:

cAttributes und cElements haben jeweils nur eine Property Count. Wie
kommt man dann an die Attribute und Elemente?

Die Funktionsweise von cSimpleSax ist mir nicht klar. Normalerweise ist
ein SAX-XMLParser einer, der stàndig Events für die gerade gefundenen
Vorgànge wirft (Element geöffnet, geschlossen etc). cSimpleSax hat aber
keine Events. Nun könnte es ja sein, daß Du dies über ein Interface
realisiert hast. Ein iSimpleSax sehe ich aber auch nicht. Bleibt nur
noch der Verdacht, daß der Empfànger eine Klasse sein muß, die
cSimpleSax implementiert. Das ist zwar prinzipiell ok, aber zumindest
unschön. Ein iSimpleSax wàre da schon angebrachter. Und evtl. für auf
die Schnelle parsen die entsprechenden Events in cSimpleSax und eine
Flagproperty, die angibt, ob die Events geraised werden sollen oder die
Methoden des Interfaces einer übergebenen Klasse benutzt werden sollen.

Desweiteren finde ich in den Graphikklassen keine Methode StretchBlit,
oder gibt es das nicht?

Ulrich Korndoerfer

VB tips, helpers, solutions -> http://www.proSource.de/Downloads/

Ähnliche fragen