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 alat .NET Upgrade Assistant untuk meningkatkan aplikasi Anda ke .NET.

API 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. Misalnya, .NET tidak menyediakan API siap pakai untuk mengakses Registri Windows seperti .NET Framework. Dukungan untuk Windows Registry disediakan oleh Microsoft.Win32.Registry paket NuGet. 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 Microsoft.Windows.Compatibility paket NuGet. 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 browser web

Proyek yang menargetkan teknologi desktop Windows, seperti Windows Presentation Foundation atau Formulir Windows, 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 Microsoft.Web.WebView2 paket NuGet 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. Versi CLI dari Asisten Peningkatan menangani konversi file App.config ke appsettings.json, tetapi ekstensi Visual Studio tidak.

Tip

Jika Anda tidak ingin menggunakan file appsettings.json , Anda dapat menambahkan System.Configuration.ConfigurationManager paket 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, System.Configuration.ConfigurationManager paket NuGet ditambahkan ke proyek sehingga kode Anda menggunakan file App.config terus dikompilasi.

Saat pustaka ditingkatkan ke .NET, pustaka tersebut memodernisasi dengan mendukung appsettings.json alih-alih App.config. Misalnya, penyedia pengelogan di .NET Framework yang telah ditingkatkan untuk .NET 6+ tidak lagi menggunakan App.config untuk pengaturan. Ada baiknya Anda mengikuti arahnya dan juga menjauh dari menggunakan App.config.

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

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

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

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

  3. Buat file bernama appsettings.json.

    1. Klik kanan pada file proyek di jendela Penjelajah Solusi dan pilih Tambahkan>Item Baru....
    2. Di 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 jendela Penjelajah Solusi, temukan file appsettings.json dan atur Properti berikut:

    • Tindakan Build: Konten
    • Salin ke Direktori Output: 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 App.xaml.cs file untuk penyiapan global dan aplikasi Formulir Windows menggunakan Program.Main metode untuk startup. Terlepas dari itu, Anda perlu melakukan dua hal saat startup:

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

    Contoh berikut membuat anggota bernama Config, menetapkan instans dalam Main metode , 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.

    Perhatian

    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 .