.NET 5: cosa significa la fusione di .NET Framework e .NET Core

La strategia .NET di Microsoft potrebbe essere stata un po 'poco chiara di recente, con due distinti filoni di sviluppo nel familiare .NET Framework e nel nuovo .NET Core open source. Un insieme comune di librerie .NET Standard mirava a riunire i due, offrendo agli sviluppatori un unico modo per lavorare con una qualsiasi delle diverse versioni di .NET su tutte le loro piattaforme di destinazione, da Windows ai dispositivi mobili al web. Ma ciò significava comunque dover pensare a quale runtime .NET usare: Core, Xamarin, Mono o Framework?

Presentazione di .NET 5, il futuro di .NET

Alla Build 2019 Microsoft ha svelato i suoi piani per il futuro di .NET, annunciando che la prossima major release dopo .NET Core 3 sarebbe stata una singola versione di .NET chiamata .NET 5. Basandosi sulla rapida crescita del .NET rinnovato e rinvigorito Core, Microsoft mira a far funzionare molte API e funzionalità .NET Framework 4.8 esistenti su .NET 5, insieme a nuove API e servizi. Non sono solo le librerie di classi base che stanno convergendo; Microsoft sta cogliendo l'opportunità di riunire i suoi diversi compilatori .NET, evolvendo sia i modelli di compilazione JIT (just-in-time) di .NET Core che quelli anticipati di Mono.

Non è una decisione sorprendente. .NET Framework non stava avanzando rapidamente come .NET Core, appesantito dal codice legacy. Ciò, combinato con la crescente attenzione di Microsoft per lo sviluppo multipiattaforma, ha assicurato che un passaggio decisivo dal Framework quasi ventenne al Core più recente fosse inevitabile. Anche eliminare Core dal nome è logico. Con le API aggiunte dal lancio e il supporto per le librerie .NET Standard, .NET Core non è più un refactoring di base ridotto. Con .NET 5 che segnala la fine dello sviluppo per .NET Framework, è chiaramente il momento per un nuovo nome.

Anche così, non sarà un cambiamento dall'oggi al domani. .NET Core 3 deve ancora essere distribuito e non vedremo .NET 5 fino all'autunno del 2020. Una data di spedizione prevista per novembre 2020 ci dà quasi 18 mesi per preparare il nostro codice, con versioni di anteprima disponibili da qualche tempo nel prima metà del 2020.

Cosa succede a .NET Framework?

Una cosa che Microsoft sta chiarendo: .NET Core 3 sarà l'ultima versione a portare le API di .NET Framework. Quindi non ci saranno API Framework aggiuntive in .NET 5 e alcune tecnologie meno recenti come Web Form e Windows Communication Foundation non faranno parte della nuova piattaforma. Se desideri passare da .NET Framework 4.8, dovrai trovare tecnologie alternative supportate. Attualmente Microsoft consiglia Blazor per sostituire Web Form e gRPC per sostituire WCF. Sono alternative ragionevoli, che offrono un supporto multipiattaforma che non sarebbe disponibile tramite tecnologie precedenti e, con Blazor che utilizza Web Assembly o offre controlli lato server in ASP.NET, ora supportano molto più recenti e con prestazioni più elevate tecnologie.

Il consiglio di Microsoft agli sviluppatori è di iniziare a utilizzare .NET Core 3 per tutte le nuove applicazioni, ma è importante notare che questa non è la fine delle tue applicazioni .NET Framework. Microsoft si impegna a supportare a lungo termine .NET Framework, quindi se il codice è in esecuzione su .NET Framework 4.8 non sarà necessario aggiornarlo finché non sarai pronto per il cambiamento. Dopotutto, attualmente sta distribuendo strumenti di sviluppo di base, incluso Visual Studio, creato utilizzando .NET Framework. Anche in questo caso, con la compatibilità della classe base tra gran parte del nuovo .NET e il vecchio grazie a .NET Standard, la migrazione non dovrebbe essere dolorosa e ti darà l'opportunità di eseguire quel codice in molti più posti.

Tuttavia, la semplice migrazione del codice perderà l'opportunità di refactoring e riprogettazione delle applicazioni per il cloud e per i microservizi. .NET 5 è stato sviluppato per il mondo IT di oggi, con cloud ibrido e sistemi distribuiti containerizzati in cima all'agenda, piuttosto che il mondo client-server che ha dato vita al .NET originale alla fine degli anni '90.

Un runtime multipiattaforma per un mondo multipiattaforma

Unificando .NET Core, .NET Standard e Xamarin in un'unica piattaforma, Microsoft mira a conquistare le alture multipiattaforma. Il tuo codice (con un po 'di lavoro sull'interfaccia utente) potrà essere eseguito su Windows, Linux, iOS, Android e altro, con supporto per molte classi diverse di dispositivi. Aggiungendo il supporto di .NET Core 3 per il desktop di Windows, c'è una vasta gamma di applicazioni che possono essere create in .NET 5, soprattutto se si sfruttano i controlli UWP eseguibili ovunque grazie al supporto di strumenti .NET di terze parti di Uno e altri.

Poiché le implementazioni .NET vanno oltre .NET Core, ci sarà ancora spazio per le librerie .NET Standard. Le librerie comuni semplificano il targeting di più versioni di .NET dallo stesso codice sorgente e tutto il codice .NET 5 utilizzerà .NET Standard, semplificando il trasferimento del codice dalle versioni precedenti di .NET Core e da altre implementazioni .NET come Mono o Xamarin.

Ottenere il giusto posizionamento aziendale di .NET

Un aspetto dell'annuncio di .NET 5 è un programma di rilascio regolare per .NET. Mettere .NET su una cadenza annuale, con una versione semestrale del supporto a lungo termine, dovrebbe alleviare la pressione aggiuntiva sugli sviluppatori, aggiungendo un livello di prevedibilità che mancava. Sapere che .NET 6 sarà disponibile nel 2021, per essere seguito da .NET 7 un anno dopo, e con quattro anni di supporto per le versioni di supporto a lungo termine, sarà più facile pianificare nuove funzionalità e cicli di vita delle applicazioni. Consentirà a Microsoft e al resto della .NET Foundation di pubblicare mappe stradali chiare su cosa aspettarsi e quando aspettarselo.

Al di fuori dell'ecosistema .NET, c'è un'altra opportunità qui per Microsoft e il suo focus sugli abbonamenti agli strumenti per sviluppatori. Con le condizioni di licenza modificate di Oracle per Java, un runtime aziendale open source privo di royalty sarà interessante per molti team di sviluppo Java esistenti. Quel periodo di 18 mesi prima del lancio di .NET 5 potrebbe essere visto come il momento di addestrare i tuoi sviluppatori a nuovi linguaggi e strumenti e di pianificare la reimplementazione delle applicazioni nei microservizi di .NET.

Mettendo tutto insieme, il risultato è una road map .NET adatta agli sviluppatori aziendali. Microsoft e .NET Foundation si stanno impegnando per aggiornamenti regolari e un unico runtime multipiattaforma, assicurandosi comunque che le applicazioni .NET Framework precedenti non vengano abbandonate. Il supporto a lungo termine dovrebbe aiutare i team di sviluppo a pianificare i cicli di vita delle applicazioni, scegliendo cosa aggiornare e quando. Puoi iniziare con le anteprime correnti di .NET Core 3, pronte per le versioni 2020.