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 .NET Upgrade Assistant 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. Podpora registru Systému Windows je poskytována balíčkem Microsoft.Win32.Registry NuGet. 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 určité 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 přenosu kódu do .NET.

Ovládací prvek webového prohlížeče

Projekty, které cílí na desktopovou technologii Windows, jako je Windows Presentation Foundation nebo model 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 jako nahrazení moderního Microsoft.Web.WebView2 ovládacího prvku webového prohlížeče.

App.config

.NET Framework používá soubor App.config k načtení nastavení pro vaši aplikaci, jako jsou připojovací řetězec a konfigurace zprostředkovatele 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.

Tip

Pokud nechcete soubor appsettings.json používat, můžete do aplikace přidat System.Configuration.ConfigurationManager balíček NuGet a kód se zkompiluje a použije soubor App.config.

I když appsettings.json je moderní způsob ukládání a načítání nastavení a připojovací řetězec, vaše aplikace stále obsahuje kód, který používá soubor App.config. Po migraci System.Configuration.ConfigurationManager aplikace se do projektu přidal balíček NuGet, aby se váš kód pomocí souboru App.config dál kompiloval.

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 vhodné postupovat podle jejich směru a také se odejít z app.config.

Podporu appsettings.json poskytuje Microsoft.Extensions.Configuration balíček NuGet.

Provedením následujících kroků použijte appsettings.json soubor jako poskytovatele konfigurace:

  1. Pokud odkazuje vaše upgradovaná aplikace, odeberte balíček Nebo knihovnu System.Configuration.ConfigurationManager NuGet.

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

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

    1. Klikněte pravým tlačítkem na soubor projektu v okně Průzkumník řešení a vyberte Přidat>novou položku....
    2. Do vyhledávacího pole zadejte json.
    3. Vyberte šablonu konfiguračního souboru JSON javascriptu a nastavte název na appsettings.json.
    4. Stisknutím klávesy Přidat přidejte nový soubor do projektu.
  4. Nastavte soubor appsettings.json tak, aby se zkopíroval do výstupního adresáře.

    V okně Průzkumník ř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á App.xaml.cs soubor pro globální nastavení a aplikace model Windows Forms používá metodu Program.Main pro spuštění. 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 odkudkoli v aplikaci.
    • Během spuštění přiřaďte instanci danému členu.

    Následující příklad vytvoří člen s názvem Config, přiřadí ho instanci v Main metodě 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.

    Upozornění

    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írujte soubor jinam. Po důkladném otestovaní aplikace odstraňte soubor App.config .