Partager via


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 .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 .NET est une technologie multiplateforme. Certaines bibliothèques ne le sont pas ainsi. Par exemple, .NET ne fournit pas d’API prêtes à l’emploi pour accéder au Registre Windows comme .NET Framework. La prise en charge du Registre Windows est fournie par le package NuGet Microsoft.Win32.Registry. De nombreuses bibliothèques spécifiques au .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 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 disponible pour votre projet. Ces API incluent des API Windows uniquement telles que 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, telle que 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 comme remplacement pour le contrôle des navigateurs web modernes.

App.config

.NET Framework utilise le fichier App.config pour charger les paramètres de votre application, tels que les chaînes de connexion et la configuration du fournisseur de journalisation. Le fichier .NET moderne utilise le fichier appsettings.json pour les paramètres de l’application. La version CLI de l’Assistant Mise à niveau gère la conversion de fichiers App.config en appsettings.json, mais l’extension Visual Studio ne le fait pas.

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 compile et utilise 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 a toujours du code qui utilise 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 à être compilé.

À 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. C’est bon pour vous de suivre leur direction et de s’éloigner de l’utilisation de App.config.

La prise en charge de appsettings.json est fournie par le package NuGet Microsoft.Extensions.Configuration.

Procédez comme suit pour utiliser le fichier appsettings.json en tant que fournisseur de configuration :

  1. Supprimez le paquet ou la bibliothèque NuGet System.Configuration.ConfigurationManager si vous le référencez dans votre application mise à niveau.

  2. Ajoutez le package NuGet Microsoft.Extensions.Configuration.Json.

  3. Créez un fichier nommé appsettings.json.

    1. Cliquez avec le bouton droit sur le fichier projet dans Explorateur de solutions, puis sélectionnez Ajouter>nouvel élément.
    2. Dans la zone de recherche, insérez json.
    3. Sélectionnez le modèle Fichier config JSON JavaScript et définissez le Nom sur appsettings.json.
    4. Appuyez sur Ajouter pour ajouter le nouveau fichier au projet.
  4. Définissez le fichier appsettings.json à copier dans le répertoire de sortie.

    Dans 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
  5. 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 la configuration globale et une application Windows Forms utilise la méthode Program.Main pour le démarrage. Peu importe, 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, affectez une instance à ce membre.

    L’exemple suivant crée un membre nommé Config, l’affecte à une instance de la méthode Main 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
    
  6. Mettez à jour le reste de votre code pour utiliser les nouvelles API de configuration.

  7. 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 soigneusement testé votre application, supprimez le fichier App.config.