

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à.

# Trasformazione delle applicazioni .NET con Amazon Q Developer
<a name="transform-dotnet-IDE"></a>

Amazon Q Developer può trasferire le applicazioni .NET basate su Windows in applicazioni .NET multipiattaforma compatibili con Linux tramite un flusso di lavoro di rifattorizzazione basato sull’IA generativa. Amazon Q ti aiuta inoltre ad aggiornare versioni obsolete di applicazioni .NET multipiattaforma a versioni più recenti. 

Per trasformare una soluzione o un progetto.NET, Amazon Q analizza la tua codebase, determina gli aggiornamenti necessari per il trasferimento dell’applicazione e genera un piano di trasformazione prima dell’inizio della trasformazione. Durante questa analisi, Amazon Q suddivide la soluzione o il progetto .NET in gruppi di codice che è possibile visualizzare nel piano di trasformazione. Un *gruppo di codice* è un progetto con tutte le sue dipendenze che insieme generano un’unità di codice compilabile come una DLL (Dynamic Link Library) o un eseguibile. 

Durante la trasformazione, Amazon Q fornisce step-by-step aggiornamenti in un Transformation Hub in cui è possibile monitorare i progressi. Dopo aver trasformato l’applicazione, Amazon Q genera un riepilogo con le modifiche proposte in una visualizzazione delle differenze per consentirti, facoltativamente, di verificare le modifiche prima di accettarle. Quando accetti le modifiche, Amazon Q effettua aggiornamenti immediati alla tua soluzione o progetto .NET. 

Amazon Q esegue quattro attività principali per portare le applicazioni .NET su Linux:
+ **Aggiorna la versione del linguaggio**: sostituisce le versioni di codice C\$1 obsolete con versioni C\$1 compatibili con Linux.
+ **Migra da .NET Framework a .NET multipiattaforma**: migra progetti e pacchetti da .NET Framework dipendenti da Windows a .NET multipiattaforma compatibili con Linux.
+ **Riscrive il codice per la compatibilità con Linux:** rifattorizza e riscrive componenti di codice obsoleti e inefficienti.
+ **Genera un report sulla compatibilità con Linux**: per le attività con intervallo aperto in cui è necessario l’intervento dell’utente per creare ed eseguire il codice su Linux, Amazon Q fornisce un report dettagliato delle azioni necessarie per configurare l’applicazione dopo la trasformazione.

Per ulteriori informazioni su come Amazon Q esegue le trasformazioni .NET, consulta [Come funziona](how-dotnet-transformation-works.md). 

**Topics**
+ [

## Quote
](#quotas-dotnet-transformation)
+ [

# Porting di un’applicazione .NET con Amazon Q Developer in Visual Studio
](port-dotnet-application.md)
+ [

# In che modo Amazon Q Developer trasforma le applicazioni .NET
](how-dotnet-transformation-works.md)
+ [

# Risoluzione dei problemi relativi alle trasformazioni .NET nell’IDE
](troubleshooting-dotnet-transformation-IDE.md)

## Quote
<a name="quotas-dotnet-transformation"></a>

Le trasformazioni .NET con Amazon Q nell’IDE mantengono le seguenti quote: 
+ **Righe di codice per processo**: il numero massimo di righe di codice che Amazon Q può trasformare in un determinato processo di trasformazione. Questo è anche il limite totale mensile per le trasformazioni .NET. 
+ **Processi simultanei**: il numero massimo di processi di trasformazione che è possibile eseguire nello stesso momento. Questa quota si applica a tutte le trasformazioni nell’IDE, incluse le trasformazioni [Java](transform-java.md).


| Risorsa | Quote | 
| --- | --- | 
| Righe di codice per processo | 100.000 righe di codice | 
| Processi simultanei |  1 processo per utente 2 offerte di lavoro per AWS account  | 

# Porting di un’applicazione .NET con Amazon Q Developer in Visual Studio
<a name="port-dotnet-application"></a>

Completa queste fasi per eseguire il porting di un’applicazione .NET basata su Windows su un’applicazione .NET multipiattaforma compatibile con Linux con Amazon Q Developer in Visual Studio. 

## Fase 1: prerequisiti
<a name="transform-dotnet-prerequisites"></a>

Prima di continuare, assicurati di aver completato le fasi in [Configurazione di Amazon Q nell’IDE in uso](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-in-IDE.html).

Assicurati che siano soddisfatti i seguenti prerequisiti dell’applicazione prima di avviare un processo di trasformazione .NET:
+ L’applicazione contiene solo progetti .NET scritti in C\$1.
+ L'applicazione ha solo dipendenze di pacchetti create da Microsoft NuGet 
+ L’applicazione utilizza solo caratteri UTF-8. Se l’applicazione utilizza caratteri non UTF-8, Amazon Q tenterà comunque di trasformare il codice.
+ Se l’applicazione dipende dagli Internet Information Services (IIS), vengono utilizzate solo le configurazioni IIS predefinite
+ Amazon Q valuterà il tipo di progetto selezionato e le sue dipendenze per creare un gruppo di codice. Il gruppo di codice può avere solo i seguenti tipi di progetto:
  + Applicazione alla console
  + Libreria della classe 
  + API Web
  + Servizio WCF
  + Livelli di logica aziendale di Model View Controller (MVC) e Single Page Application (SPA)
  + Test dei progetti

**Nota**  
Amazon Q non supporta la trasformazione di componenti a livello di interfaccia utente come Razor viste o file WebForms ASPX. Se Amazon Q rileva componenti a livello di interfaccia utente nella soluzione o progetto, eseguirà una trasformazione parziale escludendo i componenti del livello dell’interfaccia utente e potrebbe essere necessario rifattorizzare ulteriormente per rendere il codice compilabile sulla versione .NET di destinazione.

## Fase 2: trasformare l’applicazione
<a name="transform-dotnet-app"></a>

Per trasformare una soluzione o un progetto .NET, completa la procedura seguente:

1. Apri una qualsiasi soluzione o progetto basato su C\$1 in Visual Studio che desideri trasformare. 

1. Apri un qualsiasi file di codice C\$1 nell’editor. 

1. Scegli **Esplora soluzioni**.

1. Da Esplora soluzioni, fai clic con il pulsante destro del mouse sulla soluzione o sul progetto che desideri trasformare, quindi scegli **Esegui il porting con Amazon Q Developer**.

1. Viene visualizzata la finestra **Esegui il porting con Amazon Q Developer**. 

   La soluzione o il progetto selezionato verrà scelto nel menu a discesa **Scegli una soluzione o un progetto da trasformare**. Puoi espandere il menu per scegliere una soluzione o un progetto diverso da trasformare. 

   Nel menu a discesa **Scegli una destinazione .NET**, scegli la versione .NET a cui desideri eseguire l’aggiornamento.

1. Scegli **Conferma** per avviare la trasformazione.

1. Amazon Q inizia a trasformare il codice. Puoi visualizzare il piano di trasformazione generato per le informazioni dettagliate su come trasformerà l’applicazione.

   Si apre un **Hub di trasformazione** in cui è possibile monitorare l’avanzamento per tutta la durata della trasformazione. Dopo che Amazon Q ha completato la fase **In attesa dell’avvio della trasformazione del processo**, puoi abbandonare il progetto o la soluzione per tutta la durata della trasformazione.

1. Una volta completata la trasformazione, accedi all’**Hub di trasformazione** e scegli **Visualizza differenze** per esaminare le modifiche proposte da Amazon Q in una visualizzazione diff. 

1. Scegli **Visualizza il riepilogo della trasformazione del codice** per informazioni dettagliate sulle modifiche apportate da Amazon Q. Puoi anche scaricare il riepilogo della trasformazione selezionando **Scarica il riepilogo come .md**. 

   Se uno qualsiasi degli elementi nella tabella dei **Gruppi di codice** richiede l’immissione dello stato del trasferimento su Linux, è necessario aggiornare manualmente alcuni file per eseguire l’applicazione su Linux. 

   1. Dal menu a discesa **Azioni**, scegli **Scarica il report sulla fattibilità di Linux**. 

   1. Viene aperto un file .csv con tutte le modifiche al progetto o alla soluzione che devi completare prima che l’applicazione sia compatibile con Linux. Include il progetto e il file che devono essere aggiornati, una descrizione dell’elemento da aggiornare e una spiegazione del problema. Usa la colonna **Suggerimento** per trovare idee su come risolvere un problema relativo alla disponibilità di Linux. 

1. Per aggiornare i file esistenti, scegli **Accetta modifiche** dal menu a discesa **Azioni**. 

# In che modo Amazon Q Developer trasforma le applicazioni .NET
<a name="how-dotnet-transformation-works"></a>

Consulta le seguenti sezioni per informazioni dettagliate su come funziona la trasformazione .NET con Amazon Q Developer. 

## Analisi dell’applicazione e generazione di un piano di trasformazione
<a name="analyzing-app-generating-plan"></a>

Prima che inizi una trasformazione, Amazon Q crea il codice localmente per garantire che sia compilabile e configurato correttamente per la trasformazione. Amazon Q carica quindi il codice in un ambiente di compilazione sicuro e crittografato AWS, analizza la base di codice e determina gli aggiornamenti necessari per il porting dell'applicazione. 

Durante questa analisi, Amazon Q suddivide la soluzione o il progetto .NET in gruppi di codice. Un gruppo di codice è un progetto con tutte le sue dipendenze che insieme generano un’unità di codice compilabile come una DLL (Dynamic Link Library) o un eseguibile. Anche se non hai selezionato tutte le dipendenze del progetto da trasformare, Amazon Q determina le dipendenze necessarie per creare i progetti selezionati e trasforma anch’esse, in modo che l’applicazione trasformata sia compilabile e pronta per l’uso.

Dopo aver analizzato il codice, Amazon Q genera un piano di trasformazione che delinea le modifiche proposte da apportare, incluso un elenco di gruppi di codice e le relative dipendenze che verranno trasformate. 

## Trasformazioni nell’applicazione
<a name="transforming-app"></a>

Per iniziare la trasformazione, Amazon Q crea nuovamente il codice in un ambiente di compilazione sicuro per garantire che sia compilabile in remoto. Amazon Q inizia quindi il porting dell’applicazione. Funziona dal basso verso l’alto, a partire dal livello di dipendenza più basso. Se Amazon Q riscontra un problema con il porting di una dipendenza, interrompe la trasformazione e fornisce informazioni sulla causa dell’errore. 

La trasformazione include i seguenti aggiornamenti dell’applicazione: 
+ Sostituzione di versioni di codice C\$1 obsolete con versioni C\$1 compatibili con Linux
+ Aggiornamento di .NET Framework a .NET multipiattaforma, tra cui: 
  + Identificazione e sostituzione iterativa di pacchetti, librerie e APIs
  + Aggiornamento e sostituzione di pacchetti e NuGet APIs
  + Transizione al runtime multipiattaforma
  + Configurazione del middleware e aggiornamento delle configurazioni di runtime
  + Sostituzione di pacchetti privati o di terze parti 
  + Gestione dei componenti IIS e WCF 
  + Debugging errori di compilazione
+ Riscrittura del codice per la compatibilità con Linux, inclusa la rifattorizzazione e la riscrittura di codice obsoleto e inefficiente per trasferire il codice esistente 

## Revisione del riepilogo della trasformazione e accettazione delle modifiche
<a name="reviewing-summary-accepting-changes"></a>

Una volta completata la trasformazione, Amazon Q fornisce un riepilogo della trasformazione con informazioni sugli aggiornamenti proposti all'applicazione, incluso il numero di file modificati, pacchetti aggiornati e APIs modificati. Segnala tutte le trasformazioni non riuscite, inclusi i file o le porzioni di file interessati e gli errori riscontrati durante un tentativo di compilazione. Puoi anche visualizzare un riepilogo della compilazione con relativi log per saperne di più sulle modifiche apportate. 

Il riepilogo della trasformazione fornisce anche uno stato del porting di Linux, che indica se è necessario o meno un input aggiuntivo da parte dell’utente per rendere l’applicazione compatibile con Linux. Se uno qualsiasi degli elementi di un gruppo di codice richiede l’input da parte tua, puoi scaricare un report sulla preparazione di Linux contenente considerazioni specifiche per Windows che Amazon Q non è riuscito a risolvere in fase di compilazione. Se è necessario un input per qualsiasi gruppo di codice o file, consulta il report per i dettagli sul tipo di modifica ancora da apportare e, se applicabile, per i suggerimenti su come aggiornare il codice. Queste modifiche devono essere apportate manualmente prima che l’applicazione possa essere eseguita su Linux. 

Puoi esaminare le modifiche proposte apportate da Amazon Q in una visualizzazione differenziale prima di accettarle come aggiornamenti immediati dei file. Dopo aver aggiornato i file e aver risolto tutti gli elementi del report di fattibilità di Linux, l’applicazione è pronta per l’esecuzione su .NET multipiattaforma.

# Risoluzione dei problemi relativi alle trasformazioni .NET nell’IDE
<a name="troubleshooting-dotnet-transformation-IDE"></a>

Utilizza le seguenti sezioni per risolvere i problemi più comuni relativi alle trasformazioni .NET nell’IDE con Amazon Q Developer.

## Come faccio a sapere se un lavoro sta procedendo?
<a name="job-progressing"></a>

Se Amazon Q sembra dedicare molto tempo a una fase di nell’Hub di trasformazione, puoi verificare se il processo è ancora attivo nei log di output. Se vengono generati messaggi di diagnostica, il processo è ancora attivo. 

Per controllare gli output, scegli la scheda **Output** in Visual Studio. Nel menu **Mostra output da:**, scegli **Amazon Q Language Client**.

Nello screenshot seguente viene presentato un esempio degli output generati da Amazon Q durante una trasformazione.

![\[Schermata dell’Hub di trasformazione del codice di Amazon Q Developer, che mostra l’output di Amazon Q Language Client.\]](http://docs.aws.amazon.com/it_it/amazonq/latest/qdeveloper-ug/images/code-transform-troubleshoot4.png)


## Perché alcuni progetti non vengono selezionati per la trasformazione?
<a name="projects-not-selected"></a>

Amazon Q può trasformare solo i tipi di progetto supportati nel linguaggio C\$1. Attualmente, Amazon Q non supporta il porting di componenti o progetti di livello UI scritti nei linguaggi VB.NET o F\$1. Per un elenco dei tipi di progetto supportati e altri prerequisiti per la trasformazione dei tuoi progetti .NET, consulta [Fase 1: prerequisiti](port-dotnet-application.md#transform-dotnet-prerequisites).

## Come posso ottenere assistenza se il mio progetto o la mia soluzione non si sta trasformando?
<a name="get-support"></a>

Se non sei in grado di risolvere i problemi da solo, puoi contattare Supporto o il tuo Account AWS team per inviare un caso di supporto. 

Per ricevere assistenza, fornisci l'ID del processo di trasformazione in modo da AWS poter indagare su un lavoro non riuscito. Per trovare un ID del processo di trasformazione, scegli la scheda **Output** in Visual Studio. Nel menu **Mostra output da:**, scegli **Amazon Q Language Client**.

## Come posso evitare che il mio firewall interferisca con i processi di trasformazione?
<a name="firewall-inteference"></a>

Se l’organizzazione utilizza un firewall, quest’ultimo potrebbe interferire con le trasformazioni in Visual Studio. È possibile disattivare temporaneamente i controlli di sicurezza in Node.js per risolvere i problemi o verificare cosa impedisce l’esecuzione della trasformazione. 

La variabile di ambiente `NODE_TLS_REJECT_UNAUTHORIZED` verifica importanti controlli di sicurezza. L'impostazione `NODE_TLS_REJECT_UNAUTHORIZED` su «0" disabilita il rifiuto da parte di Node.js dei certificati non autorizzati. TLS/SSL Ciò significa:
+ Saranno accettati i certificati autofirmati
+ Saranno consentiti i certificati scaduti
+ Saranno consentiti certificati con nomi host non corrispondenti
+ Eventuali altri errori di convalida dei certificati verranno ignorati

Se il proxy utilizza un autocertificato, è possibile impostare le seguenti variabili di ambiente anziché disabilitarle `NODE_TLS_REJECT_UNAUTHORIZED`:

```
NODE_OPTIONS = —use-openssl-ca
NODE_EXTRA_CA_CERTS = Path/To/Corporate/Certs
```

Altrimenti, è necessario specificare i certificati CA utilizzati dal proxy per disabilitare `NODE_TLS_REJECT_UNAUTHORIZED`.

**Per disabilitare NODE\$1TLS\$1REJECT\$1UNAUTHORIZED su Windows:**

1. Apri il menu Start e cerca le **Variabili di ambiente**.

1. Scegli **Modifica le variabili d’ambiente di sistema**.

1. Nella finestra **Proprietà del sistema**, scegli **Variabili d’ambiente**.

1. In **Variabili di sistema**, scegli **Nuovo**.

1. Imposta il **Nome della variabile** su NODE\$1TLS\$1REJECT\$1UNAUTHORIZED e il **Valore della variabile** su 0.

1. Scegli **OK** per salvare le modifiche.

1. Riavvia Visual Studio.