Cos'è .NET Framework? La risposta di Microsoft a Java

Cos'è .NET Framework? Definito da .NET

 .NET è un framework di sviluppo software e un ecosistema di strumenti, linguaggi e runtime di accompagnamento creato da Microsoft per facilitare lo sviluppo di applicazioni su varie piattaforme, dai desktop ai dispositivi mobili. Sebbene .NET (pronunciato punto net, e talvolta scritto come .Net) fosse originariamente legato al sistema operativo Windows proprietario di Microsoft e alle piattaforme quando fu lanciato nei primi anni 2000, le applicazioni .NET possono ora essere scritte per il web, MacOS, iOS , Android, Linux e altro ancora e .NET è uno standard formale e ufficialmente disponibile come open source.

Microsoft descrive .NET come "un ambiente di programmazione orientato agli oggetti coerente, indipendentemente dal fatto che il codice oggetto venga archiviato ed eseguito localmente, eseguito localmente ma distribuito su Internet o eseguito in remoto". .NET mira a fornire un'esecuzione sicura del codice, a fornire prestazioni migliori rispetto ai linguaggi interpretati e a rendere coerente l'esperienza dello sviluppatore su un'ampia varietà di app. 

Componenti principali di .NET Framework

.NET Framework è in circolazione da quasi 20 anni e ha subito molte modifiche, con i componenti implementati e successivamente deprecati in quel periodo. Al momento, ci sono tre livelli principali in .NET:

  • La libreria .NET standard include i componenti che formeranno l'infrastruttura per quasi tutte le applicazioni che scriveresti: classi e tipi che sono utili per eseguire attività quotidiane come gestire stringhe e primitive, creare connessioni a database, eseguire operazioni di I / O operazioni e così via.
  • I modelli di app opzionali contengono codice idraulico per le varie piattaforme in cui è possibile distribuire l'applicazione .NET. Esistono numerosi modelli di app per applicazioni Windows (un retaggio della stretta associazione di .NET con il sistema operativo di punta di Microsoft in continua evoluzione) e anche per altre piattaforme: ASP.NET per applicazioni Web, ad esempio, e modelli per Mac e vari piattaforme mobili.
  • L' infrastruttura comune è il livello di base dei componenti che consentono all'intero ecosistema di essere effettivamente eseguito nella pratica, dai compilatori ai linguaggi ai componenti di runtime. Questi sono fondamentali per capire cosa ha da offrire .NET, quindi li esamineremo più in dettaglio nelle sezioni successive. 

Come funziona .NET Framework

I componenti principali di .NET Framework lavorano insieme per semplificare il processo di scrittura delle applicazioni. La libreria standard ei modelli di app forniscono molto codice per gestire le attività di programmazione di base per te in modo da non dover reinventare la ruota con ogni applicazione che costruisci. E l'infrastruttura comune si occupa di gran parte del lavoro di distribuzione di tali applicazioni.

Il codice scritto in uno qualsiasi dei linguaggi .NET (di cui parleremo tra poco) viene compilato in un linguaggio bytecode intermedio chiamato Common Intermediate Language , o CIL. Il codice CIL non è leggibile dall'uomo, ma può essere trasferito su sistemi operativi e piattaforme. Il CIL viene poi compilato nuovamente Common Language Runtime , o CLR. Le implementazioni CLR sono specifiche della piattaforma e compilano il codice CIL in codice leggibile dalla macchina che può essere eseguito sulla piattaforma del momento. Diverse versioni di CLR supportano sia le compilazioni just-in-time che anticipate.

Nel processo di creazione di codice leggibile dalla macchina locale, il CLR gestisce anche molte funzionalità di applicazioni di basso livello, come la garbage collection e il threading, fondamentali per le prestazioni dell'app ma spesso noiose da gestire per gli sviluppatori. Insieme, il CIL e il CLR costituiscono la .NET Common Language Infrastructure (CLI, e sì, sappiamo che tutte queste abbreviazioni sono simili e creano confusione).

Tutto ciò dovrebbe suonare familiare a chiunque abbia lavorato con la piattaforma Java, poiché segue lo stesso paradigma di base: le grandi librerie di classi disponibili, il bytecode intermedio e il runtime specifico della piattaforma che automatizza la gestione della memoria sono tutte caratteristiche di entrambe le offerte. .NET è stato sviluppato alla fine degli anni '90, durante il periodo di massimo splendore iniziale di Java, ed era originariamente posizionato come concorrente della piattaforma Java Enterprise Edition; il linguaggio Java e C #, il primo e più importante linguaggio .NET, sono entrambi derivati ​​da C e sono semanticamente simili.

Quali sono i linguaggi di programmazione .NET?

C #, annunciato con grande clamore al lancio di .NET nel 2000, è il linguaggio di programmazione .NET più famoso e ampiamente utilizzato. È stato sviluppato internamente da Microsoft come parte dell'iniziativa .NET e la maggior parte delle classi nella libreria standard .NET sono scritte in C #. Il linguaggio è orientato agli oggetti ed è progettato per essere abbastanza simile al C per essere facile da imparare e utilizzare rapidamente per gli sviluppatori C, C ++, Java e JavaScript.

Microsoft attualmente mette in primo piano anche altri due linguaggi di programmazione che possono essere utilizzati per scrivere per .NET Framework. Uno è F #, un linguaggio di programmazione funzionale che fa parte della famiglia di linguaggi ML che alla fine ha radici in LISP; l'altro è Visual Basic, il linguaggio di programmazione venerabile e di facile apprendimento di Microsoft per lo sviluppo di applicazioni client-server. Ma queste sono solo la punta dell'iceberg: poiché .NET è composto da standard aperti, chiunque può scrivere un linguaggio che compila in bytecode CIL e può essere eseguito da CLR. Wikipedia ha un elenco di oltre 20 progetti in linguaggio CLI attualmente gestiti. Quasi tutti rappresentano le porte .NET di linguaggi esistenti, da Pascal a JavaScript fino a COBOL.

Il fatto che questa diversità di linguaggi possa coesistere all'interno di .NET Framework è uno dei punti di forza della piattaforma. Poiché il codice viene tutto compilato in bytecode CIL, .NET non si preoccupa realmente in quale lingua lo scrivi; puoi scegliere una lingua in base alle tue preferenze, ai diversi punti di forza e di debolezza di ogni lingua, o ai diversi aspetti del .NET Framework a cui ogni lingua ti dà accesso (ci sono alcune variazioni qui). Come notato, la maggior parte della libreria standard è stata scritta in C #, ma ciò non ti impedisce di accedere a quelle classi dal codice scritto in altri linguaggi CLI. Infatti, i componenti scritti in diversi linguaggi CLI possono interagire liberamente con un'applicazione .NET.

.NET Framework contro .NET Core (e oltre) 

Noterai che abbiamo utilizzato ".NET Framework" in questo articolo per fare riferimento alla piattaforma in generale. A rigor di termini, non è corretto: Microsoft usa questa frase per riferirsi alla propria implementazione di vecchia data di .NET Standard, che si concentra esclusivamente su Windows. Storicamente ci sono state altre implementazioni di .NET; uno dei più famosi è Mono, un'implementazione open source rilasciata per la prima volta nel 2004 che ha reso possibile eseguire applicazioni .NET su Linux. (Il rilascio ha sollevato alcune controversie, poiché questa era l'era in cui c'era ancora un po 'di cattivo sangue tra Microsoft e la comunità open source.) Mono ora costituisce la base della piattaforma Xamarin, il che rende possibile costruire .NET applicazioni per iOS, Android e MacOS e Linux. Xamarin è nata da un'idea dei fondatori di Mono,ma la società che hanno fondato per supportare il progetto è stata infine acquisita da Microsoft.

La terza importante implementazione di .NET di Microsoft è .NET Core, un'implementazione multipiattaforma di .NET Standard che è stata rilasciata come open source nel 2016. .NET Core è stato creato da zero e ha rimosso parte del cruft accumulato in .NET Framework, sebbene mancasse anche della gamma completa di funzionalità. Avere più versioni di .NET Standard, tutte di Microsoft, è comprensibilmente un po 'confuso. Nel 2017, l'editorialista Simon Bisson ha affrontato la questione di quale implementazione dovrebbe essere utilizzata in quali contesti.

Ma tutto cambierà in un futuro non così lontano. Nel novembre 2020, Microsoft intende unificare le tre implementazioni .NET come .NET 5. .NET 5 sarà essenzialmente la prossima generazione di .NET Core, con molti componenti di .NET Framework e Xamarin incorporati. Tuttavia, un certo numero di API .NET Framework non farà il viaggio a .NET 5. Il trasferimento mira a semplificare le cose per gli sviluppatori e concentrare gli sforzi di Microsoft.

Quale .NET Framework ho?

Al momento della stesura di questo articolo, tuttavia, è più di un anno di pausa. L'ultima versione corrente di .NET Framework è la 4.8; la versione corrente di .NET Core è la 3.0. Microsoft ha una pagina con le istruzioni su come scoprire quale versione di .NET Framework è attualmente installata sul tuo computer.

A cosa serve .NET? 

Quindi tutto ciò ti dà una grande quantità di cosa e come; ma quello che ti starai ancora chiedendo è il motivo. Perché utilizzare .NET Framework? Il blog Altexsoft ha una buona ripartizione dei pro e dei contro di .NET. Sul lato positivo, .NET fornisce un modello di programmazione orientato agli oggetti con un sistema di memorizzazione nella cache affidabile e semplice e un IDE maturo e consente una distribuzione flessibile e una facile manutenzione. Inoltre, la natura multipiattaforma di .NET consente il porting del codice su molti tipi diversi di endpoint. .NET è più appropriato se stai creando app multipiattaforma su infrastrutture su scala aziendale che vuoi poter scalare senza dover riorganizzare completamente.

Scarica .NET Framework

Pronto per iniziare a sperimentare con .NET? Scarica .NET Framework (per Windows) o .NET Core (per Windows, Linux o MacOS) dal sito Web di Microsoft; Sono disponibili anche immagini Docker. Puoi trovare Xamarin per iOS e Android su GitHub. Buona esplorazione!