Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Umsetzung einer VB6-ActivX-Schnittstelle in C#

8 views
Skip to first unread message

Frank Lenz

unread,
Jul 16, 2011, 5:45:44 AM7/16/11
to
Hallo, ich habe mehrere VB6 Anwendungen, die über eine
ActivX-Schnittstelle miteinander kommunizieren.
Beispiel:
With New Merker
.UrlEmpfang DateiZiel, s
t = .Holen
End With
Diese Anwendungen möchte ich nun in C# übertragen, und suche nach einem
Ersatz für die Schnittstelle. Mir fällt nur eine UDP-Verbindung ein.
Welche anderen Möglichkeiten gäbe es noch, und nach welchen Begriffen
sollte ich suchen?
Vielen Dank für jeden Hinweis.
--
Frank

Peter Fleischer

unread,
Jul 16, 2011, 1:12:36 PM7/16/11
to
Hi Frank,
im Framework werden unterschiedliche Klassen zur Kommunikation angeboten,
z.B. Remoting, TCPIIP, Named Pipes, EMails, MSMQ. �ber die Methoden in WCF
k�nenn diese unterschiedlichen Technologien in einer universellen
Zugriffstechnik genutzt werden. Welche dieser Technologien am besten
geeignet ist, h�ngt von den konkreten Einsatzbedingungen ab. Wenn beide
Programme auf dem gleichen Rechner arbeiten, eignet sich sehr gut Named
Pipes. Ein VB.NET-Beispiel dazu findest Du auf meiner Homepage unter

<Tipps und Tricks - informtools - Tipp 355>
http://www.informtools.de/kb.aspx?id=355

Eine �bersetzung in C# d�rfte f�r einen ehemaligen VB-Programmierer bestimmt
nicht schwierig sein.

--
Viele Gruesse
Peter

Frank Lenz

unread,
Jul 19, 2011, 11:03:31 AM7/19/11
to
Hallo Peter,
vielen Dank für die Hilfe.
> angeboten, z.B. Remoting, TCPIIP, Named Pipes, EMails, MSMQ. Über die
> Methoden in WCF könenn diese unterschiedlichen Technologien in einer

> universellen Zugriffstechnik genutzt werden. Welche dieser Technologien
> am besten geeignet ist, hängt von den konkreten Einsatzbedingungen ab.

> Wenn beide Programme auf dem gleichen Rechner arbeiten, eignet sich sehr
> gut Named Pipes. Ein VB.NET-Beispiel dazu findest Du auf meiner Homepage

Ich hab mir Dein Beispiel angesehen, und bin jetzt dabei mich in die
anderen von Dir erwähnten Methoden einzuarbeiten.
Soweit ich es bisher verstanden habe, ist allen diesen Methoden
gemeinsam, dass "Senden" und "Empfangen" nicht wie bei der
ActivX-Schnittstelle mit
s = .Holen
zusammengefasst werden kann.
Die sicherste Umsetzung scheinen mir die "Named Pipes" zu sein.

> Eine Übersetzung in C# dürfte für einen ehemaligen VB-Programmierer
Von wegen ehemalig, in VB6 oder VBA programmiere ich immer noch, und bin
Lurker in d.c.l.vbclassic.

--
Frank

Manchmal antworte ich mit Verzögerung, da ich keinen direkten
Internetzugang habe sondern mit Stick und PortableThunderbird auf
Fremdrechnern.

Peter Fleischer

unread,
Jul 19, 2011, 4:16:13 PM7/19/11
to
Hi Krank,

> Von wegen ehemalig, in VB6 oder VBA programmiere ich immer noch, und bin
> Lurker in d.c.l.vbclassic.

Dann ist unklar, warum Du eine verständliche Sprache mit Zeilenschaltung
gegen diese kryptischen Klammern und Semikolons eingetauscht hast : -)

--
Viele Gruesse
Peter

Frank Lenz

unread,
Jul 23, 2011, 6:33:02 AM7/23/11
to
Hallo Peter,

On 19.07.11 22:16, Peter Fleischer wrote:
> Hi Krank,
hoffentlich nicht, oder doch?

> Dann ist unklar, warum Du eine verständliche Sprache mit Zeilenschaltung
> gegen diese kryptischen Klammern und Semikolons eingetauscht hast : -)

naja, C# ist ja noch recht verständlich, C++ dagegen schon richtig tough.
--
Frank

Manchmal antworte ich mit Verzögerung, da ich keinen direkten
Internetzugang habe sondern mit Stick und PortableThunderbird auf

Fremdrechnern ins Netz gehe.

Peter Fleischer

unread,
Jul 23, 2011, 9:05:09 AM7/23/11
to
Hi Frank,
das ist natürlich eine eigenartige Antwort, den Umstieg von VB zu C# damit
zu begründen, dass C++ weniger verständlich ist. Mir erschließt sich eine
derartige Begründung nicht.

--
Viele Gruesse
Peter

Ingo Moch

unread,
Jul 23, 2011, 12:26:56 PM7/23/11
to
Hallo Peter,

Peter Fleischer wrote:

> das ist natürlich eine eigenartige Antwort, den Umstieg
> von VB zu C# damit zu begründen, dass C++ weniger
> verständlich ist. Mir erschließt sich eine derartige
> Begründung nicht.

Wenn ich mal in die Verlegenheit kommen sollte, mit .net
etwas machen zu wollen/muessen, wuerde ich mich auch eher
fuer C# entscheiden. In VB.net sieht es aus wie VB.classic,
ist dann aber doch anders. Da faellt es mir leichter,
gleich ein gaenzlich neues Konzept zu lernen.

JM2C
Ingo

Peter Fleischer

unread,
Jul 23, 2011, 2:51:45 PM7/23/11
to
Hi Ingo,
da ich meine Laufbahn mit ALGOL 60 begann , dann PL/1, weiter Fortran,
Cobol, BASIC, Modula 2 und schließlich Visual Basic genutzt habe, ist für
mich die Programmiersprache den Möglichkeiten der Laufzeitumgebung
untergeordnet. Wichtig bei der Programmiersprache ist für mich eine einfache
Lesbarkeit des Programmablaufes, wenn ich mal viel später darauf
zurückgreifen muss. Bei C# habe ich da meine Probleme, die Scopes schnell
mal ohne IDE richtig zuzuordnen, da eine geschweifte Klammer bezüglich der
VB-Syntax sehr viele Bedeutungen haben kann. Mit VB habe ich da weniger
Probleme und kann auch mal ohne IDE mit einem einfachen Texteditor einfach
einen Programmcode lesen. Auch bietet das Visual Studio von Haus aus eine
aus meiner Sicht bessere Unterstützung bei VB für RAD als bei C#. Nimm
beispielsweise eine If-Anweisung. In C# wird mit Snippets und Tab-Tab zwar
schnell ein Scope eingefügt, man muss dann aber aufwändiger nachbearbeiten
als bei VB, wo man ohne Snippets mit einem einfachen Enter das Ziel
erreicht. Auch gibt es in der IDE für VB viele weitere Vereinfachungen, die
mir eine höhere Produktivität als bei C# ermöglichen. Beispiele kann man
noch viele weitere bringen, wie z.B. "Dim x As New Klasse", was so in C#
(noch) nicht möglich ist, oder die Ereignisbehandlung für eine Variable
(Handles-Schlüsselwort), Groß-/Kleinschreibung usw.

Da ich einen Teil meiner Projekte auch in C# realisiere (in Zusammenarbeit
mit von Anderen in C# erstellten Projektteilen), kann ich ein Problem mit
gleichem Ergebnis sowohl in VB als auch in C# zu lösen und mir ein Urteil
erlauben. Ich habe aber auch schon viele C#-Programmierer erlebt, die VB
nicht kennen und dann natürlich große Probleme haben, VB-Code richtig zu
verstehen.

Bei der ganzen Diskussion sollte man aber berücksichtigen, dass nach meiner
Erfahrung die Kenntnis der Sprachsyntax nur ca. 2-3 % der für
.Net-Programmierung erforderlichen Kenntnisse ausmacht. Die restlichen 97 %
sind Kenntnisse zum Framework und der CLR. Und Framework und CLR sind für
beide Sprachen identisch.

Meine Erfahrungen als Dozent zu C#.NET und VB.NET zeigen mir, dass es
erfahrenen VB6-Programmierern sehr leicht fällt, VB.NET zu verstehen, da sie
sich von Anfang an nicht mit der mit C# bedingten neuen Sprachsyntax
anfreunden müssen, sondern sich sofort auf Framework und CLR konzentrieren
können. Die VB6-Programmierer in meinen C#-Grundlagenlehrgängen empfinden es
immer sehr angenehm, wenn ich ihnen anhand der VB-Syntax die C#-Syntax
erkläre.

--
Viele Gruesse
Peter

0 new messages