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 :

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

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

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

    1. 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.
    2. Dans la zone de recherche, entrez json.
    3. Sélectionnez le modèle Fichier de configuration 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 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
  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 l’installation globale, et une application Windows Forms utilise la méthode Program.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é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 testé votre application, supprimez le fichier App.config.