Bagikan melalui


Modernisasi setelah memutakhirkan ke .NET dari .NET Framework

Dalam artikel ini, Anda akan mempelajari berbagai cara untuk memodernisasi aplikasi setelah ditingkatkan dari .NET Framework ke .NET. Gunakan asisten modernisasi aplikasi GitHub Copilot untuk meningkatkan aplikasi Anda ke .NET.

API yang hilang

Saat meningkatkan aplikasi .NET Framework, Anda kemungkinan besar akan memiliki beberapa ketidaksesuaian. Ini karena .NET Framework adalah teknologi khusus Windows dan .NET adalah teknologi lintas platform. Beberapa pustaka tidak demikian. Misalnya, .NET tidak menyediakan API siap pakai untuk mengakses Registri Windows seperti .NET Framework. Dukungan untuk Windows Registry disediakan oleh paket NuGet Microsoft.Win32.Registry. Banyak pustaka khusus .NET Framework telah di-port ke .NET atau .NET Standard, dan dihosting di NuGet. Jika Anda menemukan referensi yang hilang di proyek Anda, cari NuGet.

Paket Kompatibilitas Windows

Jika setelah migrasi, Anda memiliki beberapa dependensi pada .NET Framework API yang tidak didukung pada versi baru .NET, Anda mungkin menemukannya dalam paket nuGet Microsoft.Windows.Compatibility. Ini menambahkan sekitar 20.000 API ke proyek .NET Anda, secara signifikan meningkatkan set API yang tersedia untuk proyek Anda. API ini mencakup API khusus Windows seperti yang terkait dengan Windows Management Instrumentation (WMI) dan Windows EventLog. Untuk informasi selengkapnya, lihat Menggunakan Paket Kompatibilitas Windows untuk kode port ke .NET.

Kontrol peramban web

Proyek yang menargetkan teknologi desktop Windows, seperti Windows Presentation Foundation atau Windows Forms, mungkin menyertakan kontrol browser web. Kontrol browser web yang disediakan kemungkinan besar dirancang sebelum HTML5 dan teknologi web modern lainnya dan dianggap usang. Microsoft menerbitkan paket NuGet Microsoft.Web.WebView2 sebagai pengganti kontrol browser web modern.

App.config

.NET Framework menggunakan file App.config untuk memuat pengaturan untuk aplikasi Anda, seperti string koneksi dan konfigurasi penyedia log. .NET modern menggunakan file appsettings.json untuk pengaturan aplikasi.

Kiat

Jika Anda tidak ingin menggunakan file appsettings.json, Anda dapat menambahkan paket System.Configuration.ConfigurationManager NuGet ke aplikasi Anda dan kode Anda akan mengkompilasi dan menggunakan file App.config.

Meskipun appsettings.json adalah cara modern untuk menyimpan dan mengambil pengaturan dan string koneksi, aplikasi Anda masih memiliki kode yang menggunakan file App.config. Saat aplikasi Anda dimigrasikan, paket System.Configuration.ConfigurationManager NuGet ditambahkan ke proyek sehingga kode Anda menggunakan file App.config terus dikompilasi.

Saat pustaka diperbarui ke .NET, mereka memodernisasi dengan mendukung appsettings.json alih-alih App.config. Misalnya, penyedia logging di .NET Framework yang telah diperbarui untuk .NET 6+ tidak lagi menggunakan App.config untuk pengaturan. Sebaiknya Anda mengikuti arahan mereka dan juga menghindari penggunaan App.config.

Dukungan untuk appsettings.json disediakan oleh paket NuGet Microsoft.Extensions.Configuration.

Lakukan langkah-langkah berikut untuk menggunakan file appsettings.json sebagai penyedia konfigurasi Anda:

  1. Hapus paket atau pustaka NuGet System.Configuration.ConfigurationManager jika dirujuk oleh aplikasi Anda yang telah ditingkatkan.

  2. Tambahkan paket NuGet Microsoft.Extensions.Configuration.Json.

  3. Buat file bernama appsettings.json.

    1. Klik kanan pada file proyek di Solution Explorer dan pilih Tambahkan>Item Baru.
    2. Dalam kotak pencarian, masukkan json.
    3. Pilih templat File Konfigurasi JSON JavaScript dan atur Nama ke appsettings.json.
    4. Tekan Tambahkan untuk menambahkan file baru ke proyek.
  4. Atur file appsettings.json untuk disalin ke direktori output.

    Di Solution Explorer , temukan file appsettings.json dan atur properti berikut:

    • Build Action: Konten
    • Salin ke Direktori Keluaran: Salin Selalu
  5. Dalam kode startup aplikasi, Anda perlu memuat file pengaturan.

    Kode startup untuk aplikasi Anda bervariasi berdasarkan jenis proyek Anda. Misalnya, aplikasi WPF menggunakan file App.xaml.cs untuk penyiapan global dan aplikasi Windows Forms menggunakan metode Program.Main untuk startup. Terlepas dari itu, Anda perlu melakukan dua hal saat startup:

    • Buat anggota internal static (Friend Shared di Visual Basic) yang dapat diakses dari mana saja di aplikasi Anda.
    • Selama proses memulai, tetapkan instans ke anggota tersebut.

    Contoh berikut membuat anggota bernama Config, menetapkan instans dalam metode Main, dan memuat string koneksi:

    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. Perbarui sisa kode Anda untuk menggunakan API konfigurasi baru.

  7. Hapus file App.config dari proyek.

    Peringatan

    Pastikan aplikasi Anda berjalan dengan benar tanpa file App.config. Cadangkan file App.config melalui kontrol sumber atau dengan menyalin file di tempat lain. Setelah menguji aplikasi secara menyeluruh, hapus file App.config.