

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Effettua il refactoring alla versione moderna di .NET e passa a Linux
<a name="net-refactor-linux"></a>

## Panoramica di
<a name="net-refactor-linux-overview"></a>

La modernizzazione delle app.NET Framework legacy può aiutarti a migliorare la sicurezza, le prestazioni e la scalabilità. Un modo efficace per modernizzare le app.NET Framework consiste nel migrarle a una versione .NET moderna (6\$1). Ecco alcuni dei vantaggi principali dello spostamento di queste applicazioni su .NET open source:
+ Per ridurre i costi delle licenze di Windows eseguendole su un sistema operativo Linux
+ Sfrutta la disponibilità dei linguaggi moderni
+ Ottieni prestazioni ottimizzate per l'esecuzione su Linux

Molte organizzazioni utilizzano ancora versioni precedenti di.NET Framework. Ciò può comportare rischi per la sicurezza, poiché le vulnerabilità delle versioni precedenti non vengono più risolte da Microsoft. Microsoft ha interrotto il supporto per le versioni recenti di.NET Framework 4.5.2, 4.6 e 4.6.1. È molto importante valutare i rischi e i vantaggi derivanti dal continuare a utilizzare le versioni precedenti del framework. Per ridurre i rischi e ridurre i costi, può valere la pena investire tempo e sforzi nel refactoring a una versione moderna di.NET.

## Impatto sui costi
<a name="net-refactor-linux-cost"></a>

Prendi in considerazione un tipo di istanza EC2 per uso generico (m5), che offre un equilibrio tra risorse di elaborazione, memoria e rete. Queste istanze sono adatte per una varietà di applicazioni come server Web, database di medie dimensioni e repository di codice sorgente.

Ad esempio, un'istanza m5.xlarge on-demand con 4 v CPUs e 16 GB di memoria su Windows Server (licenza inclusa) negli Stati Uniti orientali (Virginia settentrionale) costa 274,48 dollari al mese. Le stesse risorse su un server Linux costano 140,16 dollari al mese. In questo esempio, si ottiene una riduzione dei costi del 49% quando si migra l'applicazione da.NET Framework a una versione moderna di.NET e si esegue l'applicazione su un server Linux. Il costo può variare in base alle opzioni (ad esempio, tipo di istanza, sistema operativo, storage) scelte quando si seleziona un'istanza [EC2](https://aws.amazon.com/ec2/instance-explorer/?ec2-instances-cards.sort-by=item.additionalFields.category-order&ec2-instances-cards.sort-order=asc&awsf.ec2-instances-filter-category=*all&awsf.ec2-instances-filter-processors=*all&awsf.ec2-instances-filter-accelerators=*all&awsf.ec2-instances-filter-capabilities=*all). Puoi ottimizzare ulteriormente i costi utilizzando [Savings Plans](https://docs.aws.amazon.com/savingsplans/latest/userguide/what-is-savings-plans.html) o [Reserved Instances.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-reserved-instances.html) Per maggiori dettagli, utilizza per [Calcolatore dei prezzi AWS](https://calculator.aws/#/)eseguire le stime dei costi. Per le istanze incluse in Windows, il costo della licenza è di [0,046 USD per vCPU all'ora, indipendentemente dal modello di prezzo.](https://aws.amazon.com/ec2/dedicated-hosts/pricing/#Pricing_for_Dedicated_Hosts)

Il trasferimento di queste applicazioni.NET Framework su una versione moderna di .NET richiede l'impegno degli sviluppatori. È necessario valutare le applicazioni e le relative dipendenze per verificare se sono compatibili con la versione della piattaforma di destinazione. [AWS Porting Assistant for .NET](https://aws.amazon.com/blogs/aws/announcing-the-porting-assistant-for-net/) è uno strumento di assistenza che analizza le applicazioni.NET Framework e genera una valutazione della compatibilità.NET, aiutandoti a portare più rapidamente le tue applicazioni per renderle compatibili con Linux. Porting Assistant for .NET identifica le incompatibilità con.NET, trova i sostituti noti e genera una valutazione dettagliata della compatibilità. Dopo aver effettuato il porting della soluzione, è necessario apportare modifiche manuali al codice affinché il progetto venga compilato correttamente con le dipendenze. In questo modo si riduce lo sforzo manuale necessario per modernizzare le applicazioni su Linux. Se la tua applicazione supporta processori ARM, il passaggio a Linux sblocca la possibilità di utilizzare le istanze Graviton. Questo può aiutarvi a ottenere un ulteriore 20% in termini di ulteriori riduzioni dei costi. Per ulteriori informazioni, consulta [Powering .NET 5 con AWS Graviton2: Benchmarks](https://aws.amazon.com/blogs/compute/powering-net-5-with-aws-graviton2-benchmark-results/) nel Compute Blog. AWS 

Esistono altri strumenti, come [AWS Toolkit for .NET Refactoring e .NET](https://docs.aws.amazon.com/tk-dotnet-refactoring/latest/userguide/what-is-tk-dotnet-refactoring.html) [Upgrade Assistant, che possono aiutarti a portare le applicazioni legacy di .NET](https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview) framework su .NET moderno.

## Suggerimenti per l’ottimizzazione dei costi
<a name="net-refactor-linux-rec"></a>

Per migrare le app.NET Framework, procedi come segue:

1. **Prerequisiti**: per utilizzare Porting Assistant for .NET, è necessario installare.NET 5\$1 sul computer su cui si intende analizzare il codice sorgente dell'applicazione. Le risorse sulla macchina devono avere una velocità di GHz elaborazione minima di 1,8, 4 GB di memoria e 5 GB di spazio di archiviazione. Per ulteriori informazioni, vedere [Prerequisiti](https://docs.aws.amazon.com/portingassistant/latest/userguide/porting-assistant-prerequisites.html) nella documentazione di Porting Assistant for .NET.

1. **Valutazione**: scarica Porting Assistant for .NET come [file eseguibile](https://s3.us-west-2.amazonaws.com/aws.portingassistant.dotnet.download/latest/windows/Porting-Assistant-Dotnet.exe) (download). Puoi scaricare e installare lo strumento sul tuo computer per avviare la valutazione delle tue applicazioni. La pagina di valutazione contiene progetti e pacchetti trasferiti APIs che sono incompatibili con la versione moderna di .NET. Per questo motivo, dopo la valutazione si verificano errori di compilazione nella soluzione. Puoi visualizzare o scaricare i risultati della valutazione in un file CSV. Per ulteriori informazioni, consulta [Port a solution nella documentazione](https://docs.aws.amazon.com/portingassistant/latest/userguide/porting-assistant-port.html) di Porting Assistant for .NET.

1. **Rifattorizzazione**: dopo aver valutato l'applicazione, è possibile trasferire i progetti alla versione del framework di destinazione. Quando esegui il porting di una soluzione, i file di progetto e parte del codice verranno modificati dal Porting Assistant. Puoi controllare i log per rivedere le modifiche al codice sorgente. Nella maggior parte dei casi, il codice richiederà uno sforzo aggiuntivo per completare la migrazione e i test necessari per renderlo pronto per la produzione. A seconda dell'applicazione, alcune delle modifiche possono includere l'Entity Framework, l'identità e l'autenticazione. Per ulteriori informazioni, consulta [Port a solution](https://docs.aws.amazon.com/portingassistant/latest/userguide/porting-assistant-port.html) nella documentazione di Porting Assistant for .NET.

Questo è il primo passo per modernizzare le applicazioni in container. Potrebbero esserci diversi fattori aziendali e tecnici per modernizzare le app.NET Framework in contenitori Linux. Uno dei fattori più importanti è la riduzione del costo totale di proprietà grazie al passaggio da un sistema operativo Windows a Linux. Ciò riduce i costi di licenza durante la migrazione dell'applicazione a una versione multipiattaforma di.NET e ai contenitori per ottimizzare l'utilizzo delle risorse.

Dopo il trasferimento dell'applicazione su Linux, è possibile [AWS App2Container](https://aws.amazon.com/app2container/)utilizzarla per containerizzarla. App2Container utilizza Amazon ECS o Amazon EKS come servizi endpoint su cui puoi distribuire direttamente. App2Container fornisce tutti gli artefatti di distribuzione Infrastructure as Code (IaC) necessari per containerizzare ripetutamente le applicazioni.

## Considerazioni e risorse aggiuntive
<a name="net-refactor-linux-resources"></a>
+ Se disponi di applicazioni basate su VB.NET (un framework legacy del 2002) e desideri portarle su.NET 6, consulta il [post Porta le applicazioni VB.NET legacy su .NET 6.0 con Porting Assistant for .NET sul blog Microsoft Workloads](https://aws.amazon.com/blogs/modernizing-with-aws/port-legacy-vb-net-applications-to-net-6-0-with-porting-assistant-for-net/) on. AWS 
+ Se disponi di applicazioni legacy su Windows Communication Foundation (WCF) e desideri eseguirle sulla versione moderna di .NET, puoi adottare CoreWCF. Per ulteriori informazioni, consulta il post [Modernizing legacy WCF applications to CoreWCF using Porting Assistant for .NET sul blog](https://aws.amazon.com/blogs/modernizing-with-aws/migrate-wcf-apps-to-wcfcore-using-porting-assistant/) Microsoft Workloads on. AWS 
+ Puoi aggiungere porting assistant come estensione all'IDE di Visual Studio. Ciò consente di eseguire tutte le attività necessarie per convertire il codice senza dover passare dallo strumento IDE allo strumento Porting Assistant for .NET. Per ulteriori informazioni, consulta il post sull'[estensione Accelerare la modernizzazione delle applicazioni.NET con Porting Assistant for .NET Visual Studio IDE](https://aws.amazon.com/blogs/modernizing-with-aws/net-modernization-with-pa-vs-ide-extension/) sul blog Microsoft Workloads on. AWS 
+ [AWS Porting Assistant for .NET è ora uno strumento open source](https://aws.amazon.com/blogs/opensource/open-sourcing-the-porting-assistant-for-net/) con il codice sorgente e i componenti di analisi della compatibilità inclusi nella valutazione. Questo può incoraggiare gli sviluppatori a utilizzare e condividere le conoscenze e le best practice relative al porting.NET.
+ È possibile eseguire il porting delle applicazioni framework.NET sulla versione moderna di Linux utilizzando il AWS Toolkit for .NET Refactoring. Per ulteriori informazioni, consulta il post [Accelerare la modernizzazione di.NET con AWS Toolkit for .NET Refactoring sul blog](https://aws.amazon.com/blogs/modernizing-with-aws/aws-toolkit-for-net-refactoring-launch/) Microsoft Workloads on. AWS 
+ È possibile [accelerare la containerizzazione e la migrazione](https://aws.amazon.com/blogs/modernizing-with-aws/containerize-asp-net-core-applications-using-aws-app2container/) delle applicazioni ASP.NET Core da utilizzare. AWS AWS App2Container