Perubahan signifikan di .NET 5

Jika Anda memigrasikan aplikasi ke .NET 5, perubahan penting yang tercantum di sini mungkin memengaruhi Anda. Perubahan dikelompokkan menurut area teknologi, seperti ASP.NET Core atau kriptografi.

Artikel ini memuat informasi tentang apakah setiap perubahan besar bersifat kompatibel biner atau kompatibel sumber:

  • Kompatibel biner - Biner yang ada akan dimuat dan dijalankan dengan sukses tanpa kompilasi ulang, dan perilaku runtime tidak akan berubah.
  • Sumber kompatibel - Kode sumber akan berhasil dikompilasi tanpa perubahan saat menargetkan runtime baru atau menggunakan SDK atau komponen baru.

ASP.NET Core

Lihat Perubahan mendasar di ASP.NET Core 5.

Analisis kode

Judul Kompatibilitas Biner Kompatibel dengan sumber
Peringatan CA1416 ✔️
Peringatan CA1417 ✔️
Peringatan CA1831 ✔️
Peringatan CA2013 ✔️
Peringatan CA2014 ✔️
Peringatan CA2015 ✔️
Peringatan CA2200 ✔️
Peringatan CA2247 ✔️

Pustaka Utama .NET

Judul Kompatibilitas Biner Kompatibel dengan sumber
Perubahan API terkait penggunaan assembly untuk penerbitan file tunggal ✔️
Metode serialisasi BinaryFormatter tidak lagi disarankan ✔️
API keamanan akses kode sudah usang ✔️
CreateCounterSetInstance melempar InvalidOperationException ✔️
ActivityIdFormat Default adalah W3C ✔️
Environment.OSVersion mengembalikan versi yang benar ✔️
Nilai FrameworkDescription adalah .NET bukan .NET Core ✔️
API GAC sudah usang ✔️
Pemeriksaan intrinsik perangkat keras untuk IsSupported ✔️
IntPtr dan UIntPtr menerapkan IFormattable ✔️
LastIndexOf menangani string pencarian kosong ✔️
Jalur URI dengan karakter non-ASCII di Unix ✔️
KEDALUARSA API dengan ID diagnostik non-default ✔️
Properti usang pada ConsoleLoggerOptions ✔️
Kompleksitas LINQ OrderBy.First ✔️
Atribut OSPlatform diganti namanya atau dihapus ✔️
Paket Microsoft.DotNet.PlatformAbstractions dihapus ✔️
PrincipalPermissionAttribute sudah usang ✔️
Perubahan nama parameter dari versi pratinjau ✔️
Perubahan nama parameter dalam rakitan referensi ✔️
API Jarak Jauh sudah kedaluarsa ✔️
Urutan daftar Activity.Tags dibalik ✔️
Metode perbandingan SSE dan SSE2 menangani NaN ✔️
Thread.Abort sudah usang ✔️
Pengenalan URI jalur UNC di Unix ✔️
Jalur kode UTF-7 sudah usang ✔️
Perubahan perilaku untuk Vector2.Lerp dan Vector4.Lerp ✔️
Vektor<T> melempar NotSupportedException ✔️

Kriptografi

Judul Kompatibilitas Biner Kompatibel dengan sumber
API Kriptografi tidak didukung di browser ✔️
Cryptography.Oid hanya dapat diinisialisasi ✔️
Rangkaian sandi TLS bawaan di Linux ✔️
Membuat() kelebihan beban pada abstraksi kriptografi usang ✔️
Nilai FeedbackSize default berubah ✔️

Inti Kerangka Kerja Entitas

Lihat Melanggar perubahan di EF Core 5.0.

Globalisasi

Judul Kompatibilitas Biner Kompatibel dengan sumber
Menggunakan pustaka ICU di Windows ✔️
StringInfo dan TextElementEnumerator mematuhi UAX29 ✔️
Kategori Unicode diubah untuk karakter Latin-1 ✔️
Nilai TextInfo.ListSeparator berubah ✔️

Interop

Judul Kompatibilitas Biner Kompatibel dengan sumber
Dukungan untuk WinRT dihapus ✔️
Casting RCW ke InterfaceIsIInspectable menimbulkan pengecualian ✔️
Tidak ada pemeriksaan akhiran A/W pada platform non-Windows ✔️

Jaringan

Judul Kompatibilitas Biner Kompatibel dengan sumber
Penanganan jalur cookie sesuai dengan RFC 6265 ✔️
LocalEndPoint diperbarui setelah memanggil SendToAsync ✔️
MulticastOption.Group tidak menerima null ✔️
Aliran memungkinkan operasi Mulai berturut-turut ✔️
WinHttpHandler dihapus dari runtime .NET ✔️

SDK

Judul Kompatibilitas Biner Kompatibel dengan sumber
File Directory.Packages.props yang diimpor secara default ✔️
Kesalahan yang dihasilkan ketika proyek yang dapat dieksekusi mereferensikan executable yang tidak cocok ✔️
FrameworkReference diganti dengan WindowsSdkPackageVersion untuk Windows SDK ✔️
NETCOREAPP3_1 simbol pra-prosesor tidak ditentukan ✔️
OutputType diatur ke WinExe ✔️
Perubahan perilaku PublishDepsFilePath ✔️
Perubahan TargetFramework dari netcoreapp ke net ✔️
Aplikasi WinForms dan WPF menggunakan Microsoft.NET.Sdk ✔️

Keamanan

Judul Kompatibilitas Biner Kompatibel dengan sumber
API keamanan akses kode sudah usang ✔️
PrincipalPermissionAttribute sudah usang ✔️
Jalur kode UTF-7 sudah usang ✔️

Serialisasi

Judul Kompatibilitas Biner Kompatibel dengan sumber
BinaryFormatter.Deserialize membungkus ulang pengecualian ✔️
JsonSerializer.Deserialize memerlukan string karakter tunggal ✔️
aplikasi ASP.NET Core mendeserialisasi angka yang dikutip ✔️
JsonSerializer.Serialize memunculkan ArgumentNullException ✔️
Konstruktor non-publik dan tanpa parameter tidak digunakan untuk deserialisasi ✔️
Opsi dihormati saat menserialisasikan pasangan kunci-nilai ✔️

Formulir Windows

Judul Kompatibilitas Biner Kompatibel dengan sumber
Kode asli tidak dapat mengakses objek Windows Forms ✔️
OutputType diatur ke WinExe ✔️
DataGridView tidak mereset font kustom ✔️
Metode menghasilkan ArgumentException ✔️
Metode itu melempar ArgumentNullException ✔️
Properti memicu ArgumentOutOfRangeException ✔️
TextFormatFlags.ModifyString sudah usang ✔️
API DataGridView mengeluarkan InvalidOperationException ✔️
Aplikasi WinForms menggunakan Microsoft.NET.Sdk ✔️
Kontrol bilah status yang dihapus ✔️

WPF (Windows Presentation Foundation)

Judul Kompatibilitas Biner Kompatibel dengan sumber
OutputType diatur ke WinExe ✔️
Aplikasi WPF menggunakan Microsoft.NET.Sdk ✔️

Lihat juga