

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.

# Passez au .NET moderne et passez à Linux
<a name="net-refactor-linux"></a>

## Présentation de
<a name="net-refactor-linux-overview"></a>

La modernisation des anciennes applications .NET Framework peut vous aider à améliorer la sécurité, les performances et l'évolutivité. Un moyen efficace de moderniser les applications .NET Framework consiste à les migrer vers une version .NET moderne (6\+). Voici quelques-uns des principaux avantages de la migration de ces applications vers le .NET open source :
+ Pour réduire les coûts de licence Windows en les exécutant sur un système d'exploitation Linux
+ Profitez de la disponibilité des langues modernes
+ Bénéficiez de performances optimisées pour fonctionner sous Linux

De nombreuses entreprises utilisent toujours d'anciennes versions du .NET Framework. Cela peut présenter des risques de sécurité, car les vulnérabilités des anciennes versions ne sont plus corrigées par Microsoft. Microsoft a mis fin au support des versions récentes de .NET Framework 4.5.2, 4.6 et 4.6.1. Il est très important d'évaluer les risques et les avantages liés à la poursuite de l'exécution des anciennes versions du framework. Pour réduire les risques et les coûts, il peut être intéressant d'investir du temps et des efforts dans le refactoring vers une version moderne de .NET.

## Impact sur les coûts
<a name="net-refactor-linux-cost"></a>

Envisagez un type d'instance EC2 à usage général (m5), qui offre un équilibre entre les ressources de calcul, de mémoire et de réseau. Ces instances conviennent à diverses applications telles que les serveurs Web, les bases de données de taille moyenne et les référentiels de code source.

Par exemple, une instance m5.xlarge à la demande avec 4 V CPUs et 16 Go de mémoire sur Windows Server (licence incluse) dans l'est des États-Unis (Virginie du Nord) coûte 274,48$ par mois. Les mêmes ressources sur un serveur Linux coûtent 140,16$ par mois. Dans cet exemple, les coûts sont réduits de 49 % lorsque vous migrez votre application de .NET Framework vers une version moderne de .NET et que vous exécutez votre application sur un serveur Linux. Votre coût peut varier en fonction des options (par exemple, type d'instance, système d'exploitation, stockage) que vous choisissez lors de la sélection d'une [instance 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). Vous pouvez optimiser davantage les coûts en utilisant [Savings Plans](https://docs.aws.amazon.com/savingsplans/latest/userguide/what-is-savings-plans.html) ou [Reserved Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-reserved-instances.html). Pour plus de détails, utilisez le [Calculateur de tarification AWS](https://calculator.aws/#/)pour établir des estimations de coûts. Pour les instances incluses dans Windows, le coût de licence est de [0,046 USD par vCPU par](https://aws.amazon.com/ec2/dedicated-hosts/pricing/#Pricing_for_Dedicated_Hosts) heure, quel que soit le modèle de tarification.

Le portage de ces applications .NET Framework vers le .NET moderne nécessite des efforts de développement. Vous devez évaluer vos applications et leurs dépendances pour voir si elles sont compatibles avec la version de la plateforme cible. [AWS L'assistant de portage pour .NET](https://aws.amazon.com/blogs/aws/announcing-the-porting-assistant-for-net/) est un outil d'assistance qui analyse les applications .NET Framework et génère une évaluation de compatibilité .NET, vous aidant ainsi à porter vos applications pour qu'elles soient compatibles avec Linux plus rapidement. L'assistant de portage pour .NET identifie les incompatibilités avec .NET, trouve les remplacements connus et génère une évaluation détaillée de la compatibilité. Après avoir porté votre solution, vous devez modifier le code manuellement pour que votre projet soit correctement compilé avec les dépendances. Cela réduit les efforts manuels nécessaires à la modernisation de vos applications vers Linux. Si votre application prend en charge les processeurs ARM, le passage à Linux permet d'utiliser des instances Graviton. Cela peut vous aider à réaliser des réductions de coûts supplémentaires de 20 %. Pour plus d'informations, consultez la section [Powering .NET 5 with AWS Graviton2 : Benchmarks](https://aws.amazon.com/blogs/compute/powering-net-5-with-aws-graviton2-benchmark-results/) dans le blog AWS Compute.

Il existe d'autres outils, tels que [AWS Toolkit for .NET Refactoring](https://docs.aws.amazon.com/tk-dotnet-refactoring/latest/userguide/what-is-tk-dotnet-refactoring.html) et [.NET Upgrade Assistant](https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview), qui peuvent vous aider à porter les anciennes applications .NET Framework vers le .NET moderne.

## Recommandations en matière d’optimisation des coûts
<a name="net-refactor-linux-rec"></a>

Pour migrer des applications .NET Framework, procédez comme suit :

1. **Conditions préalables** — Pour utiliser l'assistant de portage pour .NET, vous devez installer .NET 5\+ sur la machine sur laquelle vous prévoyez d'analyser le code source de l'application. Les ressources de la machine doivent avoir une vitesse de GHz traitement minimale de 1,8, 4 Go de mémoire et 5 Go d'espace de stockage. Pour plus d'informations, consultez la section [Conditions requises](https://docs.aws.amazon.com/portingassistant/latest/userguide/porting-assistant-prerequisites.html) dans la documentation de l'assistant de portage pour .NET.

1. **Évaluation** — Téléchargez l'assistant de portage pour .NET sous forme de fichier [exécutable](https://s3.us-west-2.amazonaws.com/aws.portingassistant.dotnet.download/latest/windows/Porting-Assistant-Dotnet.exe) (téléchargement). Vous pouvez télécharger et installer l'outil sur votre ordinateur pour démarrer l'évaluation de vos applications. La page d'évaluation contient des projets portés, des packages APIs incompatibles avec le .NET moderne. Pour cette raison, des erreurs de construction apparaissent dans la solution après l'évaluation. Vous pouvez consulter ou télécharger les résultats de l'évaluation dans un fichier CSV. Pour plus d'informations, consultez [Porter une solution](https://docs.aws.amazon.com/portingassistant/latest/userguide/porting-assistant-port.html) dans la documentation de l'assistant de portage pour .NET.

1. **Refactorisation** — Après avoir évalué l'application, vous pouvez porter vos projets vers la version cible du framework. Lorsque vous portez une solution, vos fichiers de projet et une partie du code sont modifiés par l'assistant de portage. Vous pouvez consulter les journaux pour vérifier les modifications apportées à votre code source. Dans la plupart des cas, le code nécessitera des efforts supplémentaires pour terminer la migration et les tests afin de le préparer à la production. Selon l'application, certaines des modifications peuvent inclure le cadre d'entité, l'identité et l'authentification. Pour plus d'informations, consultez [Porter une solution](https://docs.aws.amazon.com/portingassistant/latest/userguide/porting-assistant-port.html) dans la documentation de l'assistant de portage pour .NET.

Il s'agit d'une première étape pour moderniser vos applications en conteneurs. La modernisation de vos applications .NET Framework vers des conteneurs Linux peut nécessiter un certain nombre de facteurs commerciaux et techniques. L'un des principaux moteurs est la réduction du coût total de possession en abandonnant le système d'exploitation Windows au profit de Linux. Cela réduit les coûts de licence lors de la migration de votre application vers une version multiplateforme de .NET et vers des conteneurs afin d'optimiser l'utilisation des ressources.

Une fois votre application portée sur Linux, vous pouvez l'utiliser [AWS App2Container](https://aws.amazon.com/app2container/)pour conteneuriser votre application. App2Container utilise Amazon ECS ou Amazon EKS comme services de point de terminaison sur lesquels vous pouvez les déployer directement. App2Container fournit tous les artefacts de déploiement de l'infrastructure sous forme de code (IaC) nécessaires pour conteneuriser vos applications à plusieurs reprises.

## Considérations et ressources supplémentaires
<a name="net-refactor-linux-resources"></a>
+ Si vous possédez des applications basées sur VB.NET (un framework existant datant de 2002) et que vous souhaitez les porter vers .NET 6, consultez le billet [Port des anciennes applications VB.NET vers .NET 6.0 avec l'assistant de portage pour .NET](https://aws.amazon.com/blogs/modernizing-with-aws/port-legacy-vb-net-applications-to-net-6-0-with-porting-assistant-for-net/) sur le blog Microsoft Workloads on. AWS 
+ Si vous possédez des applications existantes sur Windows Communication Foundation (WCF) et que vous souhaitez les exécuter sur un .NET moderne, vous pouvez adopter CoreWCF. Pour plus d'informations, consultez le billet sur la [modernisation des anciennes applications WCF vers CoreWCF à l'aide de l'assistant de portage pour .NET](https://aws.amazon.com/blogs/modernizing-with-aws/migrate-wcf-apps-to-wcfcore-using-porting-assistant/) sur le blog Microsoft Workloads on. AWS 
+ Vous pouvez ajouter un assistant de portage en tant qu'extension à votre IDE Visual Studio. Cela vous permet d'effectuer toutes les tâches nécessaires à la conversion de votre code sans avoir à basculer entre votre IDE et l'outil Porting Assistant for .NET. Pour plus d'informations, consultez le billet [Accélérer la modernisation des applications .NET avec l'assistant de portage pour l'extension IDE .NET Visual Studio](https://aws.amazon.com/blogs/modernizing-with-aws/net-modernization-with-pa-vs-ide-extension/) sur le AWS blog Microsoft Workloads on.
+ [AWS L'assistant de portage pour .NET est désormais un outil open source](https://aws.amazon.com/blogs/opensource/open-sourcing-the-porting-assistant-for-net/) avec le code source et les composants d'analyse de compatibilité de l'évaluation. Cela peut encourager vos développeurs à utiliser et à partager les connaissances et les meilleures pratiques en matière de portage .NET.
+ Vous pouvez porter des applications .NET Framework vers le .NET moderne sous Linux à l'aide du AWS Toolkit for .NET Refactoring. Pour plus d'informations, consultez le billet [Accélérer la modernisation de .NET avec AWS Toolkit for .NET Refactoring](https://aws.amazon.com/blogs/modernizing-with-aws/aws-toolkit-for-net-refactoring-launch/) sur le blog Microsoft Workloads on. AWS 
+ Vous pouvez [accélérer la conteneurisation et la migration des applications ASP.NET Core](https://aws.amazon.com/blogs/modernizing-with-aws/containerize-asp-net-core-applications-using-aws-app2container/) vers l'utilisation. AWS AWS App2Container