Panoramica della libreria di classi .NET

Le API .NET includono classi, interfacce, delegati e tipi di valore che consentono di velocizzare e ottimizzare il processo di sviluppo e di accedere alle funzionalità di sistema. Per facilitare l'interoperabilità tra i linguaggi, la maggior parte dei tipi .NET è conforme a CLS e può pertanto essere usata da qualsiasi linguaggio di programmazione dotato di compilatore conforme alle specifiche CLS.

I tipi .NET sono gli elementi fondamentali per la compilazione di applicazioni, componenti e controlli .NET. .NET include tipi che consentono di eseguire le funzioni seguenti:

  • Rappresentare tipi di dati ed eccezioni di base.
  • Incapsulare strutture di dati.
  • Eseguire I/O.
  • Accedere a informazioni su tipi caricati.
  • Richiamare i controlli di sicurezza .NET.
  • Offrire l'accesso ai dati, un'elaborata interfaccia GUI (Graphical User Interface, interfaccia grafica utente) per il lato client e una GUI per il lato client controllata dal server.

.NET offre una vasta gamma di interfacce, nonché di classi astratte e concrete (non astratte). È possibile utilizzare le classi concrete così come sono oppure, in molti casi, derivare da esse classi personalizzate. Per avvalersi delle funzionalità di un'interfaccia è possibile creare, oppure derivare da una delle classi di .NET, una classe che consenta di implementare l'interfaccia.

Convenzioni di denominazione

Nei tipi .NET viene usato uno schema di denominazione che applica la sintassi con il punto per definire una gerarchia. Secondo questa tecnica i tipi correlati vengono raggruppati in spazi dei nomi, in modo da semplificarne le ricerche e i riferimenti. La prima parte del nome completo, fino al primo punto da destra, è il nome dello spazio dei nomi. L'ultima parte del nome è il nome del tipo. Ad esempio, System.Collections.Generic.List<T> rappresenta il tipo List<T>, che appartiene allo spazio dei nomi System.Collections.Generic. I tipi in System.Collections.Generic possono essere utilizzati per lavorare con raccolte generiche.

Questo schema di denominazione è vantaggioso per gli sviluppatori di librerie che desiderano estendere .NET poiché consente di creare gruppi gerarchici di tipi e denominarli in modo coerente utilizzando nomi di immediata comprensione. Consente inoltre l'identificazione non ambigua dei tipi mediante il relativo nome completo, ovvero mediante il relativo spazio dei nomi e nome di tipo, in modo da evitare conflitti tra i nomi di tipo. Nella denominazione degli spazi dei nomi è opportuno che gli sviluppatori di librerie rispettino la seguente convenzione:

NomeSocietà.NomeTecnologia

Lo spazio dei nomi Microsoft.Word, ad esempio, è conforme a questa convenzione.

Il ricorso a schemi di denominazione per raggruppare dei tipi correlati all'interno di spazi dei nomi è un metodo estremamente utile per compilare e documentare librerie di classi. Questo schema di denominazione non ha tuttavia alcun effetto sulla visibilità, sull'accesso ai membri, sull'ereditarietà, sulla sicurezza o sull'associazione. Gli spazi dei nomi possono essere ripartiti tra più assembly e un singolo assembly può contenere tipi provenienti da spazi dei nomi differenti. L'assembly fornisce la struttura formale per la creazione di versioni successive, la distribuzione, la sicurezza, il caricamento e la visibilità in Common Language Runtime.

Per altre informazioni sugli spazi dei nomi e sui nomi dei tipi, vedere Common Type System.

spazio dei nomi di sistema

Lo spazio dei nomi System è lo spazio dei nomi di primo livello per i tipi fondamentali in .NET. Questo spazio dei nomi include classi che rappresentano i tipi di dati di base utilizzati da tutte le applicazioni, ad esempio Object (il primo livello della gerarchia di ereditarietà), Byte, Char, Array, Int32, String e così via. Molti di questi tipi corrispondono ai tipi di dati primitivi utilizzati dal linguaggio di programmazione. Quando si scrive il codice utilizzando tipi di .NET è possibile utilizzare la parola chiave corrispondente del linguaggio utilizzato dove è previsto un tipo di dati di base di .NET.

Nella tabella riportata di seguito sono elencati i tipi di base disponibili in .NET. con una breve descrizione di ogni tipo. Viene anche indicato il tipo corrispondente in Visual Basic, C#, C++, e F#.

Categoria Nome classe Descrizione Tipo di dati di Visual Basic Tipo di dati di C# Tipo di dati C++/CLI Tipo di dati F#
Intero Byte Intero senza segno a 8 bit. Byte byte unsigned char byte
SByte Numero intero con segno a 8 bit.

Non conforme a CLS.
SByte sbyte char oppure signed char sbyte
Int16 Intero con segno a 16 bit. Short short short int16
Int32 Intero con segno a 32 bit. Integer int int oppure long int
Int64 Intero con segno a 64 bit. Long long __int64 int64
UInt16 Numero intero non firmato a 16 bit.

Non conforme a CLS.
UShort ushort unsigned short uint16
UInt32 Intero senza segno a 32 bit.

Non conforme a CLS.
UInteger uint unsigned int oppure unsigned long uint32
UInt64 Intero senza segno a 64 bit.

Non conforme a CLS.
ULong ulong unsigned __int64 uint64
Virgola mobile Half Un numero a virgola mobile e mezza precisione a 16 bit.
Single Un numero a virgola mobile e precisione singola a 32 bit. Single float float float32 oppure single
Double Un numero a virgola mobile e precisione doppia a 64 bit. Double double double float oppure double
Logico Boolean Un valore Boolean (true o false). Boolean bool bool bool
Altro Char Un carattere Unicode a 16 bit. Char char wchar_t char
Decimal Un valore decimale a 128 bit. Decimal decimal Decimal decimal
IntPtr Un intero con segno la cui dimensione dipende dalla piattaforma sottostante (un valore a 32 bit su una piattaforma a 32 bit e un valore a 64 bit su una piattaforma a 64 bit). nint unativeint
UIntPtr Un intero senza segno la cui dimensione dipende dalla piattaforma sottostante (un valore a 32 bit su una piattaforma a 32 bit e un valore a 64 bit su una piattaforma a 64 bit).

Non conforme a CLS.
nuint unativeint
Object Il primo livello della gerarchia di oggetti. Object object Object^ obj
String Una stringa di caratteri Unicode immutabile e a lunghezza fissa. String string String^ string

Oltre ai tipi di dati di base, lo spazio dei nomi System contiene oltre 100 classi, da quelle che gestiscono le eccezioni a quelle correlate a concetti fondamentali della fase di esecuzione, quali i domini di applicazione e Garbage Collector. Lo spazio dei nomi System contiene inoltre numerosi spazi dei nomi di secondo livello.

Per altre informazioni sugli spazi dei nomi, usare il Browser API .NET per esplorare la libreria di classi .NET. La documentazione di riferimento delle API contiene informazioni su ogni spazio dei nomi, sui relativi tipi e membri.

Strutture dei dati

.NET include un insieme di strutture di dati che sono alla base di molte applicazioni .NET. Si tratta principalmente di raccolte, ma sono inclusi anche altri tipi.

  • Array: rappresenta una matrice di oggetti fortemente tipizzati accessibile con l'indice. Per struttura, ha una dimensione fissa.
  • List<T>: rappresenta un elenco di oggetti fortemente tipizzati accessibile per indice. Viene ridimensionato automaticamente secondo le necessità.
  • Dictionary<TKey,TValue>: rappresenta una raccolta di valori indicizzati da una chiave. I valori sono accessibili tramite chiave. Viene ridimensionato automaticamente secondo le necessità.
  • Uri: fornisce una rappresentazione in forma di oggetto di un identificatore URI (uniform resource identifier) e un pratico accesso alle parti dell'URI.
  • DateTime: rappresenta un istante di tempo, in genere espresso come data e ora del giorno.

API di utilità

.NET include un set di API di utilità che offre funzionalità per molte attività importanti.

  • HttpClient: un'API per inviare richieste HTTP e ricevere risposte HTTP da una risorsa identificata da un URI.
  • XDocument: un'API per il caricamento e l'esecuzione di query su documenti XML con LINQ.
  • StreamReader : Un'API per la lettura dei file.
  • StreamWriter : Un'API per la scrittura dei file.

API dei modelli di app

Esistono molti modelli di app che possono essere usati con .NET, ad esempio:

  • ASP.NET: un framework Web per la creazione di siti Web e servizi. Supportato in Windows, Linux e macOS (dipende dalla versione ASP.NET).
  • .NET MAUI: piattaforma di app per la creazione di app native eseguite in Windows, macOS, iOS e Android con C#.
  • Windows desktop: include Windows Presentation Foundation (WPF) e Windows Forms.

Vedi anche