Was ist besser VBA oder VB.NET?

Diese Frage lässt sich einfach betrachtet sehr leicht beantworten. bei einfachen Makros reicht VBA bei komplexeren ist in der Regel die .Net-Umgebung die bessere Wahl.

Die VBA-Umgebung ist in der Regel für den "normalen" Anwender und kleinere Makroaufnahmen völlig ausreichend. Hier können sicherlich auch deutlich komplexere Dinge abgehandelt werden, allerdings verliert man schnell die Übersicht und viele Möglichkeiten bleiben einem verwehrt. Vor Allem die Fehlerbehandlung ist doch sehr aufwendig und eher dürftig als wirklich effizient.

Die .Net-Umgebung bietet einem alles, was möglich ist bzw. via API abgegriffen werden kann. Was ebenfalls bedeutet, dass ich hier nicht nur CATIA, sondern auch z.B. SmarTeam- oder SAP-Funktionalitäten innerhalb eines Programmes abgreifen und miteinander verarbeiten kann. Hierbei gibt es eigentlich kaum Beschränkungen. 

Die vb.Net Applikation läuft in einem eigenen Thread und wird somit unabhängig von CATIA behandelt. Wenn gleich die Vorteile diesbezüglich deutlich überwiegen, möchte ich trotzdem auch den größten Nachteil erwähnen, denn die Performance leidet darunter etwas. Somit ergibt sich, dass Programme im CATIA Stack unter vba immer etwas schneller laufen werden. Dies kann in der Regel vernachlässigt werden, kann bei sehr vielen einzelnen Abfragen aber durchaus entscheidend sein. Einer der größten Vorteile ist allerdings, dass das Makro "abstürzen" kann, ohne dass CATIA davon betroffen ist.

Weitere Vorteile der .Net-Umgebung ist, dass der Anwender den Programmcode nicht einfach verändern kann, denn im Gegensatz zum VBA ist eine Exe eben schon kompiliert und somit nicht mehr einfach auslesbar und schon gar nicht veränderbar.

Ich persönlich würde keinerlei Makros mehr innerhalb der VBA-Umgebung erzeugen, denn die Möglichkeiten im .Net sind einfach viel besser.

VBA:

+ schnellere Verarbeitung

+ einfache Abwicklung

+ kein manuelles hinzufügen fremder Libraries notwendig

+ Aufnahme kann direkt angewendet werden

- Stark begrenzte Möglichkeiten

- Schlechte Fehlerbehandlung

- schlechte Übersicht

VB.NET

+ fast unbegrenzte Möglichkeiten

+ Kombination verschiedenster Software via API

+ umfassende Möglichkeiten zur Erstellung einer GUI

+ autarkes Programm

+ Versionierungsmöglichkeiten

+ umfassendere Fehlerbehandlung

+ Programm ist schon kompiliert und damit für Änderungen gesperrt

+ deutlich bessere Debuggingmöglichkeiten

- Libraries müssen entsprechend der Objekte gesucht und geladen werden

- keine direkte Makroaufnahme möglich

 

Ich werde versuchen die Liste der Vor- und Nachteile weiter zu vervollständigen. Für den Zugriff auf CATIA via .Net gibt es einen eigenen Beitrag.

Zum Seitenanfang