Megosztás:


Modernizálás a .NET-keretrendszerből a .NET-re való frissítés után

Ebben a cikkben megismerheti, hogyan modernizálhatja az alkalmazást a .NET-keretrendszerről a .NET-re való frissítés után. Az alkalmazás .NET-re való frissítéséhez használja a GitHub Copilot alkalmazáskorszerűsítési segédet.

Hiányzó API-k

A .NET-keretrendszer alkalmazásának frissítésekor valószínűleg inkompatibilitások is előfordulhatnak. Ennek az az oka, hogy a .NET-keretrendszer csak Windows rendszerű technológia, a .NET pedig platformfüggetlen technológia. Egyes könyvtárak nem. A .NET például nem biztosít beépített API-kat a Windows-beállításjegyzék eléréséhez, ahogyan a .NET-keretrendszer tette. A Windows-beállításjegyzék támogatását a Microsoft.Win32.Registry NuGet-csomag biztosítja. Számos .NET-keretrendszer-specifikus kódtárat portoltunk a .NET-be vagy a .NET Standardba, és a NuGeten vannak tárolva. Ha hiányzó hivatkozást talál a projektben, keressen rá a NuGetben.

Windows kompatibilitási csomag

Ha az áttelepítés után bizonyos függőségei vannak a .NET-keretrendszer API-kkal kapcsolatban, amelyeket nem támogatnak a .NET új verziójában, előfordulhat, hogy a Microsoft.Windows.Compatibility NuGet-csomag-ban megtalálja őket. Körülbelül 20 000 API-t ad hozzá a .NET-projekthez, jelentősen növelve a projekt számára elérhető API-készletet. Ezek az API-k csak Windows rendszerű API-k, például a Windows Management Instrumentation (WMI) és a Windows EventLog szolgáltatáshoz kapcsolódó API-k. További információkért lásd: A Windows kompatibilitási csomag használata a kód áttéréséhez a .NET-re.

Webböngésző vezérlőelem

A Windows asztali technológiára (például a Windows Presentation Foundationre vagy a Windows Formsra) irányuló projektek böngészővezérlőt is tartalmazhatnak. A webböngésző által biztosított vezérlő valószínűleg a HTML5 és más modern webtechnológiák előtt lett kialakítva, és elavultnak tekinthető. A Microsoft a Microsoft.Web.WebView2 NuGet-csomagot publikálja a modern böngészővezérlő helyettesítésére.

App.config

A .NET-keretrendszer a App.config fájllal tölti be az alkalmazás beállításait, például a kapcsolati sztringeket és a naplószolgáltató konfigurációját. A modern .NET a appsettings.json fájlt használja az alkalmazásbeállításokhoz.

Borravaló

Ha nem szeretné használni a appsettings.json fájlt, hozzáadhatja a System.Configuration.ConfigurationManager NuGet-csomagot az alkalmazáshoz, és a kód lefordítja és használja a App.config fájlt.

Annak ellenére, hogy a appsettings.json a beállítások és a kapcsolati sztringek tárolásának és lekérésének modern módja, az alkalmazás továbbra is rendelkezik a App.config fájlt használó kóddal. Az alkalmazás migrálása után a System.Configuration.ConfigurationManager NuGet-csomag hozzá lett adva a projekthez, hogy a App.config fájlt használó kód továbbra is lefordítva legyen.

A könyvtárak a .NET-re való frissítésével modernizálódnak azáltal, hogy a App.confighelyett a appsettings.json támogatják. Például a .NET keretrendszerben a .NET 6+-ra frissített naplózási szolgáltatók már nem használják a App.config a beállításokhoz. Jót tesz önnek, ha követi az irányukat, és eltávolodik a App.confighasználatától.

A appsettings.json a Microsoft.Extensions.Configuration NuGet-csomag támogatja.

A appsettings.json fájl konfigurációszolgáltatóként való használatához hajtsa végre az alábbi lépéseket:

  1. Ha a frissített alkalmazás hivatkozik rá, távolítsa el a System.Configuration.ConfigurationManager NuGet-csomagot vagy -tárat.

  2. Adja hozzá a Microsoft.Extensions.Configuration.Json NuGet-csomagot.

  3. Hozzon létre egy appsettings.jsonnevű fájlt.

    1. Kattintson a jobb gombbal a projektfájlra Megoldáskezelő, és válassza >Új elem hozzáadásalehetőséget.
    2. A keresőmezőbe írja be a json.
    3. Válassza ki a JavaScript JSON-konfigurációs fájl sablont, és állítsa a Névappsettings.jsonértékre.
    4. Nyomja meg a gombot, majd nyomja meg a gombot az új fájl projektbe való hozzáadásához.
  4. Állítsa be a appsettings.json fájlt a kimeneti könyvtárba való másoláshoz.

    A Megoldáskezelő-ben keresse meg a appsettings.json fájlt, és állítsa be a következő Tulajdonságok-at:

    • buildelési művelet: Tartalom
    • Másolás kimeneti könyvtárba: Másolás mindig
  5. Az alkalmazás indítási kódjában be kell töltenie a beállításfájlt.

    Az alkalmazás indítási kódja a projekt típusától függően változik. Egy WPF-alkalmazás például a App.xaml.cs fájlt használja a globális beállításhoz, egy Windows Forms-alkalmazás pedig a Program.Main metódust használja az indításhoz. Ettől függetlenül két dolgot kell elvégeznie az indításkor:

    • Hozzon létre egy internal static (Friend Shared a Visual Basicben) tagot, amely az alkalmazás bármely pontjáról elérhető.
    • Az indítás során rendeljen hozzá egy példányt az adott taghoz.

    Az alábbi példa létrehoz egy Confignevű tagot, hozzárendel egy példányt a Main metódusban, és betölt egy kapcsolati sztringet:

    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. Frissítse a kód többi részét az új konfigurációs API-k használatára.

  7. Törölje a App.config fájlt a projektből.

    Vigyázat

    Győződjön meg arról, hogy az alkalmazás megfelelően fut a App.config fájl nélkül. Készítsen biztonsági másolatot a App.config fájlról a forrásvezérlőn keresztül, vagy másolja a fájlt máshová. Az alkalmazás alapos tesztelése után törölje a App.config fájlt.