Bagikan melalui


Perubahan Penting di .NET 10

Jika Anda memigrasikan aplikasi ke .NET 10, perubahan yang mengakibatkan gangguan di sini dapat memengaruhi Anda. Perubahan dikelompokkan menurut area teknologi, seperti ASP.NET Core atau Windows Forms.

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.

Nota

Artikel ini sedang dalam dikerjakan. Ini bukan daftar lengkap perubahan besar di .NET 10.

ASP.NET Core

Judul Jenis perubahan
Pengalihan masuk cookie dinonaktifkan untuk titik akhir API yang diketahui Perubahan perilaku
Penghentian metode ekstensi WithOpenApi Sumber tidak kompatibel
Diagnostik pengecualian dihapus ketika TryHandleAsync mengembalikan true Perubahan perilaku
IActionContextAccessor dan ActionContextAccessor sudah usang Ketidakcocokan sumber/perubahan perilaku
Sertakan propertiOpenAPIAnalyzers dan penganalisis API MVC tidak digunakan lagi Sumber tidak kompatibel
IPNetwork dan ForwardedHeadersOptions.KnownNetworks sudah usang Sumber tidak kompatibel
Paket Microsoft.Extensions.ApiDescription.Client tidak digunakan lagi Sumber tidak kompatibel
Razor kompilasi runtime sudah usang Sumber tidak kompatibel
WebHostBuilder, IWebHost, dan WebHost sudah usang Sumber tidak kompatibel

Containers

Judul Jenis perubahan
Gambar default .NET menggunakan Ubuntu Perubahan perilaku

Pustaka Utama .NET

Judul Jenis perubahan
Perubahan perilaku pada ActivitySource.CreateActivity dan ActivitySource.StartActivity Perubahan perilaku
Pemrosesan nonfaulting Arm64 SVE memerlukan masker Biner/sumber tidak kompatibel
BufferedStream.WriteByte tidak lagi melakukan flush implisit Perubahan perilaku
resolusi kelebihan beban C# 14 dengan parameter rentang Perubahan perilaku
Perilaku pergeseran konsisten dalam matematika umum Perubahan perilaku
Penyebar konteks jejak default diperbarui ke standar W3C Perubahan perilaku
DriveInfo.DriveFormat mengembalikan jenis sistem file Linux Perubahan perilaku
Anotasi DynamicallyAccessedMembers dihapus dari ctor DefaultValueAttribute Biner/sumber tidak kompatibel
Ukuran struktur eksplisit yang tidak diizinkan dengan InlineArray Tidak kompatibel secara biner
FilePatternMatch.Stem diubah menjadi tidak dapat diubah ke null Ketidakcocokan sumber/perubahan perilaku
GnuTarEntry dan PaxTarEntry tidak lagi menyertakan atime dan ctime secara default Perubahan perilaku
Sekarang, pemrosesan LDAP DirectoryControl lebih ketat Perubahan perilaku
normalisasi versi MacCatalyst Perubahan perilaku
Runtime .NET tidak lagi menyediakan handler sinyal penghentian default Perubahan perilaku
System.Linq.AsyncEnumerable termasuk dalam pustaka inti Sumber tidak kompatibel
Validasi argumen untuk Type.MakeGenericSignatureType Perubahan perilaku

Cryptography

Judul Jenis perubahan
CompositeMLDsa diperbarui ke versi-08 Perubahan perilaku
CoseSigner.Key bisa null Perubahan perilaku/sumber tidak kompatibel
Anggota MLDsa dan SlhDsa 'SecretKey' berganti nama Sumber tidak kompatibel
Primitif kriptografi OpenSSL tidak didukung di macOS Perubahan perilaku
OpenSSL 1.1.1 atau yang lebih baru diperlukan di Unix Perubahan perilaku
Validasi pada X500DistinguishedName menjadi lebih ketat Perubahan perilaku
parameter kunci X509Certificate dan PublicKey dapat berupa null Perubahan perilaku/sumber tidak kompatibel
variabel lingkungan diganti namanya menjadi DOTNET_OPENSSL_VERSION_OVERRIDE Perubahan perilaku

Inti Kerangka Kerja Entitas

Perubahan yang merusak di EF Core 10

Extensions

Judul Jenis perubahan
BackgroundService menjalankan seluruh ExecuteAsync sebagai Task Perubahan perilaku
Memperbaiki masalah di GetKeyedService() dan GetKeyedServices() dengan AnyKey Perubahan perilaku
Nilai null dipertahankan dalam konfigurasi Perubahan perilaku
Pesan tidak lagi diduplikasi dalam output log Konsol Perubahan perilaku
ProviderAliasAttribute dipindahkan ke rakitan Microsoft.Extensions.Logging.Abstractions Sumber tidak kompatibel
Menghapus anotasi DynamicallyAccessedMembers dari kode Microsoft.Extensions.Configuration yang tidak aman Tidak kompatibel secara biner

Globalization

Judul Jenis perubahan
variabel lingkungan diganti namanya menjadi DOTNET_ICU_VERSION_OVERRIDE Perubahan perilaku

Alat penginstalan

Judul Jenis perubahan
API dotnet.acquire untuk VS Code tidak lagi selalu mengunduh versi terbaru Perubahan perilaku

Interop

Judul Jenis perubahan
Transmisi objek IDispatchEx COM ke IReflect gagal Perubahan perilaku
Aplikasi file tunggal tidak lagi mencari pustaka asli di direktori yang dapat dieksekusi Perubahan perilaku
Menentukan DllImportSearchPath.AssemblyDirectory hanya mencari direktori rakitan Perubahan perilaku

Jaringan

Judul Jenis perubahan
Dukungan HTTP/3 dinonaktifkan secara default dengan PublishTrimmed Sumber tidak kompatibel
MailAddress memberlakukan validasi untuk titik berturut-turut Perubahan perilaku
Respon HTTP streaming diaktifkan secara default pada klien HTTP browser Perubahan perilaku
Uri batas panjang dihapus Perubahan perilaku

Reflection

Judul Jenis perubahan Versi yang diperkenalkan
Anotasi yang lebih terbatas pada InvokeMember/FindMembers/DeclaredMembers Perilaku/sumber tidak kompatibel

SDK dan MSBuild

Judul Jenis perubahan
.NET CLI --interactive akan menetapkan ke default true dalam konteks penggunaan Perubahan perilaku
dotnet Perintah CLI mencatat ke stderr data yang tidak relevan dengan perintah Perubahan perilaku
Kemasan alat .NET membuat paket alat khusus RuntimeIdentifier Perubahan perilaku
Konfigurasi beban kerja default dari 'manifes longgar' ke mode 'kumpulan beban kerja' Perubahan perilaku
Cakupan kode EnableDynamicNativeInstrumentation secara default adalah false Perubahan perilaku
filednx.ps1 tidak lagi disertakan dalam .NET SDK Sumber tidak kompatibel
dotnet new sln default ke format file SLNX Perubahan perilaku
dotnet package list melakukan pemulihan Perubahan perilaku
dotnet restore mengaudit paket transitif Perubahan perilaku
dotnet tool install --local membuat manifes secara default Perubahan perilaku
dotnet watch mencatat ke stderr daripada stdout Perubahan perilaku
project.json tidak didukung di dotnet restore Sumber tidak kompatibel
Dukungan sidik jari SHA-1 tidak digunakan lagi di dotnet nuget sign Perubahan perilaku
MSBUILDCUSTOMBUILDEVENTWARNING jalan keluar dihapus Perubahan perilaku
Penanganan sumber daya budaya kustom MSBuild Perubahan perilaku
NU1510 dikeluarkan untuk referensi langsung yang dihapus oleh NuGet Sumber tidak kompatibel
Paket NuGet tanpa aset runtime tidak disertakan dalam deps.json Sumber tidak kompatibel
PackageReference tanpa versi menimbulkan kesalahan Perubahan perilaku
PrunePackageReference memprivatisasi referensi yang dapat dipangkas langsung Perubahan perilaku
Peringatan HTTP dipromosikan ke kesalahan dalam dotnet package list dan dotnet package search Perubahan perilaku/sumber tidak kompatibel
variabel lingkungan NUGET_ENABLE_ENHANCED_HTTP_RETRY dihapus Perubahan perilaku
NuGet mencatat kesalahan untuk ID paket yang tidak valid Perubahan perilaku
ToolCommandName tidak diatur untuk paket bukan alat Sumber tidak kompatibel

Serialization

Judul Jenis perubahan
System.Text.Json memeriksa konflik nama properti Perubahan perilaku
XmlSerializer tidak lagi mengabaikan properti yang ditandai dengan ObsoleteAttribute Perubahan perilaku

Formulir Windows

Judul Jenis perubahan
Kedaluwarsa API Sumber tidak kompatibel
Aplikasi yang mereferensikan WPF dan WinForms harus membedakan jenis MenuItem dan ContextMenu Sumber tidak kompatibel
Mengganti nama parameter di HtmlElement.InsertAdjacentElement Sumber tidak kompatibel
Pemangkasan gambar kotak centang TreeView Perubahan perilaku
StatusStrip menggunakan Mode Render Sistem secara default Perubahan perilaku
System.Drawing OutOfMemoryException berubah menjadi ExternalException Perubahan perilaku

Windows Presentation Foundation (WPF)

Judul Jenis perubahan
Penggunaan *ColumnDefinitions* dan *RowDefinitions* kosong tidak diperbolehkan Sumber tidak kompatibel
Penggunaan DynamicResource yang salah menyebabkan crash aplikasi Ketidakcocokan sumber/perubahan perilaku