Modernizace po upgradu na .NET z rozhraní .NET Framework
V tomto článku se dozvíte o různých způsobech modernizace aplikace po upgradu z rozhraní .NET Framework na .NET. Pomocí nástroje Pomocníka s upgradem .NET upgradujte aplikaci na .NET.
Chybějící rozhraní API
Při upgradu aplikace .NET Framework budete pravděpodobně mít určité nekompatibility. Je to proto, že .NET Framework je technologie pouze pro Windows a .NET je multiplatformní technologie. Některé knihovny nejsou. Například rozhraní .NET neposkytuje předefinovaná rozhraní API pro přístup k registru Windows, jako je .NET Framework. Podporu registru Systému Windows poskytuje balíček NuGet Microsoft.Win32.Registry
. Mnoho knihoven specifických pro rozhraní .NET Framework bylo portováno do .NET nebo .NET Standard a je hostováno na NuGetu. Pokud v projektu najdete chybějící odkaz, vyhledejte NuGet.
Windows Compatibility Pack
Pokud po migraci máte některé závislosti na rozhraních .NET Framework API, která nejsou podporována ve vaší nové verzi .NET, můžete je najít v Microsoft.Windows.Compatibility
balíčku NuGet. Do projektu .NET přidává přibližně 20 000 rozhraní API, což výrazně zvyšuje sadu rozhraní API dostupnou pro váš projekt. Tato rozhraní API zahrnují rozhraní API pouze pro Windows, jako jsou rozhraní API související se službou Windows Management Instrumentation (WMI) a protokolem událostí systému Windows. Další informace naleznete v tématu Použití sady Windows Compatibility Pack k portování kódu do rozhraní .NET.
Ovládací prvek webového prohlížeče
Projekty, které cílí na desktopovou technologii Windows, například Windows Presentation Foundation nebo Windows Forms, můžou obsahovat ovládací prvek webového prohlížeče. Poskytnutý ovládací prvek webového prohlížeče byl pravděpodobně navržen před HTML5 a dalšími moderními webovými technologiemi a je považován za zastaralý. Microsoft publikuje balíček NuGet Microsoft.Web.WebView2
jako nahrazení moderního ovládacího prvku webového prohlížeče.
App.config
Rozhraní .NET Framework používá soubor App.config k načtení nastavení pro vaši aplikaci, jako jsou připojovací řetězce a konfigurace poskytovatele protokolu. Moderní .NET používá soubor appsettings.json pro nastavení aplikace. Verze rozhraní příkazového řádku Pomocníka pro upgrade zpracovává převod souborů App.config na appsettings.json, ale rozšíření sady Visual Studio ne.
Spropitné
Pokud nechcete soubor appsettings.json používat, můžete do aplikace přidat balíček System.Configuration.ConfigurationManager
NuGet a kód se zkompiluje a použije App.config soubor.
I když appsettings.json je moderní způsob ukládání a načítání nastavení a připojovacích řetězců, vaše aplikace stále obsahuje kód, který používá App.config soubor. Po migraci aplikace se do projektu přidal balíček NuGet System.Configuration.ConfigurationManager
, aby kód, který používá soubor App.config, pokračoval v kompilaci.
Při upgradu knihoven na .NET se modernizuje podporou appsettings.json místo App.config. Například zprostředkovatelé protokolování v rozhraní .NET Framework, které byly upgradovány pro .NET 6 nebo novější, už pro nastavení nepoužívají App.config. Je dobré, abyste postupovali podle jejich směru a upustili od používání App.config.
Podporu appsettings.json poskytuje balíček NuGet Microsoft.Extensions.Configuration
.
Pokud chcete jako poskytovatele konfigurace použít soubor appsettings.json, proveďte následující kroky:
Odeberte balíček nebo knihovnu NuGet
System.Configuration.ConfigurationManager
, pokud na vás odkazuje upgradovaná aplikace.Přidejte balíček NuGet
Microsoft.Extensions.Configuration.Json
.Vytvořte soubor s názvem appsettings.json.
- Klikněte pravým tlačítkem na soubor projektu v průzkumníku řešení a vyberte Přidat>Nová položka.
- Do vyhledávacího pole zadejte
json
. - Vyberte šablonu konfiguračního souboru JSON pro JavaScriptu a nastavte název na appsettings.json.
- Stiskněte Přidat pro přidání nového souboru do projektu.
Nastavte soubor appsettings.json tak, aby se zkopíroval do výstupního adresáře.
V průzkumníku řešení vyhledejte soubor appsettings.json a nastavte následující vlastnosti:
- Akce sestavení: Obsah
- kopírovat do výstupního adresáře: Kopírovat vždy
Ve spouštěcím kódu aplikace musíte načíst soubor nastavení.
Spouštěcí kód aplikace se liší podle typu projektu. Aplikace WPF například používá soubor
App.xaml.cs
pro globální nastavení a aplikace Windows Forms používá pro spuštění metoduProgram.Main
. Bez ohledu na to, že při spuštění musíte udělat dvě věci:- Vytvořte člena
internal static
(Friend Shared
v jazyce Visual Basic), ke kterému máte přístup odkudkoliv v aplikaci. - Během spuštění přiřaďte instanci danému členu.
Následující příklad vytvoří člena s názvem
Config
, přiřadí mu instanci v metoděMain
a načte připojovací řetězec: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
- Vytvořte člena
Aktualizujte zbývající část kódu tak, aby používala nová rozhraní API konfigurace.
Odstraňte soubor App.config z projektu.
Opatrnost
Ujistěte se, že aplikace funguje správně bez souboru App.config. Zálohujte soubor App.config prostřednictvím správy zdrojového kódu nebo zkopírováním souboru jinam. Po důkladném otestovaní aplikace odstraňte soubor App.config.