Moderniseren na een upgrade naar .NET vanuit .NET Framework
Artikel
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 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
Werk de rest van uw code bij om de nieuwe configuratie-API's te gebruiken.
Verwijder het App.config-bestand uit het project.
Waarschuwing
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 .
Met ons samenwerken op GitHub
De bron voor deze inhoud vindt u op GitHub, waar u ook problemen en pull-aanvragen kunt maken en controleren. Bekijk onze gids voor inzenders voor meer informatie.
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven:
Build end-to-end solutions in Microsoft Azure to create Azure Functions, implement and manage web apps, develop solutions utilizing Azure storage, and more.