มีอะไรใหม่ใน .NET 5 และ C# 9

มีอะไรใหม่ใน .NET5 และ C#9
.NET 5.0 เป็นเวอร์ชั่นใหม่ของ .NET Core ต่อจากเวอร์ชั่น 3.1 โดยชื่อจะเรียก “.NET 5.0” แทนที่จะเป็น .NET Core 4.0ทั้งนี้ ทางบริษัทไมโครซอฟต์มีเหตุผลหลัก ๆ คือ
- ไม่เรียกเวอร์ชั่น 4 เพราะป้องกันความสับสนกับ .NET Framework 4.x. ซึ่งจะยังมีอยู่ แต่ใช้งานสำหรับระบบปฏิบัติการ Window เท่านั้น
- นำคำว่า "Core" ออกจากชื่อเพราะว่า .NET 5.0 จะรองรับประเภทของแอพลิเคชั่นและแพลตฟอร์มมากกว่า .NET Core หรือ .NET Framework. ดังรูป

ถึงแม้ว่า .NET 5.0 จะตัดคำว่า “Core” ออกแล้ว แต่สำหรับ ASP.NET Core 5.0 และ Entity Framework Core 5.0 ซึ่งใช้ .NET 5.0 จะคงคำว่า "Core" เพื่อกันความสับสนกับ ASP.NET MVC 5 และ Entity Framework 5 and 6 ที่ใช้สำหรับ .NET Framework
โดย .NET 5.0 มีการปรับปรุงประสิทธิภาพการประมวลผลที่รวดเร็วมากขึ้น เช่น การจัดการหน่วยความจำ Garbage Collection
ตารางแสดงความเร็วในการประมวลผลของ Garbage Collection (GC) เปรียบเทียบระหว่าง .NET Framework 4.8, .NET Core 3.1 และ .NET 5
ที่มา https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/
จากตารางจะพบว่าการประมวลผลด้วย .NET 5.0 เร็วขึ้นกว่า .NET Framework 4.8 และ .NET Core 3.1 อย่างชัดเจน
รวมทั้ง .NET 5 ยังเพิ่มคำสั่งในส่วนของภาษา C# ซึ่งเป็นเวอร์ชั่น 9.0 (C# 9) หลายอย่างมาก เช่น เพิ่มคำสั่งการทำงานให้เฉพาะเจาะจง เขียนได้สั้นและกระชับมากขึ้น
ซึ่งถ้าเราใช้คำสั่งสั้นลงได้ ก็จะลดโอกาสการผิดพลาดมากขึ้นอีกด้วย โดย Feature ใหม่ในภาษา c# 9 มีดังนี้
โดย .NET 5.0 มีการปรับปรุงประสิทธิภาพการประมวลผลที่รวดเร็วมากขึ้น เช่น การจัดการหน่วยความจำ Garbage Collection
Type | Runtime | Mean | Ratio |
---|---|---|---|
DoubleSorting | .NET FW 4.8 | 88.88 ns | 1.00 |
DoubleSorting | .NET Core 3.1 | 73.29 ns | 0.83 |
DoubleSorting | .NET 5.0 | 35.83 ns | 0.40 |
Int32Sorting | .NET FW 4.8 | 66.34 ns | 1.00 |
Int32Sorting | .NET Core 3.1 | 48.47 ns | 0.73 |
Int32Sorting | .NET 5.0 | 31.07 ns | 0.47 |
StringSorting | .NET FW 4.8 | 2,193.86 ns | 1.00 |
StringSorting | .NET Core 3.1 | 1,713.11 ns | 0.78 |
StringSorting | .NET 5.0 | 1,400.96 ns | 0.64 |
ที่มา https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/
จากตารางจะพบว่าการประมวลผลด้วย .NET 5.0 เร็วขึ้นกว่า .NET Framework 4.8 และ .NET Core 3.1 อย่างชัดเจน
รวมทั้ง .NET 5 ยังเพิ่มคำสั่งในส่วนของภาษา C# ซึ่งเป็นเวอร์ชั่น 9.0 (C# 9) หลายอย่างมาก เช่น เพิ่มคำสั่งการทำงานให้เฉพาะเจาะจง เขียนได้สั้นและกระชับมากขึ้น
ซึ่งถ้าเราใช้คำสั่งสั้นลงได้ ก็จะลดโอกาสการผิดพลาดมากขึ้นอีกด้วย โดย Feature ใหม่ในภาษา c# 9 มีดังนี้
- Records
- Init only setters
- Top-level statements
- Pattern matching enhancements
- Native sized integers
- Function pointers
- Suppress emitting localsinit flag
- Target-typed new expressions
- Static anonymous functions
- Target-typed conditional expressions
- Covariant return types
- Extension GetEnumerator support for foreach loops
- Lambda discard parameters
- Attributes on local functions
- Module initializers
- New features for partial methods