Moderniser après la mise à niveau vers .NET à partir de .NET Framework
Dans cet article, vous allez découvrir différentes façons de moderniser votre application après sa mise à niveau de .NET Framework vers .NET. Utilisez l’outil Assistant de mise à niveau de .NET pour mettre à niveau votre application vers .NET.
API manquantes
Lors de la mise à niveau d’une application .NET Framework, vous aurez probablement des incompatibilités. Cela est dû au fait que .NET Framework est une technologie Windows uniquement, et que .NET est une technologie multiplateforme. Certaines bibliothèques ne le sont pas. Par exemple, .NET ne fournit pas d’API prêtes à l’emploi pour accéder au Registre Windows, comme le fait .NET Framework. La prise en charge du Registre Windows est assurée par le package NuGet Microsoft.Win32.Registry
. De nombreuses bibliothèques spécifiques à .NET Framework ont été transférées vers .NET ou .NET Standard et sont hébergées sur NuGet. Si vous trouvez une référence manquante dans votre projet, recherchez sur NuGet.
Pack de compatibilité Windows
Si, après la migration, vous avez des dépendances sur les API .NET Framework qui ne sont pas prises en charge sur votre nouvelle version de .NET, vous pouvez les trouver dans le package NuGet Microsoft.Windows.Compatibility
. Il ajoute environ 20 000 API à votre projet .NET, ce qui augmente considérablement l’ensemble d’API disponibles pour votre projet. Ces API incluent des API pour Windows uniquement, comme celles liées à Windows Management Instrumentation (WMI) et à Windows EventLog. Pour plus d’informations, consultez Utiliser le pack de compatibilité Windows pour porter le code vers .NET
Contrôle du navigateur web
Les projets qui ciblent une technologie de bureau Windows, comme Windows Presentation Foundation ou Windows Forms, peuvent inclure un contrôle de navigateur web. Le contrôle de navigateur web fourni a probablement été conçu avant HTML5 et d’autres technologies web modernes, et est considéré comme obsolète. Microsoft publie le package NuGet Microsoft.Web.WebView2
en remplacement du contrôle de navigateur web moderne.
App.config
.NET Framework utilise le fichier App.config pour charger les paramètres de votre application, comme les chaînes de connexion et la configuration du fournisseur de journalisation. .NET moderne utilise désormais le fichier appsettings.json pour les paramètres de l’application. La version CLI de l’assistant de mise à niveau gère la conversion des fichiers App.config en appsettings.json, mais pas l’extension Visual Studio.
Conseil
Si vous ne souhaitez pas utiliser le fichier appsettings.json, vous pouvez ajouter le package NuGet System.Configuration.ConfigurationManager
à votre application, et votre code compilera et utilisera le fichier App.config.
Même si appsettings.json est le moyen moderne de stocker et de récupérer les paramètres et les chaînes de connexion, votre application utilise toujours le code qui s’appuie sur le fichier App.config. Lorsque votre application a été migrée, le package NuGet System.Configuration.ConfigurationManager
a été ajouté au projet, afin que votre code utilisant le fichier App.config continue de compiler.
À mesure que les bibliothèques sont mises à niveau vers .NET, elles se modernisent en prenant en charge appsettings.json au lieu de App.config. Par exemple, les fournisseurs de journalisation dans .NET Framework qui ont été mis à niveau pour .NET 6+ n’utilisent plus App.config pour les paramètres. Il est bon pour vous de suivre leur direction et de vous éloigner de l’utilisation de App.config.
La prise en charge d’appsettings.json est assurée par le package NuGet Microsoft.Extensions.Configuration
.
Pour utiliser le fichier appsettings.json comme fournisseur de configuration, procédez comme suit :
Supprimez le package ou la bibliothèque NuGet
System.Configuration.ConfigurationManager
si vous y faites référence dans votre application mise à niveau.Ajoutez le package NuGet
Microsoft.Extensions.Configuration.Json
.Créez un fichier nommé appsettings.json.
- Dans la fenêtre de l’Explorateur de solutions, cliquez avec le bouton droit de la souris sur le fichier projet, puis sélectionnez Ajouter>Nouvel élément.
- Dans la zone de recherche, entrez
json
. - Sélectionnez le modèle Fichier de configuration JSON JavaScript et définissez le Nom sur appsettings.json.
- Appuyez sur Ajouter pour ajouter le nouveau fichier au projet.
Définissez le fichier appsettings.json à copier dans le répertoire de sortie.
Dans la fenêtre de l’Explorateur de solutions, recherchez le fichier appsettings.json et définissez les Propriétés suivantes :
- Action de génération : Contenu
- Copier dans le répertoire de sortie : Toujours copier
Dans le code de démarrage de votre application, vous devez charger le fichier de paramètres.
Le code de démarrage de votre application varie en fonction du type de projet. Par exemple, une application WPF utilise le fichier
App.xaml.cs
pour l’installation globale, et une application Windows Forms utilise la méthodeProgram.Main
pour le démarrage. Dans tous les cas, vous devez effectuer deux opérations au démarrage :- Créez un membre
internal static
(Friend Shared
en Visual Basic) accessible depuis n’importe où dans votre application. - Au démarrage, attribuez une instance à ce membre.
L’exemple suivant crée un membre nommé
Config
, l’affecte à une instance de la méthodeMain
et charge une chaîne de connexion :using Microsoft.Extensions.Configuration; internal class Program { internal static IConfiguration Config { get; private set; } private static void Main(string[] args) { Config = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build(); // Use the config file to get a connection string string? myConnectionString = Config.GetConnectionString("database"); // Run the rest of your app } }
Imports Microsoft.Extensions.Configuration Module Program Private _config As IConfiguration ' Shared not required since Program is a Module Friend Property Config As IConfiguration Get Return _config End Get Private Set(value As IConfiguration) _config = value End Set End Property Sub Main(args As String()) Config = New ConfigurationBuilder() _ .AddJsonFile("appsettings.json") _ .Build() ' Use the config file to get a connection string Dim myConnectionString As String = Config.GetConnectionString("database") ' Run the rest of your app End Sub End Module
- Créez un membre
Mettez à jour le reste de votre code pour utiliser les nouvelles API de configuration.
Supprimez le fichier App.config du projet.
Attention
Assurez-vous que votre application s’exécute correctement sans le fichier App.config. Sauvegardez le fichier App.config via le contrôle de code source ou en copiant le fichier ailleurs. Une fois que vous avez testé votre application, supprimez le fichier App.config.