Yang baru di .NET 5
.NET 5 adalah rilis utama berikutnya dari .NET Core setelah 3.1. Kami menamai rilis baru ini .NET 5 alih-alih .NET Core 4 karena dua alasan:
- Kami melewati nomor versi 4.x untuk menghindari kebingungan dengan .NET Framework 4.x.
- Kami menjatuhkan "Core" dari namanya untuk menekankan bahwa ini adalah implementasi utama .NET ke depannya. .NET 5 mendukung lebih banyak jenis aplikasi dan lebih banyak platform daripada .NET Core atau .NET Framework.
ASP.NET Core 5.0 didasarkan pada .NET 5 tetapi mempertahankan nama "Core" untuk menghindari kebingungan dengan ASP.NET MVC 5. Demikian juga, Entity Framework Core 5.0 mempertahankan nama "Core" untuk menghindari membingungkannya dengan Kerangka Kerja Entitas 5 dan 6.
.NET 5 mencakup peningkatan berikut dan fitur baru dibandingkan dengan .NET Core 3.1:
- Pembaruan C#
- Pembaruan F#
- Pembaruan Visual Basic
- Fitur baru System.Text.Json
- Aplikasi file tunggal
- Pemangkasan aplikasi
- Intrinsik Windows Arm64 dan Arm64
- Dukungan alat untuk penelusuran kesalahan cadangan
- Pustaka runtime adalah 80% dianotasikan untuk jenis referensi nullable
- Peningkatan performa:
.NET 5 tidak menggantikan .NET Framework
.NET 5 dan versi yang lebih baru adalah implementasi utama .NET ke depannya, tetapi .NET Framework 4.x masih didukung. Tidak ada rencana untuk memindahkan teknologi berikut dari .NET Framework ke .NET 5, tetapi ada alternatif di .NET:
Teknologi | Alternatif yang direkomendasikan |
---|---|
Formulir Web | ASP.NET Core Blazor atau Razor Pages |
Alur Kerja Windows (WF) | Alur Kerja Elsa |
Windows Communication Foundation
Implementasi asli Windows Communication Foundation (WCF) hanya didukung pada Windows. Namun, ada port klien yang tersedia dari .NET Foundation. Ini sepenuhnya sumber terbuka, lintas platform, dan didukung oleh Microsoft. Paket NuGet inti tercantum di bawah ini:
- System.ServiceModel.Duplex
- System.ServiceModel.Federation
- System.ServiceModel.Http
- System.ServiceModel.NetTcp
- System.ServiceModel.Primitives
- System.ServiceModel.Security
Komponen server yang melengkapi pustaka klien yang disebutkan di atas tersedia melalui CoreWCF. Pada April 2022, CoreWCF secara resmi didukung oleh Microsoft. Namun, untuk alternatif WCF, pertimbangkan gRPC.
.NET 5 tidak menggantikan .NET Standard
Pengembangan aplikasi baru dapat menentukan net5.0
Moniker Kerangka Kerja Target (TFM) untuk semua jenis proyek, termasuk pustaka kelas. Berbagi kode antara beban kerja .NET 5 disederhanakan: yang Anda butuhkan adalah net5.0
TFM.
Untuk aplikasi dan pustaka .NET 5, net5.0
TFM menggabungkan dan mengganti netcoreapp
TFM dan netstandard
. Namun, jika Anda berencana untuk berbagi kode antara beban kerja .NET Framework, .NET Core, dan .NET 5, Anda dapat melakukannya dengan menentukan netstandard2.0
sebagai TFM Anda. Untuk informasi selengkapnya, lihat .NET Standard 2.0.
Pembaruan C#
Pengembang yang menulis aplikasi .NET 5 akan memiliki akses ke versi dan fitur C# terbaru. .NET 5 dipasangkan dengan C# 9, yang membawa banyak fitur baru ke bahasa tersebut. Berikut adalah beberapa sorotan:
Rekaman: Jenis referensi dengan semantik kesetaraan berbasis nilai dan mutasi non-destruktif yang didukung oleh ekspresi baru
with
.Pencocokan pola relasional: Memperluas kemampuan pencocokan pola ke operator relasional untuk evaluasi dan ekspresi komparatif, termasuk pola logis - kata kunci
and
baru , ,or
dannot
.Pernyataan tingkat atas: Sebagai sarana untuk mempercepat adopsi dan pembelajaran C#,
Main
metode dapat dihilangkan, dan aplikasi sesingkat contoh berikut valid:System.Console.Write("Hello world!");
Penunjuk fungsi: Konstruksi bahasa yang mengekspos opkode bahasa perantara (IL) berikut:
ldftn
dancalli
.
Untuk informasi selengkapnya tentang fitur C# 9 yang tersedia, lihat Apa yang baru di C# 9.
Generator sumber
Selain beberapa fitur C# baru yang disorot, generator sumber masuk ke proyek pengembang. Generator sumber memungkinkan kode yang berjalan selama kompilasi untuk memeriksa program Anda dan menghasilkan file tambahan yang dikompilasi bersama dengan sisa kode Anda.
Untuk informasi selengkapnya tentang generator sumber, lihat Memperkenalkan generator sumber C# dan sampel generator sumber C#.
Pembaruan F#
F# adalah bahasa pemrograman fungsional .NET, dan dengan .NET 5, pengembang memiliki akses ke F# 5. Salah satu fitur baru adalah string terinterpolasi, mirip dengan string terinterpolasi di C#, dan bahkan JavaScript.
let name = "David"
let age = 36
let message = $"{name} is {age} years old."
Selain interpolasi string dasar, ada interpolasi yang ditik. Dengan interpolasi yang ditik, jenis tertentu harus cocok dengan penentu format.
let name = "David"
let age = 36
let message = $"%s{name} is %d{age} years old."
Format ini mirip sprintf
dengan fungsi yang memformat string berdasarkan input jenis aman.
Untuk informasi selengkapnya, lihat Apa yang baru di F# 5.
Pembaruan Visual Basic
Tidak ada fitur bahasa baru untuk Visual Basic di .NET 5. Namun, dengan .NET 5, dukungan Visual Basic diperluas ke:
Deskripsi | parameter dotnet new |
---|---|
Aplikasi Konsol | console |
Pustaka kelas | classlib |
Aplikasi WPF | wpf |
Pustaka Kelas WPF | wpflib |
Pustaka Kontrol Kustom WPF | wpfcustomcontrollib |
Pustaka Kontrol Pengguna WPF | wpfusercontrollib |
Aplikasi Formulir Windows (WinForms) | winforms |
Pustaka Kelas Formulir Windows (WinForms) | winformslib |
Proyek Pengujian Unit | mstest |
Proyek Pengujian NUnit 3 | nunit |
Item Uji NUnit 3 | nunit-test |
Proyek Pengujian xUnit | xunit |
Untuk informasi selengkapnya tentang templat proyek dari .NET CLI, lihat dotnet new
.
Fitur baru System.Text.Json
Ada fitur baru di dan untuk System.Text.Json:
- Mempertahankan referensi dan menangani referensi melingkar
- Metode ekstensi HttpClient dan HttpContent
- Perbolehkan atau tulis angka dalam tanda kutip
- Mendukung jenis yang tidak dapat diubah dan Rekaman C# 9
- Mendukung aksesor properti non-publik
- Bidang dukungan
- Properti abaikan bersyarat
- Mendukung kamus non-string-key
- Perbolehkan pengonversi kustom menangani null
- Menyalin JsonSerializerOptions
- Membuat JsonSerializerOptions dengan default web