Delen via


Moderniseren na een upgrade naar .NET vanuit .NET Framework

In dit artikel leert u over verschillende manieren waarop u uw app kunt moderniseren nadat deze is bijgewerkt van .NET Framework naar .NET. Gebruik het hulpprogramma .NET Upgrade Assistant om uw app te upgraden naar .NET.

Ontbrekende API's

Wanneer u een .NET Framework-app bijwerkt, hebt u waarschijnlijk een aantal incompatibiliteit. Dit komt doordat .NET Framework een windows-technologie is en .NET een platformoverschrijdende technologie is. Sommige bibliotheken zijn dat niet. .NET biedt bijvoorbeeld geen out-of-the-box API's voor toegang tot het Windows-register, zoals .NET Framework. Ondersteuning voor het Windows-register wordt geleverd door het Microsoft.Win32.Registry NuGet-pakket. Veel .NET Framework-specifieke bibliotheken zijn overgezet naar .NET of .NET Standard en worden gehost op NuGet. Als u een ontbrekende verwijzing in uw project vindt, zoekt u nuGet.

Windows-compatibiliteitspakket

Als u na de migratie enkele afhankelijkheden hebt van .NET Framework-API's die niet worden ondersteund in uw nieuwe versie van .NET, vindt u deze mogelijk in het Microsoft.Windows.Compatibility NuGet-pakket. Er worden ongeveer 20.000 API's toegevoegd aan uw .NET-project, waardoor de API-set aanzienlijk wordt verhoogd die beschikbaar is voor uw project. Deze API's omvatten alleen-windows-API's, zoals api's die zijn gerelateerd aan Windows Management Instrumentation (WMI) en de Windows EventLog. Zie Het Windows-compatibiliteitspakket gebruiken voor poortcode naar .NET voor meer informatie

Webbrowserbeheer

Projecten die gericht zijn op een Windows-bureaubladtechnologie, zoals Windows Presentation Foundation of Windows Forms, kunnen een webbrowser besturingselement bevatten. Het opgegeven webbrowserbeheer is waarschijnlijk ontworpen vóór HTML5 en andere moderne webtechnologieën en wordt beschouwd als verouderd. Microsoft publiceert het Microsoft.Web.WebView2 NuGet-pakket als moderne vervanging van webbrowserbesturingselementen.

App.config

.NET Framework maakt gebruik van het App.config-bestand om instellingen voor uw app te laden, zoals verbindingsreeks s en configuratie van de logboekprovider. Modern .NET maakt gebruik van het appsettings.json-bestand voor app-instellingen. De CLI-versie van de Upgradeassistent verwerkt het converteren van App.config-bestanden naar appsettings.json, maar de Visual Studio-extensie niet.

Tip

Als u het appsettings.json-bestand niet wilt gebruiken, kunt u het System.Configuration.ConfigurationManager NuGet-pakket toevoegen aan uw app en wordt het bestand App.config gecompileerd en gebruikt.

Hoewel appsettings.json de moderne manier is om instellingen en verbindingsreeks s op te slaan en op te halen, heeft uw app nog steeds code die gebruikmaakt van het App.config-bestand. Wanneer uw app is gemigreerd, is het System.Configuration.ConfigurationManager NuGet-pakket toegevoegd aan het project, zodat uw code met behulp van het App.config-bestand blijft compileren.

Als bibliotheken worden bijgewerkt naar .NET, worden ze gemoderniseerd door appsettings.json te ondersteunen in plaats van App.config. Logboekregistratieproviders in .NET Framework die zijn bijgewerkt voor .NET 6+ gebruiken bijvoorbeeld App.config niet meer voor instellingen. Het is goed dat u hun richting volgt en ook weggaat met het gebruik van App.config.

Ondersteuning voor appsettings.json wordt geleverd door het Microsoft.Extensions.Configuration NuGet-pakket.

Voer de volgende stappen uit om het appsettings.json-bestand te gebruiken als uw configuratieprovider:

  1. Verwijder het NuGet-pakket of de System.Configuration.ConfigurationManager nuget-bibliotheek als hierna wordt verwezen door uw bijgewerkte app.

  2. Voeg het Microsoft.Extensions.Configuration.Json NuGet-pakket toe.

  3. Maak een bestand met de naam appsettings.json.

    1. Klik met de rechtermuisknop op het projectbestand in het venster Solution Explorer en selecteer Nieuw item toevoegen>....
    2. Typ json in het zoekvak.
    3. Selecteer de sjabloon JavaScript JSON-configuratiebestand en stel de naam in op appsettings.json.
    4. Druk op Toevoegen om het nieuwe bestand toe te voegen aan het project.
  4. Stel het appsettings.json-bestand in om naar de uitvoermap te kopiëren.

    Zoek in het venster Solution Explorer het bestand appsettings.json en stel de volgende eigenschappen in:

    • Buildactie: inhoud
    • Kopiëren naar uitvoermap: altijd kopiëren
  5. In de opstartcode van uw app moet u het instellingenbestand laden.

    De opstartcode voor uw app varieert op basis van uw projecttype. Een WPF-app gebruikt bijvoorbeeld het App.xaml.cs bestand voor globale installatie en een Windows Forms-app maakt gebruik van de Program.Main methode voor het opstarten. U moet bij het opstarten twee dingen doen:

    • Maak een internal static lid (Friend Shared in Visual Basic) dat overal in uw app toegankelijk is.
    • Wijs tijdens het opstarten een exemplaar toe aan dat lid.

    In het volgende voorbeeld wordt een lid met de naam Configgemaakt, toegewezen aan een exemplaar in de Main methode en wordt een verbindingsreeks geladen:

    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. Werk de rest van uw code bij om de nieuwe configuratie-API's te gebruiken.

  7. Verwijder het App.config-bestand uit het project.

    Let op

    Zorg ervoor dat uw app correct wordt uitgevoerd zonder het app.config-bestand . Maak een back-up van het App.config-bestand via broncodebeheer of door het bestand ergens anders te kopiëren. Nadat u de app grondig hebt getest, verwijdert u het bestand App.config .