Modernisasi setelah memutakhirkan ke .NET dari .NET Framework
Artikel
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:
Hapus paket atau pustaka NuGet jika dirujuk System.Configuration.ConfigurationManager oleh aplikasi yang ditingkatkan.
Klik kanan pada file proyek di jendela Penjelajah Solusi dan pilih Tambahkan>Item Baru....
Di kotak pencarian, masukkan json.
Pilih templat File Konfigurasi JSON JavaScript dan atur Nama ke appsettings.json.
Tekan Tambahkan untuk menambahkan file baru ke proyek.
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
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
Perbarui sisa kode Anda untuk menggunakan API konfigurasi baru.
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 .
Berkolaborasi dengan kami di GitHub
Sumber untuk konten ini dapat ditemukan di GitHub, yang juga dapat Anda gunakan untuk membuat dan meninjau masalah dan menarik permintaan. Untuk informasi selengkapnya, lihat panduan kontributor kami.
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik:
Dalam modul ini, Anda akan mempelajari kapan, mengapa, dan bagaimana cara memodernisasi aplikasi ASP.NET Framework ke ASP.NET Core menggunakan Upgrade Assistant.
Bangun solusi end-to-end di Microsoft Azure untuk membuat Azure Functions, menerapkan dan mengelola aplikasi web, mengembangkan solusi yang menggunakan penyimpanan Azure, dan banyak lagi.