Lektion 2: Erlernen der Entwicklungsumgebung

Autodesk Support

31. März 2023


Überblick über mein erstes AutoCAD-Plugin > Lektion 1 > Lektion 2 > Lektion 3 > Lektion 4 > Lektion 5 > Lektion 6 > Lektion 7 > Lektion 8

In der vorherigen Lektion haben Sie gesehen, wie Sie die Produktivität in AutoCAD durch die Implementierung eines Plug-Ins steigern können, das aus einer kleinen Menge von Visual Basic .NET-Code erstellt wurde.

.NET (oder .NET Framework) ist eine von Microsoft entwickelte Technologie, die Programmierern das Erstellen und Erweitern von Softwareanwendungen ermöglicht. Ein Programmierer kann .NET Framework verwenden, um eine neue Softwareanwendung von Grund auf zu erstellen, um die Kommunikation oder Interoperabilität zwischen zwei Softwareanwendungen zu implementieren oder um eine Softwareanwendung durch die Implementierung eines Plugins dafür zu erweitern (wie Sie es hier für AutoCAD tun). Wenn Sie mehr erfahren möchten, finden Sie weitere Informationen im Abschnitt Zusätzliche Themen.

Sie werden nun genauer betrachten, was passiert ist, als Sie den Code in der vorherigen Lektion erstellt und ausgeführt haben.

Feedback geben: Geben Sie uns Feedback zu dieser AutoCAD-Schulung oder zu dieser Lektion über email:%00a0myfirstplugin@autodesk.com

Was bedeutet es, Code zu "erstellen"?

Der in Lektion 1 in die Visual Studio Community eingegebene Code bestand aus einer Reihe von für den Benutzer lesbaren Anweisungen (Quellcode), die in Code konvertiert werden mussten, der vom Computer verstanden und ausgeführt werden konnte. Der von Ihnen durchgeführte Build hat genau das getan: Der resultierende ausführbare Code wurde in eine DLL (Dynamic Link Library) aufgenommen, die in AutoCAD geladen werden kann.

Die folgende Abbildung zeigt die Ausgabe in DLL-Form zusammen mit der zugehörigen Debugdatenbank (die zusätzliche Informationen bei der Fehlerbehebung für die DLL bereitstellt), die Sie in Lektion 1 mit Visual Studio Community erstellt haben. Der Pfad, in dem die DLL kompiliert wird, wird in den Projekteinstellungen von Visual Studio Community festgelegt und vorgabemäßig auf den Unterordner bin\Release oder bin\Debug des Projektordners von Visual Studio Community festgelegt (je nachdem, ob Sie eine Release- oder Debug-Version Ihrer DLL erstellen - darüber sprechen wir später).

Auswählen einer Programmiersprache und eines Entwicklungswerkzeugs

Genau wie Menschen verschiedene Sprachen für die Kommunikation verwenden, stehen Ihnen beim Erstellen eines AutoCAD-Plugins verschiedene Sprachoptionen zur Verfügung: Für die Zwecke dieses Handbuchs haben wir uns für Visual Basic .NET entschieden, eine starke allgemeine Programmiersprache. Visual Basic .NET ist besonders bei Programmierhandbüchern beliebt, da die Sprachsyntax leichter lesbar ist als viele andere Sprachen (z. B. C# oder C++).

Es gibt eine Reihe von Tools für die Entwicklung von Visual Basic .NET-Code. Sie reichen von Open Source-Tools wie SharpDevelop und MonoDevelop bis hin zu Microsofts innovativem, professionellem Entwicklungstool Visual Studio. In diesem Lernprogramm wird davon ausgegangen, dass Sie Visual Studio Community, eine kostenlose Version von Visual Studio zum Erstellen von Visual Basic .NET-Anwendungen, verwenden.

Visual Studio Community ist eine integrierte Entwicklungsumgebung (IDE), da sie aus verschiedenen Werkzeugen, Menüs und Werkzeugkästen besteht, die die Erstellung und Verwaltung von Code erleichtern.

Das Projektsystem in der Visual Studio Community besteht aus Projektmappen- und Projektdateien sowie aus Projektartikeln, d. h. den einzelnen Dateien, die zu Projekten gehören. Eine Projektmappe ist ein Container für ein oder mehrere Projekte. Jedes Projekt kann wiederum als Container für Projektelemente betrachtet werden - wie Quelldateien, Symbole usw. - von denen die meisten in die resultierende ausführbare Datei (EXE oder DLL) kompiliert werden. Visual Studio Community stellt einen Projektmappen-Explorer bereit, in dem der Inhalt der geladenen Projektmappe in einer Strukturansicht organisiert und angezeigt wird:

Die Visual Studio Community-Schnittstelle enthält außerdem einen Texteditor und einen Schnittstellendesigner. Diese werden abhängig vom Typ der bearbeiteten Datei im Hauptfenster angezeigt. Im Texteditor geben Sie den Visual Basic .NET-Code für Ihr AutoCAD-Plugin ein. Dieser Editor bietet erweiterte Funktionen wie IntelliSense und ausblendbare Codeabschnitte sowie klassische Textbearbeitungsfunktionen wie Lesezeichen und die Anzeige von Zeilennummern.

IntelliSense ist ein äußerst nützliches Feature der Visual Studio-Familie, das die Produktivität der Programmierer erheblich verbessert: Es werden automatisch Vorschläge für den Code basierend auf den verfügbaren Objekten und den eingegebenen Buchstaben erstellt. Sie haben IntelliSense bereits bei der Arbeit gesehen, wenn Sie den Code in Lektion 1 eingegeben haben. Dies ist einer der Gründe, warum wir nicht vorgeschlagen haben, dass Sie kopieren und einfügen.

Eines der wichtigsten Features von Visual Studio Community ist eindeutig die Fähigkeit, Visual Basic .NET-Code in eine ausführbare Datei zu integrieren. Während des Buildvorgangs führt der Sprachkompilierer verschiedene Überprüfungen und Analysen des Codes durch. Eine dieser Überprüfungen besteht darin, sicherzustellen, dass der Code den syntaktischen Regeln der Visual Basic .NET-Sprache entspricht. Der Compiler führt außerdem verschiedene weitere Prüfungen durch, z. B. ob eine Variable entsprechend definiert wurde oder nicht. Erkannte Fehler werden über das Fenster Fehlerliste gemeldet, das sich in der Regel unten im Hauptfenster befindet. Wenn Sie einen Fehler bei der Eingabe des Codes in Lektion 1 gemacht haben, ist dies möglicherweise bereits beim Erstellen des Plugins zu sehen.

 Überprüfen der Verwendung von Visual Studio Community

In diesem Abschnitt werden die Schritte beschrieben, die in der vorherigen Lektion mit Visual Studio Community ausgeführt wurden. Wir werden sie jedoch in den Kontext dessen stellen, was Sie gerade über das Programmieren im Allgemeinen und das Erstellen von Code gelernt haben.

1. Im ersten Schritt haben Sie einfach die Visual Studio-Community gestartet. 

2. Anschließend haben Sie ein neues Visual Basic .NET-Projekt vom Typ AutoCAD-Plugin erstellt. Diese Projektvorlage wurde hinzugefügt, als Sie die AutoCAD .NET-Assistenten installiert haben.

Da die für dieses Handbuch verwendete Entwicklungssprache Visual Basic .NET ist, arbeiten Sie in der Visual Studio Community mit Visual Basic. Daher wird Visual Basic im Abschnitt Installierte Vorlagen des Dialogfelds Neues Projekt angezeigt. Die AutoCAD-Plugin-Vorlage ist im Wesentlichen eine Klassenbibliotheks-Vorlage, allerdings mit einigen zusätzlichen Einstellungen.

Im mittleren Abschnitt dieses Dialogfelds haben Sie verschiedene Typen von Anwendungen gesehen, die erstellt werden können. Sie wählen die Vorlage entsprechend dem Anwendungstyp aus, den Sie erstellen möchten.

Der Name, den Sie unten im Dialogfeld eingegeben haben, wird verwendet, um das Projekt in der Lösung zu identifizieren.

3. Das leere Projekt wurde erstellt und enthält einige Standardprojektverweise auf die .NET-Kernkomponenten sowie Verweise auf die drei Dateien, die die AutoCAD-API definieren (AcCoreMgd.dll, AcMgd.dll und AcDbMgd.dll). Das Projekt enthält außerdem zwei Visual Basic .NET-Klassendateien (MyCommands.vb und MyPlugin.vb - Sie haben möglicherweise die Datei MyPlugin.vb aus dem Projekt gelöscht, da sie für dieses Lernprogramm nicht benötigt wird). Diese Dateien enthielten einige einfache Code-Dateien für die Standardkodierung. Wenn Sie im Projektmappen-Explorer auf eine dieser Dateien klicken, wird der darin enthaltene Code im Texteditorfenster angezeigt.

4. Sie haben im Abschnitt Referenzen der Projekteinstellungen für "My Project" überprüft, ob AcCoreMgd.dll, AcDbMgd.dll und AcMgd.dll korrekt referenziert wurden (Anmerkung: AcCoreMdg.dll stammt von AutoCAD 2013 und höher).


5. Beim Speichern der Lösung wurden physische Dateien erstellt, die den Inhalt Ihres Projekts auf der Festplatte des Computers darstellen. Sie können die Lösung zu einem späteren Zeitpunkt öffnen und bearbeiten. Sie haben das Projekt geschlossen und erneut geöffnet, um sicherzustellen, dass die Projektdateien von Visual Studio Community korrekt analysiert wurden.

6. AcCoreMgd.dll, AcMgd.dll und AcDbMgd.dll enthalten Definitionen der AutoCAD-APIs, die Sie am häufigsten in Ihren Plugins verwenden. Sie werden diese Dateien in Ihren AutoCAD-Plugin-Projekten immer referenzieren. Manchmal referenzieren Sie auch andere.

  • AcMgd.dll enthält die APIs zum Steuern der AutoCAD-Anwendung selbst, also zum Definieren von benutzerdefinierten Befehlen zum Öffnen und Schließen von Dokumenten, Plotten usw.
  • AcDbMgd.dll enthält die APIs zum Erstellen, Bearbeiten oder Abfragen des Inhalts einer DWG-Datei.
  • In AutoCAD 2013 wurden die APIs in AcMdg.dll zwischen AcMgd.dll und AcCoreMgd.dll aufgeteilt. AcCoreMgd.dll enthält APIs für die AutoCAD-Anwendungsanmeldung (z. B. Auswahlsatz, Befehle und Schlüsselwörter), und AcMgd.dll enthält APIs für die Benutzeroberfläche (z. B. Dialogfelder).

Beim Erstellen Ihres AutoCAD-Plugin-Projekts waren diese im Dialogfeld Konfigurator des AutoCAD .NET-Assistenten vorgabemäßig ausgewählt (Sie können sie nicht deaktivieren). Es gab Optionen zum Einschließen anderer API-Definitionsdateien, die ignoriert wurden.

7. Als Nächstes haben Sie Visual Basic .NET-Code mit der AutoCAD-API in Ihr Projekt eingefügt. Mit anderen Worten: Sie stellen AutoCAD Anweisungen bereit, wie das Verhalten eines Blockattributs beim Drehen geändert werden kann.

Während der Entwicklung von Code ist es empfehlenswert, die Lösung von Zeit zu Zeit zu erstellen, um zu überprüfen, ob Fehler im Code eingeführt wurden. Der Code muss beim Erstellen der Lösung nicht unbedingt vollständig oder funktionsfähig sein. Auf diese Weise können Sie nach der Fertigstellung des Codes möglicherweise langwierige Fehlerbehebungsmaßnahmen vermeiden. Außerdem können bearbeitete Quelldateien vor dem Beginn des Builds automatisch gespeichert werden.

Um eine Lösung in der Visual Studio Community zu erstellen, wählen Sie Lösung erstellen aus dem Pulldown-Menü Erstellen.

Wenn der Buildvorgang erfolgreich war, wird der Status Build erfolgreich in der linken unteren Ecke des Anwendungsrahmens der Visual Studio Community angezeigt. Wenn im Code ein Fehler aufgetreten ist, zeigt Visual Studio Community eine Fehlerliste mit einer Erläuterung der gefundenen Fehler an. Außerdem wird der Fehler in Ihrem Code in Blau unterstrichen. Hier sehen Sie ein Beispiel, in dem wir absichtlich einen Fehler in den Code eingegeben haben, den Sie in Lektion 1 eingegeben haben:

In dieser Lektion haben Sie sich kurz mit den Vorgängen beim Erstellen eines Projekts sowie mit Hintergrundinformationen zu Visual Basic .NET und Visual Studio Community befasst. Sie haben die Schritte durchgearbeitet, die Sie in der vorherigen Lektion zum Erstellen des grundlegenden AutoCAD-Plugins durchgeführt haben, und es in den Kontext des Programmiererfahrenen gestellt.

Zusätzliche Themen

Vergleich Visual Studio Community und Visual Studio Professional
In diesem Handbuch verwenden Sie die Visual Studio Community. Dies ist eine kostenlose Version von Visual Studio und daher ein hervorragendes Tool, um sich mit dem Programm vertraut zu machen. Microsoft hat die Community-Editionen von Visual Studio für Studenten, Hobbyanwender und andere Teilzeitprogrammierer entwickelt. Obwohl die meisten Features von Visual Studio Professional, z. B. IntelliSense, verfügbar sind, gelten gewisse Einschränkungen. Beispielsweise enthält sie weniger Projektvorlagen und verfügt nur über eingeschränkte Optionen zum Debuggen und zur Fehlerbehebung für den Code. Wenn Sie die Plugin-Entwicklung über diesen einführenden Leitfaden hinaus ernsthaft erwähnen und insbesondere mit der Entwicklung kommerzieller Plugins beginnen möchten, empfehlen wir, in eines der umfassenderen Elemente der Visual Studio-Produktfamilie zu investieren.

* Es gibt mehrere "Professional"-Versionen von Visual Studio. Weitere Informationen finden Sie auf der Microsoft Visual Studio-Website.

Was ist .NET?
Im Rest dieser Lektion wird ein bisschen Fachjargon verwendet. Machen Sie sich keine Sorgen, wenn Sie beim ersten Lesen nicht alles verstehen. Es wird besser, wenn Sie sich mit .NET vertraut gemacht haben, nachdem Sie einige Ihrer eigenen Plug-ins geschrieben haben.

.NET Framework ist ein Software-Framework, das auf dem Microsoft® Windows®-Betriebssystem* basiert und die zugrunde liegende Plattform, Bibliotheken und Dienste für alle .NET-Anwendungen bereitstellt. Die Services umfassen Speicherverwaltung, Garbage Collection, Typensystem für allgemeine Anwendungen, Klassenbibliotheken usw.

* Teilsätze von .NET sind auch auf anderen Betriebssystemen verfügbar, unabhängig davon, ob es sich um das Open Source-Projekt Mono oder Microsoft® Silverlight® handelt. Diese Themen werden in diesem Handbuch jedoch nicht behandelt. Sie konzentrieren sich ausschließlich auf die Verwendung von .NET unter Microsoft Windows.

Was enthält .NET Framework?
Das Rahmenkonzept besteht aus zwei Hauptkomponenten:

1. Common Language Runtime (CLR): Dies ist der Agent (oder das Ausführungsmodul) in .NET Framework, der für die Verwaltung der Codeausführung verantwortlich ist. Aus diesem Grund wird Code, der für diese Laufzeit geschrieben wird, auch als verwalteter Code bezeichnet. Der gesamte verwaltete Code wird unter der Aufsicht der CLR ausgeführt, aber was bedeutet das? Die CLR verwaltet Code, indem sie Kerndienste wie Speicherverwaltung (die automatische Freigabe des Arbeitsspeichers des Computers für die Wiederverwendung bei anderen Aufgaben, wenn er nicht mehr benötigt wird), Fehlerbehandlung (oder Ausnahmebehandlung), Verwaltung der Verwendung mehrerer Ausführungsthreads und die Einhaltung von Regeln für die Verwendung verschiedener Objekttypen bereitstellt. Die CLR bildet die Grundlage von .NET Framework. 

2. .NET Framework Class Library - Wie der Name schon sagt, ist dies eine Bibliothek oder Sammlung von Objekttypen, die aus Ihrem eigenen Code bei der Entwicklung von .NET-Anwendungen verwendet werden können. Diese .NET-Anwendungen sind für Windows (ob auf Eingabeaufforderungen basierend oder mit einer grafischen Benutzeroberfläche), das Internet oder mobile Geräte ausgelegt. Diese Bibliothek steht für alle Sprachen zur Verfügung, die .NET Framework verwenden.

Wie bereits erwähnt, verbessert die CLR die Codestabilität, indem sichergestellt wird, dass der ausführende Code einem CTS (Common Type System) entspricht. Der CTS stellt sicher, dass alle .NET-Codes (oder verwalteten Codes) unabhängig von der Sprache einen ähnlichen Satz von Objekttypen verwenden und in derselben Umgebung zusammenarbeiten können. Diese Funktion ermöglicht es Ihnen, Anwendungen in der gewünschten Entwicklungssprache zu schreiben und gleichzeitig von Programmierern, die andere .NET-Sprachen verwenden, geschriebene Komponenten/Code zu verwenden.

Erstellen von ausführbaren Dateien
Wenn Sie den Code in eine EXE-Datei integriert haben, wurde er mithilfe des sprachspezifischen Compilers in Code der Common Intermediate Language (CIL, auch MSIL genannt) kompiliert. CIL ist ein CPU-unabhängiger Anweisungssatz, der von der CLR unter Windows-Betriebssystemen ausgeführt werden kann. CIL ist in der Regel zwischen 32- und 64-Bit-Systemen und sogar - in gewissem Maße - auch mit Nicht-Windows-Betriebssystemen übertragbar. Der aus dem VB-Quellcode generierte CIL-Code wurde dann in einer .NET-Assembly zusammengefasst. Eine solche Baugruppe ist eine Bibliothek von CIL-Code, die im PE-Format (Portable Executable) gespeichert ist (enthält sowohl CIL als auch die zugehörigen Metadaten). Baugruppen können entweder Prozessbaugruppen (EXEs) oder Bibliotheksbaugruppen (DLLs) sein.

Im Verlauf dieses Handbuchs konzentrieren Sie sich auf die Entwicklung eines bestimmten AutoCAD-Plugin-Typs: einer Process Assembly (EXE), die mit AutoCAD kommuniziert. Aufgrund des mit ihrer Entwicklung verbundenen Overhead müssen Sie sich nicht mit AutoCAD-Zusatzmodulen befassen. Dabei handelt es sich in der Regel um Bibliotheksbaugruppen (DLLs), die in den Arbeitsspeicher von AutoCAD geladen und dort ausgeführt werden. Ein Grund dafür, dass die Implementierung einer EXE-Datei für die Arbeit mit AutoCAD einfacher ist als die Entwicklung eines Zusatzmoduls, ist die Benutzeroberfläche: Ausführbare Dateien müssen nicht nahtlos in die AutoCAD-Benutzeroberfläche integriert werden, indem (beispielsweise) Schaltflächen auf der Multifunktionsleiste hinzugefügt werden.

Ausführen von ausführbaren Dateien

Während der Ausführung einer .NET-Assembly wird CIL (in der Assembly) durch den JIT-Compiler (Just-in-Time) der CLR übergeben, um systemeigenen Code (oder Maschinencode) zu generieren. Die JIT-Kompilierung von CIL in nativen Code erfolgt, wenn die Anwendung ausgeführt wird. Da nicht der gesamte Code während der Ausführung erforderlich ist, konvertiert der JIT-Compiler CIL nur bei Bedarf, wodurch Zeit und Speicherplatz eingespart werden. Außerdem speichert sie generierten Code im Speicher und ist damit für die spätere Verwendung verfügbar, ohne dass eine Neukompilierung erforderlich ist.

Im letzten Schritt dieses Prozesses wird der native Code vom Prozessor des Computers ausgeführt.

Weitere Informationen zum Erstellen von .NET-Anwendungen finden Sie in der MSDN Library.

Überblick über mein erstes AutoCAD-Plugin > Lektion 1 > Lektion 2 > Lektion 3 > Lektion 4 > Lektion 5 > Lektion 6 > Lektion 7 > Lektion 8



Waren diese Informationen hilfreich?


Benötigen Sie Hilfe? Fragen Sie den Autodesk-Assistenten!

Der Assistent hilft Ihnen dabei, Antworten zu finden oder einen Mitarbeiter zu kontaktieren.


Welche Supportstufe haben Sie?

Verschiedene Abonnementverträge bieten unterschiedliche Supportkategorien. Finden Sie heraus, welche Supportstufe Ihr Vertrag unterstützt.

Supportstufen anzeigen