

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Transformation des applications .NET avec Amazon Q Developer
<a name="transform-dotnet-IDE"></a>

Amazon Q Developer peut transférer vos applications .NET basées sur Windows vers des applications .NET multiplateformes compatibles avec Linux via un flux de travail de refactorisation basé sur l’IA générative. Amazon Q vous permet également de mettre à niveau les versions obsolètes des applications .NET multiplateformes vers des versions plus récentes. 

Pour transformer une solution ou un projet .NET, Amazon Q analyse votre base de code, détermine les mises à jour nécessaires pour porter votre application et génère un plan de transformation avant le début de la transformation. Au cours de cette analyse, Amazon Q divise votre solution ou projet .NET en groupes de codes que vous pouvez consulter dans le plan de transformation. Un *groupe de code* est un projet et toutes ses dépendances qui, ensemble, génèrent une unité de code constructible telle qu’une bibliothèque de liens dynamiques (DLL) ou un exécutable. 

Pendant la transformation, Amazon Q fournit des step-by-step mises à jour dans un hub de transformation où vous pouvez suivre les progrès. Après avoir transformé votre application, Amazon Q génère un résumé des modifications proposées dans une vue comparative afin que vous puissiez éventuellement vérifier les modifications avant de les accepter. Lorsque vous acceptez les modifications, Amazon Q effectue des mises à jour sur place de votre solution ou projet .NET. 

Amazon Q exécute quatre tâches clés pour porter des applications .NET vers Linux :
+ **Met à niveau la version de langage** : remplace les versions obsolètes du code C\$1 par des versions C\$1 compatibles avec Linux.
+ **Migration du .NET Framework vers le .NET multiplateforme** : migre les projets et les packages du .NET Framework dépendant de Windows vers un .NET multiplateforme compatible avec Linux.
+ **Réécrit le code pour assurer la compatibilité avec Linux** : refactorise et réécrit les composants de code obsolètes et inefficaces.
+ **Génère un rapport de compatibilité Linux** : pour les tâches ouvertes nécessitant l’intervention de l’utilisateur pour créer et exécuter le code sous Linux, Amazon Q fournit un rapport détaillé des actions nécessaires pour configurer votre application après la transformation.

Pour plus d’informations sur la manière dont Amazon Q effectue les transformations .NET, consultez [Fonctionnement](how-dotnet-transformation-works.md). 

**Topics**
+ [Quotas](#quotas-dotnet-transformation)
+ [Portage d’une application .NET avec Amazon Q Developer dans Visual Studio](port-dotnet-application.md)
+ [Comment Amazon Q Developer transforme les applications .NET](how-dotnet-transformation-works.md)
+ [Résolution des problèmes liés aux transformations .NET dans l’IDE](troubleshooting-dotnet-transformation-IDE.md)

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

Les transformations .NET avec Amazon Q dans l’IDE maintiennent les quotas suivants : 
+ **Lignes de code par tâche** : nombre maximal de lignes de code qu’Amazon Q peut transformer dans une tâche de transformation donnée. Il s’agit également de la limite totale mensuelle pour les transformations .NET. 
+ **Tâches simultanées** : nombre maximal de tâches de transformation que vous pouvez exécuter en même temps. Ce quota s’applique à toutes les transformations de l’IDE, y compris les [transformations Java](transform-java.md).


| Ressource | Quotas | 
| --- | --- | 
| Lignes de code par tâche | 100 000 lignes de code | 
| Tâches simultanées |  1 tâche par utilisateur 2 offres d'emploi par AWS compte  | 

# Portage d’une application .NET avec Amazon Q Developer dans Visual Studio
<a name="port-dotnet-application"></a>

Procédez comme suit pour porter une application .NET basée sur Windows vers une application .NET multiplateforme compatible avec Linux avec Amazon Q Developer dans Visual Studio. 

## Étape 1 : Prérequis
<a name="transform-dotnet-prerequisites"></a>

Avant de continuer, vérifiez que vous avez bien terminé les étapes de [Configuration d’Amazon Q dans votre IDE](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-in-IDE.html).

Assurez-vous que les conditions préalables suivantes sont remplies pour votre application avant de commencer une tâche de transformation .NET :
+ Votre application contient uniquement des projets .NET écrits en C\$1.
+ Votre application comporte uniquement des dépendances de package créées par Microsoft NuGet 
+ Votre application utilise uniquement des caractères UTF-8. Si votre application utilise des caractères non UTF-8, Amazon Q essaiera tout de même de transformer votre code.
+ Si votre application dépend des services Internet (IIS), seules les configurations IIS par défaut sont utilisées
+ Amazon Q évaluera le type de projet que vous aurez sélectionné et ses dépendances afin de créer un groupe de code. Votre groupe de code ne peut contenir que les types de projets suivants :
  + Application de console
  + Bibliothèque de classes 
  + API Web
  + Service WCF
  + Couches de logique métier du Model View Controller (MVC) et de l’application Single Page (SPA)
  + Projets tests

**Note**  
Amazon Q ne prend pas en charge la transformation des composants de la couche d'interface utilisateur tels que les Razor vues ou les fichiers WebForms ASPX. Si Amazon Q détecte des composants de couche d’interface utilisateur dans votre solution ou votre projet, il effectuera une transformation partielle en excluant les composants de la couche d’interface utilisateur, et vous devrez peut-être refactoriser davantage pour que votre code puisse être compilé sur la version .NET cible.

## Étape 2 : transformation de votre application
<a name="transform-dotnet-app"></a>

Pour transformer votre solution ou votre projet .NET, procédez comme suit :

1. Ouvrez une solution ou un projet basé sur C\$1 dans Visual Studio que vous souhaitez transformer. 

1. Ouvrez un fichier de code C\$1 dans l’éditeur. 

1. Choisissez **Explorateur de solutions**.

1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur une solution ou un projet que vous souhaitez transformer, puis choisissez **Porter avec Amazon Q Developer**.

1. La fenêtre **Porter avec Amazon Q Developer** s’affiche. 

   La solution ou le projet que vous avez sélectionné sera choisi dans le menu déroulant **Choisir une solution ou un projet à transformer**. Vous pouvez développer le menu pour choisir une autre solution ou un autre projet à transformer. 

   Dans le menu déroulant **Choisir une cible .NET**, sélectionnez la version .NET vers laquelle vous souhaitez effectuer la mise à niveau.

1. Choisissez **Confirmer** pour commencer la transformation.

1. Amazon Q commence à transformer votre code. Vous pouvez consulter le plan de transformation qu’il génère pour plus de détails sur la manière dont il transformera votre application.

   Un **Hub de transformation** s’ouvre et vous permet de suivre les progrès pendant toute la durée de la transformation. Une fois qu’Amazon Q a terminé l’étape **Attente du démarrage de la transformation de la tâche**, vous pouvez quitter le projet ou la solution pendant toute la durée de la transformation.

1. Une fois la transformation terminée, accédez au **Hub de transformation** et choisissez **Afficher les comparaisons** pour consulter les modifications proposées par Amazon Q dans une vue comparative. 

1. Choisissez **Afficher le résumé de la transformation du code** pour obtenir des informations détaillées sur les modifications apportées par Amazon Q. Vous pouvez également charger le résumé de la transformation en choisissant **Charger le résumé au format .md**. 

   Si l’un des éléments du tableau **Groupes de code** nécessite une saisie sous le statut de portage Linux, vous devez mettre à jour manuellement certains fichiers pour exécuter votre application sous Linux. 

   1. Dans le menu déroulant **Actions**, choisissez **Charger le rapport de préparation à Linux**. 

   1. Un fichier .csv s’ouvre avec toutes les modifications de votre projet ou de votre solution qui doivent être effectuées pour que votre application soit compatible avec Linux. Il inclut le projet et le fichier qui doivent être mis à jour, une description de l’élément à mettre à jour et une explication du problème. Utilisez la colonne **Recommandation** pour trouver des idées sur la manière de résoudre un problème de préparation à Linux. 

1. Pour mettre à jour vos fichiers sur place, choisissez **Accepter les modifications** dans le menu déroulant **Actions**. 

# Comment Amazon Q Developer transforme les applications .NET
<a name="how-dotnet-transformation-works"></a>

Consultez les sections suivantes pour en savoir plus sur le fonctionnement de la transformation .NET avec Amazon Q Developer. 

## Analyse de votre application et génération d’un plan de transformation
<a name="analyzing-app-generating-plan"></a>

Avant le début d’une transformation, Amazon Q crée votre code localement pour s’assurer qu’il est compilable et configuré correctement pour la transformation. Amazon Q télécharge ensuite votre code dans un environnement de génération sécurisé et crypté AWS, analyse votre base de code et détermine les mises à jour nécessaires pour porter votre application. 

Au cours de cette analyse, Amazon Q divise votre solution ou projet .NET en groupes de code. Un groupe de code est un projet et toutes ses dépendances qui, ensemble, génèrent une unité de code constructible telle qu’une bibliothèque de liens dynamiques (DLL) ou un exécutable. Même si vous n’avez pas sélectionné toutes les dépendances du projet à transformer, Amazon Q détermine les dépendances nécessaires pour créer les projets que vous avez sélectionnés et les transforme également, afin que votre application transformée puisse être créée et prête à être utilisée.

Après avoir analysé votre code, Amazon Q génère un plan de transformation qui décrit les modifications proposées, y compris une liste des groupes de code et de leurs dépendances qui seront transformés. 

## Transformation de votre application
<a name="transforming-app"></a>

Pour démarrer la transformation, Amazon Q crée à nouveau votre code dans l’environnement de génération sécurisé afin de s’assurer qu’il pourra être créé à distance. Amazon Q commence alors le portage de votre application. Cela fonctionne de façon ascendante, en commençant par le niveau de dépendance le plus bas. Si Amazon Q rencontre un problème lors du portage d’une dépendance, il arrête la transformation et fournit des informations sur la cause de l’erreur. 

La transformation inclut les mises à jour suivantes de votre application : 
+ Remplacement des versions C\$1 obsolètes du code par des versions C\$1 compatibles avec Linux
+ Mise à niveau de .NET Framework vers .NET multiplateforme, y compris : 
  + Identifier et remplacer de manière itérative les packages, les bibliothèques et APIs
  + Mise à niveau et remplacement de NuGet packages et APIs
  + Transition vers un environnement d’exécution multiplateforme
  + Configuration de l’intergiciel et mise à jour des configurations d’exécution
  + Remplacement de packages privés ou tiers 
  + Gestion des composants IIS et WCF 
  + Débogage des erreurs de compilation
+ Réécriture de code pour la compatibilité avec Linux, notamment refactorisation et réécriture de code obsolète et inefficace pour porter le code existant 

## Révision du résumé de la transformation et acceptation des modifications
<a name="reviewing-summary-accepting-changes"></a>

Une fois la transformation terminée, Amazon Q fournit un résumé de la transformation contenant des informations sur les mises à jour proposées pour votre application, notamment le nombre de fichiers modifiés, de packages mis à jour et APIs modifiés. Il signale toute transformation infructueuse, y compris les fichiers ou parties de fichiers concernés, ainsi que les erreurs rencontrées lors d’une tentative de compilation. Vous pouvez également consulter un résumé de build avec les journaux de build pour en savoir plus sur les modifications apportées. 

Le résumé de la transformation fournit également un statut du portage Linux, qui indique si une intervention supplémentaire de l’utilisateur est nécessaire pour rendre l’application compatible avec Linux. Si l’un des éléments d’un groupe de code nécessite une saisie de votre part, vous téléchargez un rapport de préparation à Linux qui contient des considérations spécifiques à Windows auxquelles Amazon Q n’a pas pu répondre au moment de la création. Si des informations sont nécessaires pour des groupes de code ou des fichiers, consultez le rapport pour plus de détails sur le type de modification qui doit encore être apporté et, le cas échéant, pour obtenir des recommandations sur la manière de mettre à jour votre code. Ces modifications doivent être effectuées manuellement avant que votre application puisse être exécutée sous Linux. 

Vous pouvez consulter les modifications proposées par Amazon Q dans un affichage différentiel avant de les accepter en tant que mises à jour sur place de vos fichiers. Après avoir mis à jour vos fichiers et traité tous les éléments du rapport de préparation à Linux, votre application est prête à fonctionner sur .NET multiplateforme.

# Résolution des problèmes liés aux transformations .NET dans l’IDE
<a name="troubleshooting-dotnet-transformation-IDE"></a>

Utilisez les sections suivantes pour résoudre les problèmes courants liés aux transformations .NET dans l’IDE avec Amazon Q Developer.

## Comment savoir si une tâche progresse ?
<a name="job-progressing"></a>

Si Amazon Q semble passer beaucoup de temps sur une étape du Hub de transformation, vous pouvez vérifier si la tâche est toujours active dans les journaux de sortie. Si des messages de diagnostic sont générés, la tâche est toujours active. 

Pour vérifier les sorties, choisissez l’onglet **Sortie** dans Visual Studio. Dans le menu **Afficher la sortie depuis :**, choisissez **Client de langage Amazon Q**.

La capture d’écran suivante illustre un exemple des sorties générées par Amazon Q lors d’une transformation.

![\[Capture d’écran du Hub de transformation du code d’Amazon Q Developer, montrant le résultat du client de langage Amazon Q.\]](http://docs.aws.amazon.com/fr_fr/amazonq/latest/qdeveloper-ug/images/code-transform-troubleshoot4.png)


## Pourquoi certains projets ne sont-ils pas sélectionnés pour la transformation ?
<a name="projects-not-selected"></a>

Amazon Q peut uniquement transformer les types de projets pris en charge en langage C\$1. Actuellement, Amazon Q ne prend pas en charge le portage de composants de la couche d’interface utilisateur ou de projets écrits dans les langages VB.NET ou F\$1. Pour obtenir la liste des types de projets pris en charge et les autres conditions préalables à la transformation de vos projets .NET, consultez [Étape 1 : Prérequis](port-dotnet-application.md#transform-dotnet-prerequisites).

## Comment puis-je obtenir de l’aide si mon projet ou ma solution ne se transforme pas ?
<a name="get-support"></a>

Si vous n'êtes pas en mesure de résoudre les problèmes vous-même, vous pouvez contacter votre équipe Support ou contacter votre Compte AWS équipe pour soumettre un dossier d'assistance. 

Pour obtenir de l'aide, fournissez l'identifiant de la tâche de transformation afin de AWS pouvoir enquêter sur une tâche ayant échoué. Pour trouver un ID de tâche de transformation, choisissez l’onglet **Sortie** dans Visual Studio. Dans le menu **Afficher la sortie depuis :**, choisissez **Client de langage Amazon Q**.

## Comment puis-je empêcher mon pare-feu d’interférer avec les tâches de transformation ?
<a name="firewall-inteference"></a>

Si votre organisation utilise un pare-feu, celui-ci peut interférer avec les transformations dans Visual Studio. Vous pouvez désactiver temporairement les contrôles de sécurité dans Node.js pour résoudre les problèmes ou tester ce qui empêche l’exécution de la transformation. 

La variable d’environnement `NODE_TLS_REJECT_UNAUTHORIZED` contrôle les contrôles de sécurité importants. Le réglage `NODE_TLS_REJECT_UNAUTHORIZED` sur « 0 » désactive le rejet par Node.js des certificats non autorisés TLS/SSL . Cela signifie que :
+ Les certificats autosignés seront acceptés
+ Les certificats expirés seront autorisés
+ Les certificats dont les noms d’hôtes ne correspondent pas seront autorisés
+ Toute autre erreur de validation du certificat sera ignorée

Si votre proxy utilise un autocertificat, vous pouvez définir les variables d’environnement suivantes au lieu de désactiver `NODE_TLS_REJECT_UNAUTHORIZED` :

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

Sinon, vous devez spécifier les certificats CA utilisés par le proxy pour désactiver `NODE_TLS_REJECT_UNAUTHORIZED`.

**Pour désactiver NODE\$1TLS\$1REJECT\$1UNAUTHORISED sous Windows, procédez comme suit :**

1. Ouvrez le menu Démarrer et recherchez les **variables d’environnement**.

1. Choisissez **Modifier les variables d’environnement système**.

1. Dans la fenêtre **Propriétés du système**, choisissez **Variables d’environnement**.

1. Sous **Variables du système**, sélectionnez **Nouveau**.

1. Définissez **Nom de la variable** sur NODE\$1TLS\$1REJECT\$1UNAUTHORISED et **Valeur de la variable** sur 0.

1. Choisissez **OK** pour enregistrer les modifications.

1. Redémarrez Visual Studio.