มีอะไรใหม่ใน .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 CollectionType
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
ตารางแสดงความเร็วในการประมวลผลของ 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 มีดังนี้
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
ซึ่งทาง 9Expert จะลงรายละเอียดของ Feature ต่างๆ ดังกล่าว ในบทความถัด ๆ ไป











