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.