Bagikan melalui


Perubahan yang mengganggu di .NET 9

Jika Anda memigrasikan aplikasi ke .NET 9, perubahan yang mengganggu yang tercantum di sini dapat berdampak pada Anda. Perubahan dikelompokkan berdasarkan bidang teknologi, seperti ASP.NET Core atau Formulir Windows.

Artikel ini mengategorikan setiap perubahan signifikan sebagai tidak kompatibel secara biner atau tidak kompatibel secara sumber, atau perubahan perilaku:

  • Biner tidak kompatibel - Saat dijalankan terhadap runtime atau komponen baru, biner yang ada mungkin mengalami perubahan perilaku yang melanggar, seperti kegagalan memuat atau mengeksekusi, dan jika demikian, memerlukan kompilasi ulang.

  • Sumber tidak kompatibel - Saat dikompilasi ulang menggunakan SDK atau komponen baru atau untuk menargetkan runtime baru, kode sumber yang ada mungkin memerlukan perubahan sumber agar berhasil dikompilasi.

  • Perubahan perilaku - Kode dan biner yang ada mungkin berperilaku berbeda saat runtime. Jika perilaku baru tidak diinginkan, kode yang ada perlu diperbarui dan dikompilasi ulang.

ASP.NET Core

Lihat Perubahan yang memengaruhi kompatibilitas di ASP.NET Core 9.

Kontainer

Judul Jenis perubahan Versi yang diperkenalkan
Gambar kontainer tidak lagi menginstal zlib Perubahan perilaku Pratinjau 7
gambar .NET Monitor disederhanakan ke tag khusus versi Perubahan perilaku Pratinjau 5

Pustaka Utama .NET

Judul Jenis perubahan Versi yang diperkenalkan
Menambahkan ZipArchiveEntry dengan CompressionLevel mengatur bit penanda tujuan umum pada header direktori pusat ZIP Perubahan perilaku Pratinjau 5
Dukungan UnsafeAccessor yang diubah untuk generik non-terbuka Perubahan perilaku Pratinjau 6
Penonaktifan API dengan ID diagnostik kustom Sumber tidak kompatibel (Beberapa)
Resolusi kelebihan beban ambigu yang memengaruhi operator implisit StringValues Sumber tidak kompatibel GA
Maksimum panjang BigInteger Perubahan perilaku Pratinjau 6
BinaryReader.ReadString() mengembalikan "\uFFFD" pada urutan yang rusak Perubahan perilaku Pratinjau 7
C# lebih memilih resolusi kelebihan beban tipe rentang params Sumber tidak kompatibel
Pembuatan tipe array dari System.Void tidak diperbolehkan Perubahan perilaku Pratinjau 1
Default Equals() dan GetHashCode() lempar untuk jenis yang ditandai dengan InlineArrayAttribute Perubahan perilaku Pratinjau 6
EnumConverter memvalidasi jenis terdaftar adalah enum Perubahan perilaku Pratinjau 7
FromKeyedServicesAttribute tidak lagi menginjeksikan parameter yang tidak berfungsi sebagai kunci Perubahan perilaku RC 1
Panggilan balik awal IncrementingPollingCounter tidak sinkron Perubahan perilaku RC 1
Penerapan batas ukuran struktur array dalam baris Perubahan perilaku Pratinjau 1
InMemoryDirectoryInfo menambahkan rootDir di awal file Perubahan perilaku Pratinjau 1
Overload TimeSpan.From*() baru yang menerima bilangan bulat Sumber tidak kompatibel Pratinjau 3
Versi baru dari beberapa paket OOB Sumber tidak kompatibel Pratinjau 5
RuntimeHelpers.GetSubArray mengembalikan jenis yang berbeda Perubahan perilaku Pratinjau 1
Pemadatan fungsi String.Trim(params ReadOnlySpan<char>) dihapus Sumber/biner tidak kompatibel GA
Dukungan untuk variabel lingkungan kosong Perubahan perilaku Pratinjau 6
Nama dan komentar ZipArchiveEntry menghormati bendera UTF8 Perubahan perilaku RC 1

Kriptografi

Judul Jenis perubahan Versi yang diperkenalkan
API dihapus dari System.Security.Cryptography.Pkcs netstandard2.0 Sumber tidak kompatibel GA
SafeEvpPKeyHandle.DuplicateHandle meningkatkan referensi pegangan Perubahan perilaku Pratinjau 7
Beberapa konstruktor X509Certificate2 dan X509Certificate sudah usang Sumber tidak kompatibel Pratinjau 7
Masa pakai kunci privat Windows disederhanakan Perubahan perilaku Pratinjau 7

Penyebaran

Judul Jenis perubahan Versi yang diperkenalkan
Paket runtime desktop MonoVM Windows/macOS/Linux yang sudah tidak digunakan lagi Sumber tidak kompatibel Pratinjau 7
Variabel lingkungan lebih diutamakan dalam pengaturan konfigurasi runtime aplikasi Perubahan perilaku GA

Inti Kerangka Kerja Entitas

Lihat Perubahan yang mematahkan kompatibilitas pada EF Core 9.

Interop

Judul Jenis perubahan Versi yang diperkenalkan
CET didukung secara default Tidak kompatibel secara biner Pratinjau 6

Kompilator JIT

Judul Jenis perubahan Versi yang diperkenalkan
Konversi titik mengambang ke bilangan bulat bersifat saturasi Perubahan perilaku Pratinjau 4
Beberapa API SVE dihapus Sumber tidak kompatibel RC 2

Jaringan

Judul Jenis perubahan Versi yang diperkenalkan
HttpClient melaporkan metrik server.port tanpa syarat Perubahan perilaku Pratinjau 7
Logging pada HttpClientFactory secara otomatis meredaksi nilai header secara default Perubahan perilaku RC 1
HttpClientFactory menggunakan SocketsHttpHandler sebagai handler utama Perubahan perilaku Pratinjau 6
HttpListenerRequest.UserAgent bisa bernilai null Sumber tidak kompatibel Pratinjau 1
Redaksi kueri URI dalam peristiwa HttpClient EventSource Perubahan perilaku Pratinjau 7
Penyensoran kueri URI pada log IHttpClientFactory Perubahan perilaku Pratinjau 7

SDK dan MSBuild

Judul Jenis perubahan Versi yang diperkenalkan
dotnet sln add tidak mengizinkan nama file yang tidak valid Perubahan perilaku 9.0.2xx
dotnet watch tidak kompatibel dengan Hot Reload untuk kerangka kerja lama Perubahan perilaku RC 1
dotnet workload perintah perubahan output Perubahan perilaku Pratinjau 1
installer versi repo tidak lagi didokumenkan Perubahan perilaku Pratinjau 5
Penanganan sumber daya budaya kustom MSBuild Perubahan perilaku 9.0.200/9.0.300
RID default baru yang digunakan saat menargetkan .NET Framework Sumber tidak kompatibel GA
Pencatat Terminal adalah default Perubahan perilaku Pratinjau 1
Persyaratan versi untuk .NET 9 SDK Sumber tidak kompatibel GA
Peringatan yang dipancarkan untuk target .NET Standard 1.x Sumber tidak kompatibel Pratinjau 6
Peringatan yang dipancarkan untuk target .NET 7 Sumber tidak kompatibel GA

Serialisasi

Judul Jenis perubahan Versi yang diperkenalkan
BinaryFormatter selalu melempar Perubahan perilaku Pratinjau 6
Atribut Nullable JsonDocument didesserialisasi ke JsonValueKind.Null Perubahan perilaku Pratinjau 1
pembaca metadata System.Text.Json sekarang menghilangkan karakter escape dari nama properti metadata Perubahan perilaku GA

Formulir Windows

Judul Jenis perubahan Versi yang diperkenalkan
BindingSource.SortDescriptions tidak menghasilkan null Perubahan perilaku Pratinjau 1
Perubahan pada anotasi kerentanan terhadap nilai null Sumber tidak kompatibel Pratinjau 1
ComponentDesigner.Initialize melempar ArgumentNullException Perubahan perilaku Pratinjau 1
DataGridViewRowAccessibleObject.Name indeks baris awal Perubahan perilaku Pratinjau 1
Dukungan IMsoComponent bersifat opsional Perubahan perilaku Pratinjau 2
Penganalisis keamanan baru Sumber tidak kompatibel RC 1
Tidak terkecuali jika DataGridView null Perubahan perilaku Pratinjau 1
PictureBox menghasilkan pengecualian HttpClient Perubahan perilaku Pratinjau 6
StatusStrip menggunakan perender default yang berbeda Perubahan perilaku GA

WPF (Windows Presentation Foundation)

Judul Jenis perubahan Versi yang diperkenalkan
GetXmlNamespaceMaps perubahan jenis Perubahan perilaku/Sumber tidak kompatibel Pratinjau 3

Lihat juga