Come usare .NET

Completato

Questa unità è incentrata sugli aspetti tecnici della creazione di un'applicazione. Verranno usati linguaggi, strumenti e framework .NET per delineare il flusso di lavoro generale che gli sviluppatori software usano per creare applicazioni .NET.

Modalità d'uso di .NET da parte degli sviluppatori per creare applicazioni

Questa sezione descrive il flusso di lavoro dello sviluppo di un'applicazione in .NET e contiene informazioni dettagliate su come iniziare a creare un'applicazione in .NET.

Configurare l'ambiente di sviluppo

La prima decisione degli sviluppatori è la scelta degli strumenti da usare per creare le applicazioni. In altre parole, scelgono l'ambiente di sviluppo. La decisione si basa in genere sul fatto che lo sviluppatore preferisca un flusso di lavoro più visivo con un'interfaccia utente grafica oppure un'interfaccia della riga di comando in cui viene usata quasi esclusivamente la tastiera per spostarsi nell'ambiente di sviluppo ed eseguire i comandi.

Nota

Per informazioni su come iniziare a configurare l'ambiente di sviluppo, vedere i collegamenti alla fine di questo modulo. È possibile scegliere Visual Studio 2022 o Visual Studio Code e .NET Software Development Kit (SDK).

Per gli sviluppatori che preferiscono un ambiente visivo, Visual Studio 2022 è la scelta migliore. Come si può immaginare, data la natura visiva e completa di Visual Studio 2022, saranno necessari tempo, larghezza di banda e spazio su disco per scaricare e installare il programma. Per alcuni principianti, tuttavia, questo è il modo più semplice per iniziare. A seconda della velocità della connessione Internet, l'installazione può richiedere almeno 15 minuti.

Il Programma di installazione di Visual Studio in Visual Studio 2022 fornisce opzioni sotto forma di carichi di lavoro. Un carico di lavoro è una raccolta di framework, librerie e altri strumenti che, usati in combinazione, consentono di creare un modello di app specifico. In base a quanto appreso nell'unità precedente, è necessario assicurarsi di installare il carico di lavoro per creare nuove applicazioni per il modello di app.

Se si è appena iniziato, il carico di lavoro ASP.NET e sviluppo Web installa .NET SDK e altri SDK per lo sviluppo Web con .NET. .NET SDK contiene tutti gli strumenti, le librerie e i modelli necessari per iniziare a scrivere codice.

Se si preferisce un ambiente della riga di comando, scaricare e installare separatamente Visual Studio Code e .NET SDK. Questa scelta è comune per i principianti che vogliono iniziare rapidamente. Entrambi gli strumenti richiedono una minore larghezza di banda per il download.

Introduzione

In genere, i progetti di sviluppo software iniziano con un set di requisiti. Questi requisiti influiscono sulle scelte relative al modello di app. Per esempio, il modello di app scelto potrebbe essere un'applicazione Web, desktop o per dispositivi mobili oppure un processo in background.

Quando si usa Visual Studio 2022 o l'interfaccia della riga di comando .NET, in genere si inizia creando un nuovo progetto basato su un modello di progetto. È possibile scegliere tra più modelli di progetto. I modelli di progetto:

  • Generano file e cartelle in base ai modelli e al nome del progetto definito.
  • Aggiungono riferimenti alle librerie di uso comune e a quelle richieste dal framework del modello di app.
  • Forniscono il codice necessario che consente di eseguire l'applicazione e vedere un piccolo esempio per verificare che la compilazione del codice avvenga correttamente.
  • A volte includono istruzioni nel codice. Queste istruzioni consentono di modificare l'applicazione di esempio e di personalizzarla.

In Visual Studio 2022 la finestra di dialogo Nuovo progetto consente di scegliere visivamente un modello di applicazione da un set di modelli installati oppure è possibile scegliere tra numerosi contributi della community. Nell'interfaccia della riga di comando .NET si sceglierà un nuovo modello di progetto usando il nuovo comando dotnet .

Creare le funzionalità

Si inizia quindi a scrivere la logica per l'applicazione. È possibile aggiungere riferimenti alle librerie di codice quando è necessario eseguire particolari attività, ad esempio:

  • Connessione alle risorse di rete
  • Accesso a un database per archiviare o recuperare i dati
  • Conversione dei dati da un formato a un altro
  • Aggiunta della registrazione per diagnosticare i problemi dell'applicazione

In alcuni casi, le librerie di codice da usare sono già presenti sul disco rigido locale perché sono state installate insieme a .NET SDK.

In altri casi, gli sviluppatori usano lo strumento di gestione pacchetti NuGet per il download e la creazione di riferimenti alle librerie di assembly. Per recuperare queste risorse, a seconda dell'ambiente di sviluppo, è possibile usare la finestra di dialogo Gestione pacchetti NuGet di Visual Studio o l'interfaccia della riga di comando .NET CLI.

Compilare ed eseguire l'applicazione

Quando si compilano nuove funzionalità, si crea il codice e lo si esegue spesso. Questo flusso di lavoro consente di valutare le parti che funzionano correttamente e quelle che richiedono revisioni. Sia l'approccio visivo che l'approccio basato sulla riga di comando usano semplici comandi che consentono di seguire facilmente il flusso di lavoro.

La sintassi del codice viene considerata non corretta quando non segue le regole del linguaggio. Quando la sintassi è errata, il compilatore .NET per il linguaggio in uso genera un errore di compilazione. Il compilatore non riprenderà l'esecuzione finché non verrà corretto il problema di sintassi.

A volte il codice può essere compilato perché segue le regole della sintassi, ma la logica dell'applicazione presenta problemi. Se la logica impedisce al runtime .NET di eseguire un comando, il programma "si arresta in modo anomalo". Il runtime .NET rimuove quindi il programma dalla memoria del computer. Questi errori sono detti errori di runtime o eccezioni.

Suggerimento

Fortunatamente, è possibile impedire in modo programmatico che i messaggi di errore del sistema no elaborato raggiungano gli utenti. Per altre informazioni, cercare le esercitazioni e la documentazione sulla gestione delle eccezioni strutturata.

Alcuni errori logici non comportano un "arresto anomalo". Ma non producono nemmeno i risultati previsti dagli utenti. È possibile risolvere questi errori solo eseguendo il test e il debug dell'applicazione.

Eseguire il debug dell'applicazione

Mentre si crea il software, si esegue l'applicazione per valutare se soddisfa i requisiti e le aspettative. Si potrebbe individuare un bug nell'applicazione, senza conoscerne la causa o come risolverlo.

Quando si esegue il debug, si controlla l'applicazione mentre è in esecuzione per capire cosa accade. È possibile impostare punti di interruzione che sospendono l'applicazione e consentono di seguire il codice mentre è in esecuzione, linea per linea. È possibile osservare i valori archiviati nelle variabili, prendere il controllo del percorso di esecuzione attraverso il codice per ignorare o eseguire nuovamente le righe, modificare il valore di una variabile e così via.

Gli strumenti di debug, sia visivi che da riga di comando, consentono di osservare l'esecuzione dell'applicazione e di assumere il controllo. Usare queste funzionalità per vedere che cosa succede nell'applicazione mentre è in esecuzione.

Distribuire l'applicazione

Quando l'applicazione è pronta per essere rilasciata, si crea una versione di rilascio della build. In una versione di rilascio, si rimuove il codice necessario per il debug. Anche in questo caso, con gli strumenti, sia visivi che da riga di comando, è possibile compilare una versione di rilascio.

Per eseguire la versione di rilascio, è necessario installare prima il runtime .NET nel computer di destinazione. Quel computer eseguirà l'assembly .NET compilato.

Funzionamento di .NET in fase di runtime

Dopo avere installato il runtime .NET e l'assembly .NET dell'applicazione nel computer di destinazione, è possibile eseguire l'applicazione.

Il runtime .NET è una sorta di bolla di protezione che fornisce un ambiente di esecuzione per le applicazioni. Il runtime .NET:

  • Compila il codice intermedio in un formato binario alla prima esecuzione del programma. Il formato binario è specifico della piattaforma e dell'architettura (ad esempio, Windows a 64 bit) del computer in cui è in esecuzione.
  • Individua il punto di ingresso del programma e inizia a eseguire ogni istruzione nella sequenza corretta.
  • Gestisce le risorse del computer, ad esempio memoria e accesso alla rete. Quando si afferma che il runtime .NET "gestisce la memoria", significa che interagisce con il sistema operativo per effettuare il provisioning della memoria per l'applicazione. Quando l'applicazione non necessita più dei dati archiviati in memoria, una funzionalità di Garbage Collection rilascia la memoria al sistema operativo senza alcuna istruzione da parte dello sviluppatore software.
  • Protegge il computer dell'utente da software con finalità potenzialmente dannose. Fornisce anche un livello di isolamento tra le applicazioni.