Bagikan melalui


Memutus perubahan di .NET 5

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

Artikel ini menunjukkan apakah setiap perubahan yang melanggar kompatibel dengan biner atau kompatibel dengan sumber:

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

Inti ASP.NET

Judul Kompatibel dengan biner Kompatibel dengan sumber
aplikasi ASP.NET Core mendeserialisasi nomor yang dikutip ✔️
API AzureAD.UI dan AzureADB2C.UI usang ✔️
Metode serialisasi BinaryFormatter usang ✔️
Sumber daya dalam perutean titik akhir adalah HttpContext ✔️
Paket integrasi Azure awalan Microsoft dihapus ✔️
Blazor: Logika prioritas rute berubah di aplikasi Blazor ✔️
Blazor: Dukungan browser yang diperbarui ✔️ ✔️
Blazor: Spasi kosong tidak signifikan yang dipangkas oleh pengkompilasi ✔️
Blazor: Jenis JSObjectReference dan JSInProcessObjectReference bersifat internal ✔️
Blazor: Kerangka kerja target paket NuGet berubah ✔️
Blazor: Fitur ProtectedBrowserStorage dipindahkan ke kerangka kerja bersama ✔️
Blazor: Bidang publik baca-baca RenderTreeFrame sekarang menjadi properti ✔️
Blazor: Logika validasi yang diperbarui untuk aset web statis ✔️
API Kriptografi tidak didukung di browser ✔️
Ekstensi: Perubahan referensi paket ✔️
Jenis Kestrel dan IIS BadHttpRequestException sudah usang ✔️
Instans HttpClient yang dibuat oleh kode status bilangan bulat log IHttpClientFactory ✔️
HttpSys: Negosiasi ulang sertifikat klien dinonaktifkan secara default ✔️
IIS: String kueri middleware UrlRewrite dipertahankan ✔️
Kestrel: Perubahan konfigurasi terdeteksi secara default ✔️
Kestrel: Versi protokol TLS default yang didukung berubah ✔️
Kestrel: HTTP/2 dinonaktifkan melalui TLS pada versi Windows yang tidak kompatibel ✔️ ✔️
Kestrel: Transportasi Libuv ditandai sebagai usang ✔️
Properti usang di ConsoleLoggerOptions ✔️
Kelas ResourceManagerWithCultureStringLocalizer dan anggota antarmuka WithCulture dihapus ✔️
API Pubternal dihapus ✔️
Konstruktor usang dihapus dalam middleware pelokalan permintaan ✔️
Middleware: Halaman kesalahan database ditandai sebagai usang ✔️
Middleware handler pengecualian melemparkan pengecualian asli ✔️ ✔️
ObjectModelValidator memanggil kelebihan beban baru Validasi ✔️
Pengodean nama cookie dihapus ✔️
Versi paket IdentityModel NuGet diperbarui ✔️
SignalR: Jenis opsi Protokol MessagePack Hub berubah ✔️
SignalR: Protokol Hub MessagePack dipindahkan ✔️
Metode UseSignalR dan Use Koneksi ions dihapus ✔️
Tipe konten CSV berubah menjadi sesuai standar ✔️

Analisis kode

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

Pustaka .NET Inti

Judul Kompatibel dengan biner Kompatibel dengan sumber
Perubahan API terkait rakitan untuk penerbitan file tunggal ✔️
Metode serialisasi BinaryFormatter usang ✔️
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 IsSupported intrinsik perangkat keras ✔️
IntPtr dan UIntPtr menerapkan IFormattable ✔️
LastIndexOf menangani string pencarian kosong ✔️
Jalur URI dengan karakter non-ASCII di Unix ✔️
Kedaluwarsa API dengan ID diagnostik non-default ✔️
Properti usang di 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 kedaluwarsa ✔️
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 Kompatibel dengan biner Kompatibel dengan sumber
API Kriptografi tidak didukung di browser ✔️
Cryptography.Oid hanya init ✔️
Suite sandi TLS default di Linux ✔️
Membuat() kelebihan beban pada abstraksi kriptografi usang ✔️
Nilai FeedbackSize default berubah ✔️

Entity Framework Core

Memutus perubahan di EF Core 5.0

Globalisasi

Judul Kompatibel dengan 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 Kompatibel dengan biner Kompatibel dengan sumber
Dukungan untuk WinRT dihapus ✔️
Casting RCW ke InterfaceIsIInspectable melemparkan pengecualian ✔️
Tidak ada pemeriksaan akhiran A/W pada platform non-Windows ✔️

Jaringan

Judul Kompatibel dengan 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 Kompatibel dengan 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 Kompatibel dengan biner Kompatibel dengan sumber
API keamanan akses kode sudah usang ✔️
PrincipalPermissionAttribute sudah usang ✔️
Jalur kode UTF-7 sudah usang ✔️

Serialisasi

Judul Kompatibel dengan biner Kompatibel dengan sumber
Pengecualian binaryFormatter.Deserialize rewraps ✔️
JsonSerializer.Deserialize memerlukan string karakter tunggal ✔️
aplikasi ASP.NET Core mendeserialisasi nomor yang dikutip ✔️
JsonSerializer.Serialize melempar ArgumenNullException ✔️
Konstruktor non-publik dan tanpa parameter tidak digunakan untuk deserialisasi ✔️
Opsi dihormati saat menserialisasikan pasangan kunci-nilai ✔️

Formulir Windows

Judul Kompatibel dengan biner Kompatibel dengan sumber
Kode asli tidak dapat mengakses objek Formulir Windows ✔️
OutputType diatur ke WinExe ✔️
DataGridView tidak mereset font kustom ✔️
Metode melempar ArgumentException ✔️
Metode melempar ArgumentNullException ✔️
Properti melempar ArgumenOutOfRangeException ✔️
TextFormatFlags.ModifikasiString sudah usang ✔️
API DataGridView melempar InvalidOperationException ✔️
Aplikasi WinForms menggunakan Microsoft.NET.Sdk ✔️
Kontrol bilah status yang dihapus ✔️

WPF

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

Lihat juga