Home Publikationen Konferenzen Reiseberichte Persönliches Projekte Bücher

Visual Basic 6 - F.A.Q.

Inhalt Seite 1 Seite 2 Seite 3 Seite 4 Seite 5

Was ist OLE, ist COM, ist ActiveX ?

OLE steht fr Object Linking and Embedding. Das war Microsofts Technologie um in Winword Excel Dokumente einzubetten. 1991-1993 hat Microsoft an OLE gearbeitet und die Grundlage fr OLE war  COM. 1995 hat Microsoft COM als Standard festgeschrieben, 1996 folgte DCOM. AcitveX war und ist nur ein Marketingbegriff, damit alles ein bischen fetziger klingt. Letztendlich basiert alles auf COM und ein ActiveX Control ist eine COM-Komponente. ber die Vorteile von Komponenten habe ich ausfhrlich in meiner Diplomarbeit geschrieben. 

Eine COM Komponente ist eine ausfhrbare Datei (Exe oder Dll, OCX ist eine Spezialform einer Dll). Es gibt zwar die Mglichkeit Scriptkomponenten zu schreiben, aber technisch bentigen diese eine echte COM - Dll, damit diese nach auen wie COM Komponten erscheinen. Verschiedene Technologien, die auf COM basieren werden von Microsoft unter ActiveX oder OLE verkauft. So gibt es ActiveX Dokumente, Active Scripting und immer noch OLE. Aber alles basiert auf COM. DCOM ist nach auen nur Rechnerbergreifendes COM. Fr Client und Server ist es "relativ" egal, ob eine Komponente lokal oder ber ein Netzwerk angesprochen wird. Relativ deshalb, weil natrlich das Netzwerk bercksichtigt werden mu. Lokale Zugriffe erfolgen nun einmal viel schneller als remote Zugriffe. ber die Remote Data Services (RDS) ist sogar mglich ber das Internet COM Komponenten zu nutzen.

ActiveX und VB-Script sind unsicher !

ActiveX
It's not a Bug, it's a Feature! Mit diesem Satz verblfft uns Microsoft immer wieder, aber hier trifft er einfach zu. Von Hause aus ist weder ActiveX (COM) noch VB Script ein Sicherheitsproblem. COM - Komponenten ermglichen eine moderne Softwareentwicklung und fr Administratoren stellt VB-Script einen Segen da, da VBS sie endlich von der mittelalterlichen Batch Programmierung erlst.

ABER: Microsoft frdert diese Technologien berall, auch da wo sie nicht hingehren. Vor einigen Jahren sah Microsoft Java Applets noch als Bedrohung an und propagierte den Einsatz von ActiveX Controls. Java Applets laufen aber nur in einer abgeschotteten Umgebung mit sehr eingeschrnkten Rechten (in der Sandbox und selbst da gab es immer wieder Sicherheitslcken).

ActiveX Controls sind technisch gesehen eine ganz normale Windows Dll, die vom Internet Explorer geladen wird und deren Code dann ausgefhrt wird. Sie mssen nicht ber eine sichtbare Oberflche verfgen und sie mssen nicht aus dem Internet herunter geladen werden. Auf jedem Windows System sind gengend mchtige COM Komponenten installiert, mit denen man viel Mist machen kann. So eine COM Komponente, die im Browser luft darf alles was der angemeldete Benutzer darf (unter Win 9x also alles). Lange Rede, kurzer Sinn. Im Internet haben ActiveX Controls nichts zu suchen. Microsoft hat sich da zwar ein bischen was ausgedacht (Singnaturen,...) aber ich mchte einfach nicht, das irgendwelche HTML Seiten Programme auf meinem Rechner ausfhren! Leider besitzt Outlook die Unsitte, E-Mails im HTML-Format darzustellen. Das bedeutet, das allein das Betrachten einer E-Mail im HTML-Format in Outlook Programme auf dem Rechner ausfhren kann. Der Nimda Virus hat sich wohl dieses Feature zu nutze gemacht. Das kann man Microsoft vorwerfen, das sie aus politischen Grnden (Feature geht vor Security) die Anwender unntigerweise Gefahren aussetzen.

Wenn Sie E-Mails formatieren wollen, dann benutzen Sie Rich Text und stellen sie sicher, das der Empfnger das auch lesen kann. 

Tipp:
In Outlook und Outlook Express -> Men Extras -> Optionen -> Karteikarte Sicherheit: die Internet Zone auf Restricted Sites (Eingeschrnkte Seiten) einstellen. Anschlieend die Zonen-Einstellungen ndern, am besten alles was man nicht kennt abschalten. hnlich sollte man fr die Internet Zone vorgehen. Die Seiten, die wirklich bentigt werden (Online Banking, etc.) kann man zur Zone der "Trusted Sites" (Vertraute Seiten) hinzufgen und diese drfen dann das eine oder andere.

VB-Script:
Alles folgende gilt in gleicher Weise fr Java Script und andere Scriptsprachen unter Windows. Scripte knnen in HTML Seiten COM Komponten aktivieren, die potentiell gefhrliche Dinge tun knnen. 

Die zweite Gefahr droht von per Mail versandten Scripten. Werden diese Attachements ausgefhrt, drfen sie alles was der angemeldete Benutzer darf z.B. Outlook fernsteuern und hunderte e-mails versenden. Wie mit jeder Technologie liegen Nutzen und Gefahren dicht beieinander. Die Fernsteuerung von Office und vielen anderen Anwendungen bieten viele Mglichkeiten. Es drfen nur nicht die falschen Scripte eingesetzt werden. Ab Scripting Host 5.6 ist es mglich Scripte selbst mit einer Signatur zu versehen und nur die Ausfhrung signierter Scripte zu gestatten. 

Also generell bei Attachements vorsichtig sein. leider sind auch hier die Standardeinstellungen von Windows nicht sehr hilfreich. Da sind nmlich die Dateierweiterungen vor dem Anwender verborgen. Und Bild.jpg kann in Wirklichkeit Bild.jpg.exe sein. Manchmal werden auch nach dem Dateinamen viele Leerzeichen vor die Dateiendung gehangen, so das man von "Spass                                ...           .vbs" nur Spass sieht.

Also immer speichern und mit einem Texteditor oder ein Bild mit einem Grafikprogramm wie ACD/See ansehen, da kann nix passieren. Microsoft bietet viel Funktionalitt (die auch gewnscht ist) und macht den Gebrauch, aber auch den Mibrauch so leicht wie mglich.

Wann sollte man Visual Basic einsetzen

In den vorangegangenen Fragen bin ich schon zum Teil darauf eingegangen. Wenn Dein einziges Werkzeug ein Hammer ist, dann sehen alle Probleme wie ein Nagel aus. Ich wei leider nicht wer zuerst auf den tollen Spruch gekommen ist, aber ich finde er trifft den Nagel auf den Kopf :-) 

Es gibt "Was"- und "Wie"- orientierte Sprachen. Bei den "Was" orientierten Sprachen kommt es eher auf die Verarbeitung von Informationen an, es spielt keine Rolle ob der Anwender 1 Sekunde oder 3 Sekunden auf eine Antwort warten mu. Viel wichtiger ist Zuverlssigkeit, Erweiterbarkeit und Wartbarkeit, von den Kosten ganz zu schweigen.

Bei den "Wie" - orientierten liegt der Schwerpunkt woanders. Da steht Effizienz, Multithreading, Echtzeitverhalten und anderes im Vordergrund. Wenn dann das "Was" auch noch sehr komplex wird, dann ist der Aufwand enorm.

Bestes Beispiel ist die Stringverarbeitung. Unter VB sehr komfortabel, aber auch sehr langsam, da alle Operationen neuen Speicher fr das Ergebnis anlegen mssen. Man kann aber auch unter VB sehr effiziente Stringverarbeitung programmieren. Mit Byte-Arrays (hnlich den Character-Arrays unter C). Der Code sieht dann zwar grausam aus und man braucht ewig, bis man durchblickt, aber die Geschwindigkeit steigt um den Faktor 10-100.

Wann wrde ich nicht Visual Basic einsetzen ?

Wann wrde ich Visual Basic einsetzen ?

Wann immer es geht, also in allen anderen Fllen. Dabei ist VB nicht nur auf "Bunte Oberflchen" beschrnkt. Informationssysteme und Datenbankanwendungen lassen sich sehr gut mit VB entwickeln. Durch die Vielzahl an verfgbaren COM Komponenten und deren einfache Nutzbarkeit von VB aus kann man innerhalb kurzer Zeit sehr komplexe Anwendungen erstellen. Mit Hilfe der Transaction Services ist eine gute Skalierung der Mittelschicht gegeben.

Der Dr. GUI hat das einmal in einer Columne  sehr schn beschrieben:
Fr eine Webseite wird eine COM Komponente in VB und in VC++ geschrieben. Die VB Komponente kann pro Stunde 100 Benutzeranfragen bedienen, die C++ Komponente kann 600 bedienen. Allerdings dauert die Entwicklung der VC++ Komponente 3 mal lnger als die VB Komponente und 100 Zugriffe pro Stunde sind schon mal eine ganze Menge. Nicht jeder entwickelt ein "amazon.com" und wenn, dann hat man sowieso ganz andere Sorgen, dann mu man sich nmlich um 1.000-10.000 Zugriffe kmmern, Datenbanken replizieren und vieles mehr.

Wer also unbegrenzte Budgets und Zeit (beides ist wichtig, da an einem Projekt nicht unbegrenzt viele Leute arbeiten knnen) zur Verfgung hat sollte seine Applikation am besten in Assembler entwickeln lassen, speziell optimiert fr einen bestimmten Prozessor.

Wer ein Informationssystem braucht und auf das Geld achten mu sollte sich fr VB entscheiden (oder Java, aber keine Sprache bei der ich mich um Bits und Bytes kmmern mu). Die Anzahl der Anwender hngt davon ab, was diese mit der Anwendung machen. Oft stellt dann der Datenbank Server das Problem dar und dann sollte man die Millionen lieber in einen richtigen Datenbankprofi investieren, der es durch geschickte Indizes und Abfragen schafft die dreifache Anzahl an Benutzern zu bedienen.

letzte Aktualisierung: [ ]
e-mail: Marcel Gnoth