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:
Verwijder het NuGet-pakket of de
System.Configuration.ConfigurationManager
nuget-bibliotheek als hierna wordt verwezen door uw bijgewerkte app.Voeg het
Microsoft.Extensions.Configuration.Json
NuGet-pakket toe.Maak een bestand met de naam appsettings.json.
- Klik met de rechtermuisknop op het projectbestand in het venster Solution Explorer en selecteer Nieuw item toevoegen>....
- Typ
json
in het zoekvak. - Selecteer de sjabloon JavaScript JSON-configuratiebestand en stel de naam in op appsettings.json.
- Druk op Toevoegen om het nieuwe bestand toe te voegen aan het project.
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
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 deProgram.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
Config
gemaakt, toegewezen aan een exemplaar in deMain
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
- Maak een
Werk de rest van uw code bij om de nieuwe configuratie-API's te gebruiken.
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 .