Condividi tramite


Quando scegliere .NET Framework per contenitori Docker

Suggerimento

Questo contenuto è un estratto dell'eBook, Architettura di microservizi .NET per applicazioni .NET containerizzati, disponibile in documentazione .NET o come PDF scaricabile gratuitamente leggibile offline.

Architettura di Microservizi .NET per Applicazioni .NET Containerizzate miniatura della copertina dell'eBook.

Anche se .NET 8 offre vantaggi significativi per le nuove applicazioni e i modelli di applicazione, .NET Framework continuerà a essere una scelta ottimale per molti scenari esistenti.

Migrazione di applicazioni esistenti direttamente in un contenitore di Windows Server

È possibile usare i contenitori Docker solo per semplificare la distribuzione, anche se non si creano microservizi. Ad esempio, ad esempio, si vuole migliorare il flusso di lavoro DevOps con Docker. I contenitori possono offrire ambienti di test isolati migliori e possono anche eliminare i problemi di distribuzione causati da dipendenze mancanti quando si passa a un ambiente di produzione. In casi simili, anche se si distribuisce un'applicazione monolitica, è opportuno usare Docker e i contenitori Windows per le applicazioni .NET Framework correnti.

Nella maggior parte dei casi per questo scenario non sarà necessario eseguire la migrazione delle applicazioni esistenti a .NET 8; è possibile usare contenitori Docker che includono .NET Framework tradizionale. Tuttavia, un approccio consigliato consiste nell'usare .NET 8 durante l'estensione di un'applicazione esistente, ad esempio la scrittura di un nuovo servizio in ASP.NET Core.

Uso di librerie .NET di terze parti o pacchetti NuGet non disponibili per .NET 8

Le librerie di terze parti adottano rapidamente .NET Standard, che consente la condivisione del codice in tutte le versioni .NET, tra cui .NET 8. Con .NET Standard 2.0 e versioni successive, la compatibilità della superficie API in framework diversi è diventata notevolmente più grande. Ancora di più, .NET Core 2.x e le applicazioni più recenti possono anche fare riferimento direttamente alle librerie .NET Framework esistenti (vedere .NET Framework 4.6.1 che supporta .NET Standard 2.0).

Inoltre, Windows Compatibility Pack estende la superficie API disponibile per .NET Standard 2.0 in Windows. Questo pacchetto consente di ricompilare la maggior parte del codice esistente in .NET Standard 2.x con poche o nessuna modifica, per l'esecuzione in Windows.

Tuttavia, anche con tale progressione eccezionale da .NET Standard 2.0 e .NET Core 2.1 o versione successiva, potrebbero verificarsi casi in cui alcuni pacchetti NuGet necessitano di Windows per essere eseguiti e potrebbero non supportare .NET Core o versioni successive. Se questi pacchetti sono fondamentali per l'applicazione, sarà necessario usare .NET Framework nei contenitori windows.

Uso di tecnologie .NET non disponibili per .NET 8

Alcune tecnologie .NET Framework non sono disponibili in .NET 8. Alcuni di essi potrebbero diventare disponibili nelle versioni successive, ma altri non soddisfano i nuovi modelli di applicazione destinati a .NET Core e potrebbero non essere mai disponibili.

L'elenco seguente mostra la maggior parte delle tecnologie non disponibili in .NET 8:

  • ASP.NET Web Form. Questa tecnologia è disponibile solo in .NET Framework. Attualmente non sono previsti piani per portare ASP.NET Web Form a .NET o versione successiva.

  • Servizi correlati al flusso di lavoro. Windows Workflow Foundation (WF), Servizi flusso di lavoro (WCF + WF in un singolo servizio) e WCF Data Services (in precedenza noto come ADO.NET Data Services) sono disponibili solo in .NET Framework. Attualmente non sono previsti piani per portarli a .NET 8.

Oltre alle tecnologie elencate nella roadmap ufficiale di .NET, altre funzionalità potrebbero essere convertite nella nuova piattaforma .NET unificata. È possibile prendere in considerazione la partecipazione alle discussioni su GitHub in modo che la voce possa essere ascoltata. Se si ritiene che manca qualcosa, segnalare un nuovo problema nel repository GitHub dotnet/runtime .

Uso di una piattaforma o di un'API che non supporta .NET 8

Alcune piattaforme Microsoft e di terze parti non supportano .NET 8. Ad esempio, alcuni servizi di Azure forniscono un SDK che non è ancora disponibile per l'uso in .NET 8. La maggior parte degli SDK di Azure dovrebbe essere eventualmente portata a .NET 8/.NET Standard, ma alcuni potrebbero non esserlo per diversi motivi. È possibile visualizzare gli SDK di Azure disponibili nella pagina Versioni più recenti di Azure SDK .

Nel frattempo, se qualsiasi piattaforma o servizio in Azure non supporta ancora .NET 8 con l'API client, è possibile usare l'API REST equivalente dal servizio di Azure o dall'SDK client in .NET Framework.

Conversione dell'applicazione ASP.NET esistente in .NET 8

.NET Core è un passo avanti rivoluzionario rispetto a .NET Framework. Offre una serie di vantaggi rispetto a .NET Framework a livello di produttività e prestazioni e dal supporto multipiattaforma alla soddisfazione degli sviluppatori.

Risorse aggiuntive