Bagikan melalui


Apa yang baru di .NET 9

Pelajari tentang fitur baru di .NET 9 dan temukan tautan ke dokumentasi lebih lanjut.

.NET 9, penerus .NET 8, memiliki fokus khusus pada aplikasi dan performa cloud-native. Ini akan didukung selama 18 bulan sebagai rilis dukungan jangka standar (STS). Anda dapat mengunduh .NET 9 di sini.

Baru untuk .NET 9, tim pengembang menerbitkan pembaruan pratinjau .NET 9 pada Diskusi GitHub. Itu adalah tempat yang bagus untuk mengajukan pertanyaan dan memberikan umpan balik tentang rilis.

Runtime .NET

Runtime .NET 9 mencakup model atribut baru untuk pengaturan fitur dengan dukungan pemangkasan. Atribut baru memungkinkan penentuan sakelar fitur yang dapat digunakan pustaka untuk mengubah area fungsionalitas.

Pengumpulan sampah mencakup fitur adaptasi dinamis terhadap ukuran aplikasi yang digunakan sebagai pengganti default dari Server GC.

Runtime juga mencakup banyak peningkatan performa, termasuk pengoptimalan perulangan, inlining, serta vektorisasi dan pembuatan kode Arm64.

Untuk informasi selengkapnya, lihat Apa yang baru dalam runtime .NET 9.

Pustaka .NET

System.Text.Json menambahkan dukungan untuk anotasi tipe referensi nullable dan mengekspor skema JSON dari tipe. Ini menambahkan opsi baru yang memungkinkan Anda menyesuaikan indentasi JSON tertulis dan membaca beberapa nilai JSON tingkat akar dari satu aliran.

Di LINQ, metode baru CountBy dan AggregateBy memungkinkan untuk mengagregasi status dengan kunci tanpa perlu mengalokasikan pengelompokan perantara melalui GroupBy.

Untuk jenis koleksi, jenis System.Collections.Generic.PriorityQueue<TElement,TPriority> menyertakan metode Remove(TElement, TElement, TPriority, IEqualityComparer<TElement>) baru yang dapat Anda gunakan untuk memperbarui prioritas item dalam antrean.

Untuk kriptografi, .NET 9 menambahkan metode hash sekali-jalan baru pada tipe CryptographicOperations. Ini juga menambahkan kelas baru yang menggunakan algoritma KMAC.

Untuk refleksi, jenis PersistedAssemblyBuilder baru memungkinkan Anda menyimpan rakitan yang dipancarkan. Kelas baru ini juga mencakup dukungan PDB, yang berarti Anda dapat memancarkan info simbol dan menggunakannya untuk men-debug rakitan yang dihasilkan.

Kelas TimeSpan mencakup metode From* baru yang memungkinkan Anda membuat objek TimeSpan dari int (bukan double). Metode ini membantu menghindari kesalahan yang disebabkan oleh ketidakakuratan yang melekat dalam perhitungan floating-point.

Untuk informasi selengkapnya, lihat Apa yang baru dalam pustaka .NET 9.

.NET SDK

.NET 9 SDK memperkenalkan set beban kerja , di mana semua beban kerja Anda tetap berada di satu versi tertentu hingga diperbarui secara eksplisit. Untuk alat, opsi baru untuk dotnet tool install memungkinkan pengguna (alih-alih penulis alat) memutuskan apakah alat diizinkan untuk berjalan pada versi runtime .NET yang lebih baru daripada versi yang ditargetkan alat. Sebagai tambahan:

  • Pengujian unit memiliki integrasi MSBuild yang lebih baik yang memungkinkan Anda menjalankan pengujian secara paralel.
  • Audit keamanan NuGet berjalan pada referensi paket langsung dan transitif, secara default.
  • Pencatat terminal diaktifkan secara default dan juga telah meningkatkan kegunaan. Misalnya, jumlah total kegagalan dan peringatan sekarang direkapitulasi di akhir proses build.
  • Penganalisis skrip MSBuild baru ("pemeriksaan build") tersedia.
  • SDK dapat mendeteksi dan menyesuaikan ketidakcocokan versi antara .NET SDK dan MSBuild.
  • Perintah dotnet workload history menunjukkan riwayat penginstalan dan modifikasi beban kerja untuk penginstalan .NET SDK saat ini.

Untuk informasi selengkapnya, lihat Apa yang baru dalam SDK untuk .NET 9.

Blok penyusun AI

.NET 9 memperkenalkan lapisan abstraksi C# terpadu melalui paket Microsoft.Extensions.AI dan Microsoft.Extensions.VectorData. Abstraksi ini memfasilitasi interaksi dengan layanan AI, termasuk model bahasa kecil dan besar (SLM dan LLM), penyematan, penyimpanan vektor, dan middleware.

.NET 9 juga menyertakan jenis tensor baru yang memperluas kemampuan AI. TensorPrimitives dan jenis Tensor<T> baru memperluas kemampuan AI dengan mengaktifkan pengodean, manipulasi, dan komputasi data multidimensi yang efisien. Anda dapat menemukan jenis ini dalam rilis terbaru paket System.Numerics.Tensors.

TensorPrimitives

  • Cakupan metode yang diperluas: Meningkat dari 40 menjadi hampir 200 kelebihan beban, sekarang termasuk operasi numerik yang mirip dengan Math, MathF, dan INumber<T> tetapi untuk rentang nilai.
  • Peningkatan performa: Banyak operasi sekarang dioptimalkan SIMD untuk performa yang lebih baik.
  • Kelebihan muatan generik: Mendukung semua jenis T yang mengimplementasikan antarmuka tertentu, memperluas cakupan lebih dari sekadar rentang nilai float di .NET.

Tensor<T>

  • Dibangun di atas TensorPrimitives untuk operasi matematika yang efisien.
  • Menyediakan interop yang efisien dengan pustaka AI (ML.NET, TorchSharp, ONNX Runtime) menggunakan nol salinan jika memungkinkan.
  • Memungkinkan manipulasi data yang mudah dan efisien dengan operasi pengindeksan dan pengirisan.
  • Apakah bersifat eksperimental di .NET 9?

ML.NET

ML.NET adalah kerangka kerja lintas platform sumber terbuka yang memungkinkan integrasi model pembelajaran mesin kustom ke dalam aplikasi .NET.

ML.NET 4.0 membawa peningkatan berikut:

  • Cara baru untuk mengonfigurasi opsi MLContext secara terprogram.
  • Muat model ONNX sebagai Stream.
  • Peningkatan DataFrame.
  • Kemampuan baru untuk tokenizer .
  • (Eksperimental) Port TorchSharp dari keluarga model Llama dan Phi.
  • (Eksperimental) API alur CausalLM.

Untuk informasi selengkapnya, lihat Apa yang baru di ML.NET.

Tokenizers

Pustaka Microsoft.ML.Tokenizers memberi pengembang .NET kemampuan untuk mengodekan dan mendekode teks ke token. Untuk skenario AI, penting untuk mengelola konteks, menghitung biaya, dan memproses teks saat bekerja dengan model lokal.

Rilis terbaru memperkenalkan kemampuan baru yang signifikan untuk tokenizer:

  • Model Tiktoken untuk GPT (3, 3,5, 4, 4o, o1) dan Llam3
  • Llama (menggunakan SentencePiece) untuk model Llama dan Mistral
  • CodeGen untuk model pembuatan kode seperti codegen-350M-mono
  • Phi2 (berdasarkan CodeGen) untuk model Microsoft Phi2
  • WordPiece
  • Bert (berdasarkan WordPiece) untuk model yang didukung Bert seperti optimum---all-MiniLM-L6-v2

.NET Aspire

.NET Aspire adalah sekumpulan alat, templat, dan paket yang canggih untuk membangun aplikasi siap produksi yang dapat diamati. Rilis terbaru .NET Aspire mencakup peningkatan pada dasbor dan manajemen siklus hidup sumber daya. Ini juga menambahkan integrasi dan API baru untuk lebih banyak fleksibilitas selama pengembangan. .NET Aspire 9 berfungsi dengan aplikasi .NET 9 dan .NET 8. Untuk informasi selengkapnya, lihat Apa yang baru dalam .NET Aspire 9.

ASP.NET Core

Aplikasi ASP.NET Core yang dibangun dengan .NET 9 aman secara default, memiliki dukungan yang diperluas untuk kompilasi di muka, dan peningkatan pemantauan serta pelacakan. Dengan peningkatan performa, Anda akan melihat throughput yang lebih tinggi dan waktu mulai yang lebih cepat, dan semuanya dengan penggunaan memori yang lebih sedikit. ASP.NET Core di .NET 9 meliputi:

  • Penanganan file statis yang dioptimalkan, seperti JavaScript dan CSS, pada waktu build dan penerbitan dengan penerapan versi sidik jari otomatis.
  • Blazor: Templat baru untuk aplikasi Hybrid dan Web, pendeteksian mode render komponen, pengalaman rekoneksi baru dengan rendering server.
  • API-API: Dukungan bawaan untuk pembuatan dokumen OpenAPI menggunakan Microsoft.AspNetCore.OpenAPIdan dukungan asli AOT yang ditingkatkan.
  • Meningkatkan keamanan dengan API baru untuk autentikasi dan otorisasi.
  • Penyiapan yang lebih mudah untuk sertifikat pengembangan tepercaya di Linux untuk mengaktifkan HTTPS selama pengembangan.

Ini hanya beberapa fitur dan peningkatan di .NET 9. Untuk informasi selengkapnya, lihat Apa yang baru di ASP.NET Core 9.0.

.NET MAUI

Fokus .NET Multi-platform App UI (.NET MAUI) di .NET 9 adalah peningkatan performa dan keandalan, dan integrasi yang lebih dalam untuk aplikasi desktop dan seluler. .NET MAUI mencakup implementasi baru CollectionView dan CarouselView yang lebih berkinerja untuk iOS dan Mac Catalyst, pembaruan kontrol yang ada, peristiwa siklus hidup aplikasi baru, serta peningkatan AOT Native dan pemangkasan untuk memperbaiki ukuran aplikasi dan waktu mulai. Sebagai tambahan:

  • Kontrol desktop TitleBar baru tersedia untuk Windows.
  • Kontrol HybridWebView baru memungkinkan penyertaan konten berkemampuan JavaScript yang lebih mudah dari kerangka kerja seperti ReactJS, Vue.js, dan Angular.
  • Entry sekarang mendukung mode keyboard tambahan.
  • Pengendali kontrol secara otomatis memutuskan sambungan dari kontrolnya jika memungkinkan.
  • MainPage tidak digunakan lagi demi mengatur halaman utama aplikasi dengan mengambil alih kelas Application.CreateWindow(IActivationState).

Untuk informasi selengkapnya tentang fitur baru ini dan lainnya, lihat Apa yang baru di .NET MAUI untuk .NET 9.

EF Core

Entity Framework Core mencakup pembaruan signifikan pada penyedia database untuk Azure Cosmos DB for NoSQL. Ini juga mencakup beberapa langkah menuju kompilasi AOT dan kueri yang telah dikompilasi sebelumnya, di antara peningkatan lainnya. Untuk informasi selengkapnya, lihat Apa yang Baru di EF Core 9.

C# 13

C# 13 dikirim dengan .NET 9 SDK dan menyertakan fitur baru berikut:

  • koleksi params
  • Jenis lock baru dan semantik
  • Urutan escape baru - \e
  • Penyempurnaan tipe alami pada kelompok metode
  • Akses pengindeks implisit di penginisialisasi objek
  • Mengaktifkan ref lokal dan konteks unsafe dalam iterator dan metode asinkron
  • Mengaktifkan jenis ref struct untuk mengimplementasikan antarmuka
  • Izinkan jenis struct ref sebagai argumen untuk parameter jenis dalam generik.
  • Properti parsial dan pengindeks sekarang diizinkan dalam tipe partial.
  • Prioritas resolusi kelebihan beban memungkinkan penulis pustaka untuk menunjuk satu kelebihan beban sebagai lebih baik daripada yang lain.

Selain itu, C# 13 menambahkan fitur pratinjau: properti dengan dukungan field.

Untuk informasi lebih lanjut, lihat Apa yang baru dalam C# 13.

F# 9

F# 9 dikirim dengan .NET 9 SDK dan menyertakan fitur baru berikut:

  • Jenis referensi yang bisa bernilai null
  • Union diskriminatif .Is* properties
  • Pola aktif parsial dapat mengembalikan bool alih-alih opsi unit
  • Lebih disarankan menggunakan metode ekstensi daripada properti intrinsik ketika argumen diberikan
  • Ekspresi komputasi tanpa isi
  • Direktif hash diizinkan untuk mengambil argumen yang bukan berupa string
  • Memperluas direktif #help pada fsi untuk menampilkan dokumentasi dalam read-eval-print loop (REPL)
  • Izinkan #nowarn mendukung awalan FS pada kode kesalahan untuk menonaktifkan peringatan
  • Peringatan tentang atribut TailCall pada fungsi non-rekursif atau nilai yang terikat let
  • Menerapkan target atribut
  • Fungsi acak untuk koleksi
  • Dukungan ekspresi kumpulan C# untuk daftar dan himpunan F#
  • Berbagai peningkatan produktivitas, performa, dan alat pengembang

Untuk informasi selengkapnya, lihat Apa yang baru di F# 9.

Windows Presentation Foundation

WPF di .NET 9 menghadirkan dukungan yang ditingkatkan untuk membangun aplikasi modern dengan beberapa penyempurnaan tema dan banyak lagi:

  • Dukungan untuk tema Windows Fluent.
  • Dukungan tema untuk mode terang dan gelap Windows ditambahkan.
  • Tema mendukung warna Aksen Windows sekarang.
  • Render font telah ditingkatkan untuk mendukung ligatur berbasis tanda hubung.
  • BinaryFormatter tidak lagi didukung.

Untuk informasi selengkapnya, lihat Apa yang baru dalam WPF untuk .NET 9.

Formulir Windows

WinForms di .NET 9 menghadirkan dukungan untuk tema baru, peningkatan untuk pengembangan asinkron, dan banyak lagi:

  • Form dan TaskDialog mendukung ShowDialogAsync sekarang. (Fitur eksperimental)
  • BinaryFormatter tidak lagi didukung.
  • Dukungan eksperimental untuk merender aplikasi dalam mode gelap, seperti yang didukung oleh Windows.
  • FolderBrowserDialog dan ToolStrip mengalami beberapa peningkatan kecil.
  • Pustaka Sistem.Drawing telah memiliki banyak peningkatan, termasuk pembungkusan efek GDI+, dukungan untuk ReadOnlySpan, dan peningkatan dalam pembuatan kode interop.

Untuk informasi selengkapnya, lihat Apa yang baru di Windows Forms untuk .NET 9.

Lihat juga