Discussion:
vbRichClient auf activeVB
(zu alt für eine Antwort)
Wolfgang Wolf
2015-06-07 15:25:07 UTC
Permalink
Hallo,

<Werbung in eigener Sache>
wer sich mit dem vbRichClient noch gar nicht oder nur wenig beschäftigt
hat, findet auf activeVB eine Artikelserie zum Thema. Die fehlende Doku
zum vbRichClient ist des öfteren ein Thema, deshalb trage ich meine
eigenen Erkenntnisse dort zusammen. Vielleicht inspiriert das jemandem
hier und er (sie) macht es mir nach oder beteiligt sich in irgendeiner
anderen Form. Wäre nett...

Hier die Links zu den Texten:

vbRichClient5, eine Zukunftsperspektive für VB-Entwickler?
http://www.activevb.de/rubriken/kolumne/kol_40/vbrichclient5.html

vbRichClient installieren und Visual Basic einrichten
http://www.activevb.de/rubriken/kolumne/kol_41/rc5install.html

Cairo-Fenster mit vbRichClient erzeugen
http://www.activevb.de/rubriken/kolumne/kol_42/hellocairo.html

Schönen Gruß
W. Wolf
Wolfgang Wolf
2015-06-26 18:32:31 UTC
Permalink
Hallo,

es gibt inzwischen eine weitere Ausgabe:

Eingabemasken mit vbRichClient erstellen
http://www.activevb.de/rubriken/kolumne/kol_43/eingabemasken.html


Schönen Gruß
W. Wolf
Lothar Geyer
2015-06-27 04:10:21 UTC
Permalink
Guten Morgen Wolfgang,
Post by Wolfgang Wolf
Eingabemasken mit vbRichClient erstellen
http://www.activevb.de/rubriken/kolumne/kol_43/eingabemasken.html
leider fehlt etwas, was für uns sehr wichtig wäre:
ein Tool, das uns 520 Forms eines Projektes automatisch auf RC umstellt.
Oder ist so etwas auch verfügbar?

Lothar Geyer
Wolfgang Wolf
2015-06-27 08:18:53 UTC
Permalink
Hallo Lothar
Post by Lothar Geyer
ein Tool, das uns 520 Forms eines Projektes automatisch auf RC umstellt.
Oder ist so etwas auch verfügbar?
Das brauchst du nicht. Das bräuchtest du nur bei einer Umstellung nach
.Net oder irgendeine andere Sprache. RC5 Projekte laufen weiter in der
VB-IDE. Das hat zur Folge, dass du eine "sanfte Migration" angehen
kannst. Die 520 Forms kannst du nach und nach migrieren, ohne dass dein
Projekt als Ganzes stockt.

Du kannst nicht erwarten, dass per Knopfdruck alles konvertiert wird.
Das wirst du wohl nirgends finden. Immerhin haben VB-Entwickler, sofern
sie ernsthaft bei ihrer Entwicklungsumgebung bleiben wollen, mit RC5
eine Perspektive - die beste mir bekannte, seit der VB-Abkündigung durch
Microsoft. Aber wir müssen auch was tun, wir müssen raus aus unserer
Schreck-Starre, sollten das Jammern aufhören und ein bisschen wieder
nach vorne schauen. Hätte Olaf, sagen wir mal nur 5-10 engagierte
Mitstreiter, die bereit wären sich am RC5 zu beteiligen, würde da
ordentlich was weitergehen. In unseren Reihen traue ich das einigen zu.

Selbst das von dir geforderte Tool wäre machbar. Anfangs nur für
einfache mit VB-Controls bestückte Formen, später vielleicht auch
komplexere Formen, sofern Ersatz-Widgets (Steuerelemente) verfügbar sind.

Schönen Gruß
W. Wolf
Dieter Strassner
2015-08-01 15:59:21 UTC
Permalink
... Hätte Olaf, sagen wir mal nur 5-10 engagierte
Mitstreiter, die bereit wären sich am RC5 zu beteiligen, würde da
ordentlich was weitergehen. In unseren Reihen traue ich das einigen zu.
... einer liest hier mit :-)
--
Viele Grüße - Dieter

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz
Wolfgang Wolf
2015-08-02 05:26:00 UTC
Permalink
... Hätte Olaf, sagen wir mal nur 5-10 engagierte
Mitstreiter, die bereit wären sich am RC5 zu beteiligen, würde da
ordentlich was weitergehen. In unseren Reihen traue ich das einigen zu.
.... einer liest hier mit :-)
Freu mich! Zeig doch mal ein bisschen was du schon alles kannst ;-)
Ist ja kein Geheimnis, dass der RC5 unter der fehlenden Doku leidet.
Somit wäre Input unsererseits aus dieser Richtung auch schon hilfreich.
Muss ja nicht gleich ein druckreifer Artikel sein, ein paar zusätzliche
Beispiele aus dem eigenem Code sind doch auch schon hilfreich.

Schönen Gruß
W.Wolf
Dieter Strassner
2015-08-03 20:23:18 UTC
Permalink
Post by Wolfgang Wolf
Freu mich! Zeig doch mal ein bisschen was du schon alles kannst ;-)
Ist ja kein Geheimnis, dass der RC5 unter der fehlenden Doku leidet.
Somit wäre Input unsererseits aus dieser Richtung auch schon hilfreich.
Muss ja nicht gleich ein druckreifer Artikel sein, ein paar zusätzliche
Beispiele aus dem eigenem Code sind doch auch schon hilfreich.
Ich schau mal demnächst was ich so umbauen kann, das es auch in einem
kleinen Projekt läuft. Kann aber ein paar Tage dauern.
--
Viele Grüße - Dieter

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz
Wolfgang Wolf
2015-08-04 19:04:38 UTC
Permalink
Post by Dieter Strassner
Post by Wolfgang Wolf
Freu mich! Zeig doch mal ein bisschen was du schon alles kannst ;-)
Ist ja kein Geheimnis, dass der RC5 unter der fehlenden Doku leidet.
Somit wäre Input unsererseits aus dieser Richtung auch schon hilfreich.
Muss ja nicht gleich ein druckreifer Artikel sein, ein paar zusätzliche
Beispiele aus dem eigenem Code sind doch auch schon hilfreich.
Ich schau mal demnächst was ich so umbauen kann, das es auch in einem
kleinen Projekt läuft. Kann aber ein paar Tage dauern.
Hallo Dieter,

das klingt gut. Wir können warten. VB-Entwickler sind eh sehr geduldige
Menschen... :-)

Schönen Gruß

W. Wolf
Dieter Strassner
2015-08-07 13:21:02 UTC
Permalink
Post by Wolfgang Wolf
das klingt gut. Wir können warten. VB-Entwickler sind eh sehr geduldige
Menschen... :-)
... nun is' genug gewartet. :-)

Mein Beispiel zum RPC-Server zeigt in einer sehr, sehr einfachen Weise
das Funktionsprinzip des RPC-Servers auf.

Voraussetzung: Die vbRichCient5.dll muß bereits registriert sein.


Um das Beispiel zum Laufen zu bringen, bitte so vorgehen:

1.Den Link klicken http://seminar-eins5.de/Downloads/SimpleRPC.zip und
die ZIP entpacken (der Link ist min. bis Jahresende verfügbar).

2.Im Unterverzeichnis ..\RPCDLLs\ das DLL-Projekt öffnen und
compilieren (Ziel = eigener Projektordner). Projekt schliessen.

3. EXE-Projekt im Hauptverzeichnis \SimpleRPC\ öffnen und starten.

4. Testen

5. Hier in der NG Fragen stellen, sofern etwas dazu unverständlich
bleibt. Werde zwecks Antwort nach passenden Worten ringen ;-)


TIPP: Werden beide Projekte in einer Projektgruppe betrieben, kann
sogar "durchgesteppt" werden.

______


Was der RPC-Server kann, möchte ich kurz an einem Beispiel aus unserem
Projekt SEMINAR Eins.5 (Software zur Seminarorganisation) beschreiben,
dort setzen wir den RPC-Server seit vielen Jahren ein:

Das Projekt ist in 3 Schichten aufgebaut:

UI Userinterface (Läuft am Client PC)
OM Objectmodel (Läuft am Client PC)
Bl Businesslogic (Läuft über den RPC-Server entkoppelt auf dem Server)

Die UI-Schicht kennt keine Datenbank und keine BL. Sie kommuniziert NUR
mit dem OM.

Das OM hat die Aufgabe die Daten und Funktionen bereitszustellen und
dient auch als Cache. Nur diese Schicht kennt die BL und kommunziert
mittels vbRichClient5 mit der BL.

Die BL führt alle Geschäftsvorfälle aus (z.B. Daten lesen, speichern,
Rechnung erstellen, Adresse löschen, etc.). Nur diese Schicht kennt die
tatsächliche DB. Die BL-Schicht sollte einen "kurzen Draht" zum
SQL-Server haben.

____


Funktionsweise am Beispiel "Fakturierung" erklärt:

Der Benutzer klickt auf [Rechnung].

Der Auftrag wird von der UI in das OM durchgereicht. Von dort in die BL.
In der BL wird die Fakturierung durchgeführt (Lesen von allen möglichen
Tabellen: Adresse, Artikelpositionen, Land, Steuersatz, etc, etc).
Dann Rückmeldung der erstellten Rechnung durch die BL an das OM.
OM meldet dies an das UI. Im UI wird dann visualisiert.

Was hier erstmal umständlich klingt (wg. des Schichtenmodells), ist das
durchreichen der Werte, das betrifft nicht direkt den RPC-Server. Das
Schichtenmodell hilft, auch größere Projekte vernünftig zu warten und
weiter zu entwickeln.

Der RPC bringt im o.g. Beispiel folgenden Vorteil:
Die BL muß jede Menge Daten einlesen (da stateless!), um eine Rechnung
zu erzeugen (bei uns ca. 35-50 verschiedenen Zugriffe, je nach
Variante). Diese Zugriffe erfolgen hier alle auf kurzem Dienstweg (da
Serverbetrieb). Ansonsten würden die BL auf dem Client laufen und das
Netz durch die vielen Zugriffe zusätzlich belasten.

Das Argument: "Aber unter CITRIX ist das eh hinfällig" höre ich jetzt
schon, darauf meine Anwtort: Isses nicht, den je mehr Prozesslast auf
den Citrixservern liegt, desto "undynamsicher" reagieren diese. Auch
hier bringt der Einsatz des RPC-Server den Vorteil, das eine bessere
Lastverteilung stattfinden kann.
--
Viele Grüße - Dieter

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz
Wolfgang Wolf
2015-08-07 13:29:19 UTC
Permalink
Post by Wolfgang Wolf
das klingt gut. Wir können warten. VB-Entwickler sind eh sehr geduldige
Menschen... :-)
.... nun is' genug gewartet. :-)
Mein Beispiel zum RPC-Server zeigt in einer sehr, sehr einfachen Weise
das Funktionsprinzip des RPC-Servers auf.
Danke! Werde ich mir bald intensiv ansehen!

Schönen Gruß
W. Wolf
Wolfgang Wolf
2015-08-08 12:03:23 UTC
Permalink
Post by Dieter Strassner
5. Hier in der NG Fragen stellen, sofern etwas dazu unverständlich
bleibt. Werde zwecks Antwort nach passenden Worten ringen ;-)
Fehlt da nicht noch was oder habe nur ich was übersehen? Die DLL soll
später auf dem Server liegen, richtig? Wer instantiiert die
cServerClass? Welcher Prozess lauscht am Server auf Port 22222?

Gruß
W. Wolf
Dieter Strassner
2015-08-10 14:17:34 UTC
Permalink
Post by Wolfgang Wolf
Post by Dieter Strassner
5. Hier in der NG Fragen stellen, sofern etwas dazu unverständlich
bleibt. Werde zwecks Antwort nach passenden Worten ringen ;-)
Fehlt da nicht noch was oder habe nur ich was übersehen? Die DLL soll
später auf dem Server liegen, richtig? Wer instantiiert die
cServerClass? Welcher Prozess lauscht am Server auf Port 22222?
Gruß
W. Wolf
Hallo Wolfgang,
Post by Wolfgang Wolf
Fehlt da nicht noch was oder habe nur ich was übersehen? Die DLL soll
später auf dem Server liegen, richtig? Wer instantiiert die
cServerClass? Welcher Prozess lauscht am Server auf Port 22222?
Ja und nein: Für die, die sich rantasten möchten wollte ich es sehr
einfach halten. Für die, die es genau wissen wollen, ist es zu einfach.

Meine neue Lösung:

Das SimpleRPC-Project erhielt eine DebugMode-Checkbox (mit gesetztem
Wert) und arbeitet wie im meinem Posting beschrieben in einfachster Weise.

Für dich und andere, die es genauer verstehen möchten:
Es gibt nun ZUSÄTZLICH das Projekt "ServerRPC" (gleicher DownloadLink
http://seminar-eins5.de/Downloads/SimpleRPC.zip ) und gleicher Folder
wie das Client-Projekt.

Dieses Projekt öffnen und kompilieren. Ziel ist wieder der eigene
Projektordner. Die EXE oder das VBP-Projekt starten.

Danach das SimpleRPC-Projekt (=Clientseite) starten und das Häkchen
"Debug-Mode" enfernen. Jetzt ist der Prozess tatsächlich entkoppelt. Es
könnte nun auch auf einer anderen Maschine laufen (IP anpassen!).
Wichtig dabei: Die ServerRPC.EXE benötigt zur Laufzeit das
Unterverzeichnis "\RPCDLLs" dort muß die zu ladende DLL zu finden sein.

Das Server.exe-Projekt bildet in der Echtanwendung später den Kern eines
WindowsService.

Zur Steuerung des RPC-Service haben wir in unserem Projekt ein
"RPC-ServiceController.exe" gebaut.
Bild: Loading Image...
Mit diesem kann der Dienst gestartet/gestoppt werden und die momentane
Last abgelesen werden.
--
Viele Grüße - Dieter

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz
Wolfgang Wolf
2015-08-10 14:48:16 UTC
Permalink
Post by Dieter Strassner
Ja und nein: Für die, die sich rantasten möchten wollte ich es sehr
einfach halten. Für die, die es genau wissen wollen, ist es zu einfach.
Ok, so sieht die Sache schon "runder" aus.
Post by Dieter Strassner
Das Server.exe-Projekt bildet in der Echtanwendung später den Kern eines
WindowsService.
Nehme an, dass dafür der vbRichClient auch was bietet, oder?
Post by Dieter Strassner
Zur Steuerung des RPC-Service haben wir in unserem Projekt ein
"RPC-ServiceController.exe" gebaut.
... der wie mit dem Service kommuniziert? Nehme an, er ist auch nur ein
RPC-Client, der halt andere Schnittstellen anspricht.
Post by Dieter Strassner
Bild: http://seminar-eins5.de/Downloads/ServiceController.png
Mit diesem kann der Dienst gestartet/gestoppt werden und die momentane
Last abgelesen werden.
Übersichtlich, auf das Nötige reduziert, kein Schnick-Schnack, ergo:
Sieht gut aus!

Schönen Gruß
W. Wolf
Dieter Strassner
2015-08-10 15:19:19 UTC
Permalink
Hallo Wolfgang,
Post by Wolfgang Wolf
Post by Dieter Strassner
Das Server.exe-Projekt bildet in der Echtanwendung später den Kern eines
WindowsService.
Nehme an, dass dafür der vbRichClient auch was bietet, oder?
Wüßte nicht. Den WindowsService haben wir ursprünglich mal von einer
"russischen-Lösung" abgeleitet:
'**************************************************
'* NT Service module *
'* © 2000-2001 Sergey Merzlikin *
'* http://www.smsoft.ru/en/ntservice.htm *
'* e-mail: ***@chat.ru *
'**************************************************
Post by Wolfgang Wolf
Post by Dieter Strassner
Zur Steuerung des RPC-Service haben wir in unserem Projekt ein
"RPC-ServiceController.exe" gebaut.
... der wie mit dem Service kommuniziert? Nehme an, er ist auch nur ein
RPC-Client, der halt andere Schnittstellen anspricht.
Ja, mit Set Cnn = New_C.RPCConnection eine Connection geben lassen und
per Timer das Statusobjekt Cnn.GetServerStatus auslesen und anzeigen.
--
Viele Grüße - Dieter

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz
Loading...