Apa yang baru di .NET 5
.NET 5 adalah rilis utama berikutnya dari .NET Core setelah 3.1. Rilis ini diberi nama .NET 5 alih-alih .NET Core 4 karena dua alasan:
- Nomor versi 4.x dilewati untuk menghindari kebingungan dengan .NET Framework 4.x.
- "Core" dihilangkan dari nama 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
- Arm64 dan intrinsik Windows Arm64
- Dukungan alat untuk debugging dump
- Pustaka runtime adalah 80% diberi anotasi untuk jenis referensi yang dapat bernilai null
- Peningkatan performa:
- Pengumpulan Sampah (GC)
- System.Text.Json
- System.Text.RegularExpressions
- pengumpulan Async ValueTask
- pengoptimalan ukuran kontainer
- Lebih banyak daerah
.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 bagi WCF, pertimbangkan gRPC.
.NET 5 tidak menggantikan .NET Standard
Pengembangan aplikasi baru dapat menentukan net5.0
Target Framework Moniker (TFM) untuk semua jenis proyek, termasuk pustaka kelas. Berbagi kode di antara workloads .NET 5 kini disederhanakan: Anda hanya memerlukan net5.0
TFM.
Untuk aplikasi dan pustaka .NET 5, net5.0
TFM menggabungkan dan menggantikan netcoreapp
dan netstandard
TFM. 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.
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:
Catatan: 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 baru
and
,or
, dannot
.Pernyataan tingkat atas: Sebagai sarana untuk mempercepat adopsi dan pembelajaran C#, metode
Main
dapat dihilangkan, dan aplikasi sesingkat contoh berikut valid:System.Console.Write("Hello world!");
Penunjuk fungsi: Konstruksi bahasa yang mengungkapkan opcode 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 tipe, tipe tertentu harus cocok dengan penentu format.
let name = "David"
let age = 36
let message = $"%s{name} is %d{age} years old."
Format ini mirip dengan fungsi sprintf
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 |
Perpustakaan Kelas WPF | wpflib |
Pustaka Kontrol Kustom WPF | wpfcustomcontrollib |
Pustaka Kontrol Pengguna WPF | wpfusercontrollib |
Aplikasi Windows Forms (WinForms) | winforms |
Perpustakaan Kelas Windows Forms (WinForms) | winformslib |
Proyek Pengujian Unit | mstest |
Proyek Pengujian NUnit 3 | nunit |
Pengujian 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 Serialisasi pada httpClient
- Izinkan atau tulis angka dalam tanda kutip
- Mendukung tipe yang tidak dapat diubah dan C# 9 Record
- Mendukung properti non-publik dengan aksesor
- Bidang Dukungan
- Abaikan properti secara bersyarat
- Mendukung kamus dengan kunci selain string
- Mengizinkan konverter kustom untuk menangani null
- Salin JsonSerializerOptions
- Membuat JsonSerializerOptions dengan default web
Lihat juga
- Perjalanan ke satu platform .NET
- Peningkatan performa dalam .NET 5
- Unduh .NET SDK