Sdílet prostřednictvím


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:

  1. Odeberte balíček nebo knihovnu NuGet System.Configuration.ConfigurationManager, pokud na vás odkazuje upgradovaná aplikace.

  2. Přidejte balíček NuGet Microsoft.Extensions.Configuration.Json.

  3. Vytvořte soubor s názvem appsettings.json.

    1. Klikněte pravým tlačítkem na soubor projektu v průzkumníku řešení a vyberte Přidat>Nová položka.
    2. Do vyhledávacího pole zadejte json.
    3. Vyberte šablonu konfiguračního souboru JSON pro JavaScriptu a nastavte název na appsettings.json.
    4. Stiskněte Přidat pro přidání nového souboru do projektu.
  4. 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
  5. 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í metodu Program.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
    
  6. Aktualizujte zbývající část kódu tak, aby používala nová rozhraní API konfigurace.

  7. 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.