Lezione 2: Conoscenza dell'ambiente di sviluppo

Autodesk Support

31 marzo 2023


Panoramica del primo plug-in AutoCAD> Lezione 1 >> Lezione 2 > Lezione 3 >> Lezione 4 >> Lezione 5 > Lezione 6 > Lezione 7 > Lezione 8

Nella lezione precedente, è stato illustrato come aumentare la produttività in AutoCAD implementando un plug-in creato con una piccola quantità di codice .NET di Visual Basic.

.NET (o .NET Framework) è una tecnologia creata da Microsoft che consente ai programmatori di creare ed estendere applicazioni software. Un programmatore può utilizzare .NET Framework per creare una nuova applicazione software da zero, per implementare la comunicazione o l'interoperabilità tra due applicazioni software o per estendere un'applicazione software implementando un plug-in per tale applicazione (come si fa qui per AutoCAD). Se si desidera ulteriori informazioni, è possibile trovare informazioni nella sezione Argomenti aggiuntivi.

Ora esamineremo più da vicino gli eventi che si sono verificati durante la creazione e l'esecuzione del codice nella lezione precedente.

Fornire commenti: inviare commenti su questa formazione su AutoCAD o su questa lezione all'indirizzo email:%00a0myfirstplugin@autodesk.com

Che cosa significa "costruire" il codice?

Il codice immesso in Visual Studio Community nella Lezione 1 era un insieme di istruzioni leggibili dall'utente (codice sorgente) che dovevano essere convertite in codice che poteva essere compreso ed eseguito dal computer. La "build" eseguita è stata eseguita in questo modo: ha incluso il codice eseguibile risultante in una DLL (Dynamic-Link Library) che può essere caricata in AutoCAD.

La seguente schermata mostra l'output in formato DLL insieme al database di debug del programma associato (che fornisce informazioni aggiuntive per la risoluzione dei problemi della DLL) creato utilizzando Visual Studio Community nella Lezione 1. Il percorso in cui viene compilata la DLL è specificato nelle impostazioni del progetto della comunità di Visual Studio ed è impostato per default sulla sottocartella bin\Release o bin\Debug della cartella del progetto della community di Visual Studio (a seconda che si stia creando una versione di rilascio o debug della DLL, ne parleremo in un secondo momento).

Scelta di uno strumento di programmazione e di sviluppo

Proprio come gli umani utilizzano linguaggi diversi per comunicare, sono disponibili diverse opzioni di linguaggio durante la creazione di un plug-in AutoCAD: ai fini di questa guida, abbiamo scelto Visual Basic .NET, un linguaggio di programmazione generico e affidabile. Visual Basic .NET è particolarmente utilizzato per le persone che aprono a programmare, poiché la sintassi del linguaggio è più facilmente leggibile rispetto a molte altre lingue (ad esempio C# o C++).

Sono disponibili diversi strumenti per lo sviluppo di codice .NET di Visual Basic. Vanno da strumenti open source come SharpDevelop e MonoDevelop a strumenti di punta di Microsoft, all'ambiente di sviluppo professionale e a Visual Studio. In questa esercitazione si presuppone che si stia utilizzando Visual Studio Community, una versione gratuita di Visual Studio per la creazione di applicazioni Visual Basic .NET.

Visual Studio Community è un IDE (Integrated Development Environment), in quanto è costituito da vari strumenti, menu e barre degli strumenti che semplificano la creazione e la gestione del codice.

Il sistema di progetto in Visual Studio Community include i file Soluzione e Progetto, nonché gli Elementi di progetto, i singoli file appartenenti ai progetti. Una soluzione è un contenitore per uno o più progetti. Ogni progetto può essere considerato a sua volta un contenitore per gli elementi del progetto, ad esempio file di origine, icone e così via, la maggior parte dei quali viene compilata nel file eseguibile risultante (EXE o DLL). Visual Studio Community fornisce un'istanza di Esplora soluzioni che consente di organizzare e visualizzare il contenuto della soluzione caricata in un formato vista struttura:

L'interfaccia della community di Visual Studio contiene anche un editor di testo e un progettista di interfaccia. Questi vengono visualizzati nella finestra principale a seconda del tipo di file da modificare. Nell'editor di testo è possibile immettere il codice .NET di Visual Basic per il plug-in di AutoCAD. Questo editor fornisce funzionalità avanzate quali le sezioni IntelliSense e di codice comprimibile, oltre alle funzionalità di modifica del testo più classiche, quali i segnalibri e la visualizzazione dei numeri di riga.

IntelliSense è una funzionalità estremamente utile della famiglia di Visual Studio che migliora notevolmente la produttività dei programmatori: fornisce automaticamente suggerimenti per il codice scritto in base agli oggetti disponibili e alle lettere digitate. Se si digita il codice nella Lezione 1, sul lavoro verrà già visualizzato IntelliSense. Per questo motivo abbiamo suggerito di non copiare e incollare.

Chiaramente, una delle caratteristiche principali di Visual Studio Community è la capacità di creare codice .NET di Visual Basic in un file eseguibile. Durante il processo di compilazione, il compilatore di lingua esegue vari controlli e analisi sul codice. Uno di questi controlli consiste nel verificare che il codice sia conforme alle regole di sintassi del linguaggio .NET di Visual Basic. Il compilatore esegue anche altri controlli, ad esempio se una variabile è stata definita o meno in modo appropriato. Gli errori rilevati vengono segnalati tramite la finestra Elenco errori, generalmente disponibile nella parte inferiore della finestra principale. Se si è verificato un errore durante la digitazione del codice nella lezione 1, è possibile che questo problema sia già stato rilevato quando si tenta di creare il plug-in.

 Verifica dell'utilizzo di Visual Studio Community

In questa sezione, esamineremo i passaggi eseguiti utilizzando Visual Studio Community nella lezione precedente. Tuttavia, li inseriremo nel contesto di quanto avete appena appreso sulla programmazione in generale e sulla creazione del codice.

1. Nel primo passaggio, è stato semplicemente avviato Visual Studio Community. 

2. È stato quindi creato un nuovo progetto .NET di Visual Basic di tipo plug-in AutoCAD. Questo modello di progetto è stato aggiunto quando sono state installate le procedure guidate di AutoCAD .NET.

Poiché il linguaggio di sviluppo utilizzato per questo manuale è Visual Basic .NET, si utilizza Visual Basic in Visual Studio Community e pertanto viene visualizzato Visual Basic nella parte Modelli installati della finestra di dialogo Nuovo progetto. Il modello plug-in AutoCAD è essenzialmente un modello di libreria di classi, ma con alcune impostazioni aggiuntive.

Nella sezione centrale di questa finestra di dialogo sono stati visualizzati diversi tipi di applicazioni che è possibile creare; è possibile selezionare il modello in base al tipo di applicazione che si desidera creare.

Il nome immesso nella parte inferiore della finestra di dialogo viene utilizzato per identificare il progetto all'interno della soluzione.

3. Il progetto vuoto è stato creato, contenente alcuni riferimenti standard di progetto ai componenti principali di .NET, oltre ai riferimenti ai tre file che definiscono l'API di AutoCAD (AcCoreMgd.dll, AcMgd.dll e AcDbMgd.dll). Il progetto include inoltre due file di classe .NET di Visual Basic (MyCommands.vb e MyPlugin.vb). È possibile che il file MyPlugin.vb sia stato eliminato dal progetto perché non è necessario per questa esercitazione. Questi file contenevano un codice semplice di tipo boilerplate. Facendo clic su uno di questi file in Esplora soluzioni, il codice che contiene viene visualizzato nella finestra dell'editor di testo.

4. È stata esaminata la sezione Riferimenti delle impostazioni del progetto "My Project" e si è verificato che AcCoreMgd.dll, AcDbMgd.dll e AcMgd.dll fossero stati utilizzati correttamente come riferimento (Nota: AcCoreMdg.dll è stato creato per AutoCAD 2013 e versioni successive).


5. Il salvataggio della soluzione ha creato file fisici che rappresentano il contenuto del progetto sul disco rigido del computer, consentendo di aprirlo e modificarlo in un altro momento in futuro. Il progetto è stato chiuso e riaperto per garantire che Visual Studio Community avesse analizzato correttamente i file di progetto.

6. AcCoreMgd.dll, AcMgd.dll e AcDbMgd.dll contengono definizioni delle API di AutoCAD che si utilizzeranno più comunemente nei plug-in. Questi file verranno sempre utilizzati come riferimento nei progetti plug-in di AutoCAD. A volte si farà riferimento anche ad altri utenti.

  • AcMgd.dll contiene le API per il controllo dell'applicazione AutoCAD stessa, che definiscono i comandi personalizzati per l'apertura e la chiusura di documenti, la stampa e così via.
  • AcDbMgd.dll contiene le API per la creazione, la modifica o l'esecuzione di query sul contenuto di un file DWG.
  • Da AutoCAD 2013, le API in AcMdg.dll sono state divise tra AcMgd.dll e AcCoreMgd.dll. AcCoreMgd.dll contiene le API correlate al login dell'applicazione AutoCAD (ad esempio, gruppo di selezioni, comandi e parole chiave) e AcMgd.dll contiene API correlate all'interfaccia utente (ad esempio finestre di dialogo).

Quando è stato creato il progetto plug-in AutoCAD, nella finestra di dialogo Configurazione guidata di AutoCAD .NET sono state selezionate per default (non è possibile deselezionarle). Sono state incluse altre opzioni per includere altri file di definizione dell'API ignorati.

7. Successivamente, è stato aggiunto il codice .NET di Visual Basic utilizzando l'API di AutoCAD nel progetto. In altre parole, fornire ad AutoCAD istruzioni su come modificare il funzionamento di un attributo di blocco quando viene ruotato.

Durante lo sviluppo del codice, è consigliabile creare la soluzione di tanto in tanto, per verificare se nel codice sono stati introdotti errori. Il codice non deve necessariamente essere completo o funzionale durante la creazione della soluzione. Questo approccio può aiutare ad evitare la risoluzione dei problemi potenzialmente lunga una volta completato il codice e ha il vantaggio collaterale di salvare automaticamente i file di origine modificati prima dell'inizio della compilazione.

Per creare una soluzione all'interno di Visual Studio Community, selezionare Crea soluzione dal menu a discesa Crea.

Se il processo di compilazione è stato completato correttamente, nell'angolo inferiore sinistro del riquadro dell'applicazione Visual Studio Community viene visualizzato lo stato Build Succeeded. Se si è verificato un errore nel codice, in Visual Studio Community viene visualizzato un elenco di errori che indica gli errori rilevati. Inoltre, sottolineerà l'errore nel codice in blu. Ecco un esempio in cui abbiamo deliberatamente aggiunto un errore al codice che avete digitato nella prima lezione:

In questa lezione sono state esaminate brevemente le operazioni che si svolgono durante la creazione di un progetto, nonché alcune informazioni di base su Visual Basic .NET e Visual Studio Community. Avete esaminato i passaggi da voi compiuti nella lezione precedente per creare il plug-in AutoCAD di base, inserendolo nel contesto di quanto appreso sulla programmazione.

Argomenti aggiuntivi

Confronto tra la community di Visual Studio e Visual Studio Professional
In questa guida si utilizza Visual Studio Community. Questa è una versione gratuita di Visual Studio ed è quindi un ottimo strumento per iniziare a imparare. Microsoft ha preso di mira le edizioni Community di Visual Studio per studenti, hobbisti e altri programmatori a tempo parziale. Sebbene fornisca la maggior parte delle funzionalità di Visual Studio Professional, ad esempio IntelliSense, presenta alcune limitazioni. Ad esempio, contiene un numero inferiore di modelli di progetto e dispone di opzioni limitate per il debug e la risoluzione dei problemi di codice. Se non si è sicuri di voler sviluppare i plug-in oltre questa guida introduttiva, e in particolare se si desidera iniziare a sviluppare plug-in commerciali, è consigliabile investire in uno dei membri più completi della famiglia di prodotti Visual Studio.

*Esistono diverse versioni "professionali" di Visual Studio. Per ulteriori informazioni, visitare il sito Web di Microsoft Visual Studio.

Che cos'è .NET?
Il resto di questa lezione include un notevole gergo tecnico. Non preoccuparti se non capisci completamente tutto quando lo leggi per la prima volta. Sarà più sensato quando si acquisirà familiarità con .NET dopo aver scritto alcuni plug-in.

.NET Framework è un framework software che si trova in primo piano rispetto al sistema operativo Microsoft® Windows®* e fornisce la piattaforma, le librerie e i servizi sottostanti per tutte le applicazioni .NET. I servizi includono la gestione della memoria, la raccolta di rifiuti, il sistema di tipo comune, le librerie di classi e così via.

* I sottogruppi di .NET sono disponibili anche su altri sistemi operativi, sia tramite il progetto Mono open source o tramite Microsoft® Silverlight®, ma questi non sono argomenti di questo manuale. L'utente si concentrerà esclusivamente sull'utilizzo di .NET in Microsoft Windows.

Cosa contiene .NET Framework?
Il quadro di riferimento contiene due componenti principali:

1. Common Language Runtime (CLR) : agente (o motore di esecuzione) di .NET Framework responsabile della gestione dell'esecuzione del codice. Per questo motivo, il codice scritto in target di questo runtime è anche noto come codice gestito. Tutto il codice gestito è controllato dal CLR, ma cosa significa? Il CLR gestisce il codice fornendo servizi fondamentali, come la gestione della memoria (che include il rilascio automatico della memoria del computer per riutilizzarla in altre attività quando non è più necessaria), la gestione degli errori (o delle eccezioni), la gestione dell'uso di più thread di esecuzione e la garanzia del rispetto delle regole relative all'uso di diversi tipi di oggetti. CLR è la base di .NET Framework. 

2. Libreria di classi di .NET Framework: come suggerisce il nome, si tratta di una libreria o di un insieme di tipi di oggetto che è possibile utilizzare dal proprio codice durante lo sviluppo di applicazioni .NET. Queste applicazioni .NET sono destinate a Windows (basate sul prompt dei comandi o con un'interfaccia utente grafica), al Web o ai dispositivi mobili. Questa libreria è disponibile per tutte le lingue che utilizzano .NET Framework.

Come già detto, il CLR migliora la robustezza del codice assicurandosi che il codice di esecuzione sia conforme a un sistema di tipo comune (CTS). Il CTS garantisce che tutti i codici .NET (o gestiti), indipendentemente dalla lingua, utilizzino un insieme simile di tipi di oggetto e possano funzionare insieme nello stesso ambiente. Questa funzionalità consente di scrivere applicazioni nel linguaggio di sviluppo desiderato, utilizzando tuttavia componenti/codici scritti da programmatori che utilizzano altre lingue .NET.

Eseguibili edificio
Quando il codice è stato creato in un file EXE, è stato compilato in Common Intermediate Language (CIL, noto anche come MSIL) utilizzando il compilatore specifico della lingua. CIL è un insieme di istruzioni indipendente dalla CPU che può essere eseguito dal CLR su sistemi operativi Windows. In genere, CIL è trasferibile su sistemi a 32 e 64 bit e persino, in parte, su sistemi operativi non Windows. Il codice CIL generato dal codice sorgente VB è stato quindi incluso in un assieme .NET. Tale assieme è una libreria di codici CIL memorizzata in formato Portable Executable (PE), che contiene sia il CIL che i metadati associati. Gli assiemi possono essere assiemi di processo (EXE) o assiemi di libreria (DLL).

Durante questa guida, ci concentreremo sullo sviluppo di un particolare tipo di plug-in AutoCAD: un assieme di processo (EXE) che comunica con AutoCAD. A causa del carico di lavoro associato allo sviluppo di tali componenti, non è necessario dedicare tempo alla ricerca dei componenti aggiuntivi di AutoCAD, che in genere sono DLL che vengono caricate ed eseguite nello spazio di memoria di AutoCAD. Un motivo per cui l'implementazione di un EXE per l'utilizzo con AutoCAD è più semplice rispetto allo sviluppo di un modulo aggiuntivo è correlato all'interfaccia utente: gli eseguibili non devono integrarsi perfettamente con l'interfaccia utente di AutoCAD aggiungendo pulsanti della barra multifunzione (ad esempio).

Esecuzione di eseguibili

Durante l'esecuzione di un assieme .NET, CIL (che risiede nell'assieme) viene passato attraverso il compilatore JIT (Just-in-time) del CLR per generare il codice nativo (o macchina). La compilazione JIT del CIL nel codice nativo si verifica quando viene eseguita l'applicazione. Poiché non è necessario tutto il codice durante l'esecuzione, il compilatore JIT converte solo il CIL quando necessario, risparmiando così tempo e memoria. Memorizza inoltre il codice generato in memoria, rendendolo disponibile per l'uso successivo senza la necessità di ricompilarlo.

Nell’ultima fase di questo processo, il codice nativo viene eseguito dal processore del computer.

Per ulteriori informazioni sul processo di creazione di applicazioni .NET, consultare MSDN Library.

Panoramica del primo plug-in AutoCAD> Lezione 1 >> Lezione 2 > Lezione 3 >> Lezione 4 >> Lezione 5 > Lezione 6 > Lezione 7 > Lezione 8



Queste informazioni sono state utili?


Hai bisogno di aiuto? Chiedi all'Assistente Autodesk!

Per trovare le risposte alle tue domande, chiedi all'Assistente oppure contatta un agente.


Di quale livello di supporto disponi?

I vari piani di abbonamento forniscono diverse categorie di supporto. Scopri il livello di supporto per il tuo piano.

Visualizza i livelli di supporto