.NET è un framework di sviluppo creato da Microsoft, inizialmente lanciato nel 2002, concepito principalmente per supportare le applicazioni Windows. Come abbiamo spiegato nell’articolo sulle differenze tra le versioni di .NET, nel corso degli anni Microsoft ha riconosciuto l’importanza della compatibilità cross-platform. A partire dal 2016, con il rilascio di .NET Core, l’azienda di Redmond ha virato sul concetto di multipiattaforma, consentendo la creazione di applicazioni in grado di funzionare non solo su Windows, ma anche su macOS e Linux.
A partire poi da .NET 5 (novembre 2020), Microsoft ha unito .NET Core e .NET Framework in una singola piattaforma, continuando a supportare lo sviluppo cross-platform. Grazie a quella innovazione, i programmatori hanno finalmente potuto beneficiare della possibilità di scrivere codice capace di funzionare allo stesso modo su desktop, server, mobile o cloud, così come su Windows, Linux, macOS, Android e iOS. Il balzo in avanti sul piano delle prestazioni ha permesso di consegnare agli utenti applicazioni moderne in grado di assicurare esperienze d’uso fluide e appaganti.
Amazon AWS insegna a passare a Linux
I tecnici di Amazon AWS spiegano che oggi, una delle motivazioni principali per migrare le applicazioni .NET Framework a una versione moderna di .NET, è la possibilità di ridurre i costi di licenza di Windows, eseguendo le applicazioni su un sistema operativo GNU/Linux. Utilizzare Linux consente infatti di abbattere significativamente i costi di licenza, che su Windows possono risultare elevati.
Nel documento Refactor to modern .NET and move to Linux, Amazon cita un esempio pratico: l’istanza m5.xlarge di un server cloud con 4 vCPU e 16 GB di memoria RAM, creata sulla piattaforma AWS, costa circa 275 dollari al mese se basata su Windows Server. Scegliendo Linux, pur mantenendo le medesime risorse hardware, il costo mensile scende a poco più di 140 dollari.
La riduzione dei costi del 50% non può non fungere da sprone, per tante realtà professionali e aziendali, a migrare le applicazioni basate su .NET Framework verso una versione moderna della piattaforma .NET, per poi eseguirle su una macchina Linux. A maggior ragione, se già si utilizzassero applicazioni basate su .NET Core o su .NET 6+, secondo Amazon non vi sarebbe motivo per restare ancora ancorati a Windows Server e pagare inutilmente per i costi di licenza.
I benefici della migrazione a .NET moderno
Una delle motivazioni principali per migrare le applicazioni .NET Framework a una versione moderna di .NET è, come abbiamo già rimarcato, la possibilità di ridurre i costi di licenza di Windows, eseguendo le applicazioni su un sistema Linux.
Le versioni recenti di .NET supportano inoltre molti più linguaggi di programmazione, inclusi C# e F#, ed offrono prestazioni migliorate – grazie anche a una più efficiente gestione del codice – rispetto alle versioni precedenti del framework.
È importante tenere presente che le versioni moderne di .NET sono progettate per ottimizzare le prestazioni quando eseguite su piattaforme Linux. Questo consente alle applicazioni di ottenere un rendimento superiore, in particolare su server con risorse limitate.
Il passaggio alle release supportate di .NET consente anche di migliorare l’aspetto della sicurezza: l’assenza di supporto da parte di Microsoft per le versioni più vecchie, come .NET Framework 4.5.2, 4.6 e 4.6.1, rappresenta un grave rischio. Vulnerabilità non più corrette nelle versioni precedenti espongono le applicazioni a potenziali attacchi.
Come passare a Linux con Amazon Porting Assistant per .NET e Amazon Q Developer
Amazon Porting Assistant per .NET e Amazon Q Developer sono strumenti progettati da AWS per facilitare la migrazione delle applicazioni, ma hanno obiettivi e funzionalità distinti.
Come spieghiamo nel seguito, mentre Amazon Porting Assistant per .NET è focalizzato sulla migrazione verso AWS e sulla compatibilità con .NET Core, Amazon Q Developer si concentra sulla trasformazione delle applicazioni .NET per garantire piena compatibilità con Linux, sfruttando l’intelligenza artificiale per automatizzare molti aspetti del processo.
Cos’è e come funziona Amazon Porting Assistant per .NET
Amazon Porting Assistant è uno strumento software pensato per semplificare la transazione verso .NET Core. In particolare, facilita il processo di porting delle applicazioni esistenti per renderle compatibili e ottimizzate per l’ambiente cloud di AWS.
L’applicazione scansiona i progetti .NET esistenti per identificare le parti del codice che necessitano di essere modificate o aggiornate. Fornisce inoltre raccomandazioni su come sostituire API (Application Programming Interfaces) obsolete e adattare il codice per sfruttare le migliori pratiche AWS. Integra infine funzionalità automatizzate per convertire porzioni di codice e generare report sul lavoro da svolgere.
Amazon Q Developer utilizza l’AI per facilitare l’aggiornamento delle applicazioni .NET
Con Amazon Q Developer, AWS mira ad offrire agli sviluppatori una soluzione innovativa per il porting delle applicazioni .NET basate su Windows verso applicazioni compatibili con Linux, utilizzando un refactoring alimentato dall’intelligenza artificiale generativa.
Oltre a consentire la migrazione delle applicazioni verso le più recenti versioni di .NET, Amazon Q aiuta anche nell’aggiornamento delle versioni obsolete delle applicazioni .NET, portandole a versioni più aggiornate e compatibili con un maggior numero di piattaforme.
Il processo di trasformazione di una soluzione o di un progetto .NET con Amazon Q è un percorso strutturato che inizia con un’analisi approfondita del codice base. Amazon Q esamina il codice e identifica le modifiche necessarie per adattare l’applicazione a Linux. Il sistema genera quindi un piano di trasformazione, suddividendo il progetto in gruppi di codice che possono essere via via visualizzati. Un “gruppo di codice” si riferisce a un progetto e a tutte le sue dipendenze che insieme generano un’unità di codice compilabile, come una libreria a collegamento dinamico (DLL) o un eseguibile.
È interessante evidenziare che, una volta completata la trasformazione, Amazon Q fornisce un riepilogo delle modifiche proposte in un formato di confronto (diff): lo sviluppatore può esaminarle e verificarle attentamente prima di accettarle.
Credit immagine in apertura: iStock.com – ATHVisions