Có gì mới trong .NET 10?
Giới thiệu
Hãy khám phá những tính năng mới trong .NET 10 và tìm các tài liệu liên quan. Trang này được cập nhật cho Preview 2.
.NET 10, phiên bản kế nhiệm của .NET 9, sẽ được hỗ trợ trong ba năm với tư cách là một bản phát hành LTS (Long-Term Support). Bạn có thể tải .NET 10 tại đây.
Phản hồi của bạn rất quan trọng! Nếu bạn có câu hỏi hoặc góp ý, hãy tham gia thảo luận trên GitHub.
.NET Runtime
.NET 10 Runtime giới thiệu các tính năng mới và cải thiện hiệu suất. Những cập nhật quan trọng bao gồm:
- Devirtualization phương thức interface trong mảng: JIT giờ có thể devirtualize (loại bỏ tính đa hình) và inline các phương thức interface trong mảng, giúp tối ưu hiệu suất khi duyệt mảng.
- Giảm abstraction khi duyệt mảng: Cải thiện để giảm chi phí abstraction khi sử dụng enumerator, giúp inline và stack allocation tốt hơn.
- Inlining phương thức devirtualized muộn: JIT giờ có thể inline những phương thức ban đầu không đủ điều kiện, nhưng sau đó có thể devirtualize nhờ inlining trước đó.
- Devirtualization dựa trên quan sát từ inlining: JIT sử dụng thông tin kiểu chính xác thu thập từ quá trình inlining để devirtualize các lời gọi phương thức tiếp theo.
- Cấp phát stack cho mảng value type: Các mảng nhỏ của value types (không chứa GC pointers) có thể được cấp phát trên stack thay vì heap, giúp giảm áp lực lên Garbage Collector.
- Hỗ trợ AVX10.2: Bổ sung hỗ trợ Advanced Vector Extensions (AVX) 10.2 cho bộ xử lý x64, nhưng mặc định bị tắt.
- Cải tiến NativeAOT: Hỗ trợ thêm ép kiểu (casting) và phép phủ định (negation) trong type preinitializer của NativeAOT.
Xem thêm: Có gì mới trong .NET 10 runtime.
.NET Libraries
Các thư viện trong .NET 10 có nhiều cải tiến quan trọng:
- Tìm chứng chỉ bằng SHA-256 và các thuật toán khác (không chỉ SHA-1).
- Hỗ trợ đọc dữ liệu PEM từ ASCII/UTF-8: Các API xử lý PEM encoding giờ có thể đọc trực tiếp dữ liệu ASCII/UTF-8.
- Hỗ trợ DateOnly trong ISOWeek: Thêm overload mới trong lớp ISOWeek để hỗ trợ kiểu DateOnly.
- Chuẩn hóa chuỗi Unicode với spans: Các API mới cho phép Unicode string normalization hoạt động trực tiếp với Span<char>, giảm số lượng cấp phát bộ nhớ.
- So sánh chuỗi có thứ tự số học: Tùy chọn CompareOptions.NumericOrdering giúp so sánh chuỗi theo quy tắc số học (vd: "File9" < "File10").
- Overload mới của TimeSpan.FromMilliseconds: Overload một tham số giúp khắc phục lỗi với LINQ expressions.
- Cải thiện hiệu suất ZipArchive: Tối ưu hóa giúp giảm mức sử dụng bộ nhớ và tăng tốc khi cập nhật hoặc trích xuất song song.
- Cải tiến OrderedDictionary: Thêm TryAdd và TryGetValue trả về index để truy xuất nhanh hơn.
- Cập nhật JSON serialization: Source generator giờ hỗ trợ chỉ định ReferenceHandler trong JsonSourceGenerationOptionsAttribute.
- Ma trận phép biến đổi tay trái (left-handed transformations): Thêm API mới để tạo ma trận biến đổi kiểu left-handed.
- Cải tiến xuất PKCS#12: Hỗ trợ chỉ định thuật toán mã hóa và băm khi xuất PKCS#12/PFX.
Xem thêm: Có gì mới trong .NET 10 libraries.
.NET SDK
Những cải tiến trong .NET 10 SDK bao gồm:
- Loại bỏ package không cần thiết: .NET SDK giờ có thể tự động loại bỏ các package được cung cấp bởi framework nhưng không được sử dụng, giúp giảm thời gian build và dung lượng ổ đĩa.
- Thống nhất thứ tự câu lệnh trong CLI: Thêm alias noun-first cho các lệnh dotnet CLI, giúp tăng tính nhất quán và dễ đọc.
Xem thêm: Có gì mới trong .NET 10 SDK.
.NET Aspire
Phiên bản .NET Aspire 9.1 tập trung vào các cải tiến chất lượng cuộc sống (quality-of-life fixes).
Xem thêm: Có gì mới trong .NET Aspire 9.1.
ASP.NET Core
Bản phát hành ASP.NET Core 10.0 mang đến nhiều cải tiến:
Blazor
- Thêm component ReconnectModal vào template Blazor Web App, giúp UI tái kết nối mượt mà hơn.
- NavigateTo không cuộn trang nếu điều hướng đến cùng một trang.
- NavLink bỏ qua query strings và fragments nếu sử dụng NavLinkMatch.All.
- Thêm RowClass vào QuickGrid để áp dụng style cho hàng dựa trên dữ liệu.
- Thêm CloseColumnOptionsAsync vào QuickGrid để đóng options của cột bằng code.
- Blazor framework script giờ là static web asset: Hỗ trợ precompression và fingerprinting.
OpenAPI
- Hỗ trợ OpenAPI 3.1.
- Hỗ trợ xuất OpenAPI dưới dạng YAML.
- Điền XML doc comments vào tài liệu OpenAPI.
Minimal APIs
- Cải thiện test cho ứng dụng dùng top-level statements.
- Chuỗi rỗng trong form post sẽ được coi là null nếu kiểu là nullable value type.
Authentication & Authorization
- Thêm metrics mới cho các sự kiện xác thực và phân quyền.
Các cập nhật khác
- Thêm RedirectHttpResult.IsLocalUrl để kiểm tra URL nội bộ.
- Hỗ trợ syntax highlighting cho route trong RouteAttribute.
Xem thêm: Có gì mới trong ASP.NET Core cho .NET 10.
C# 14
C# 14 mang đến nhiều tính năng mới:
- Field-backed properties: Từ auto-implemented property có thể dễ dàng chuyển sang property có getter/setter tùy chỉnh bằng cách truy cập field.
- nameof hỗ trợ generic chưa gán kiểu: nameof(List<>) trả về
"List"mà không cần chỉ định type argument. - Hỗ trợ chuyển đổi Span<T> ngầm định: Giúp lập trình với Span<T> và ReadOnlySpan<T> tự nhiên hơn.
- Hỗ trợ ref, in, out trong lambda expression.
- Tính năng thử nghiệm - String literals trong phần data của PE file: Tăng hiệu suất cho một số trường hợp.
- Hỗ trợ partial events và constructors.
Xem thêm: Có gì mới trong C# 14.
Trích nguồn từ: https://devblogs.microsoft.com/dotnet/dotnet-10-preview-1/
Tags:
Bài viết liên quan
Ra mắt khóa học AWS for Beginners
Khóa học này là nền tảng để các bạn tiếp cận và làm quen với một trong 3 cloud provider hàng đầu thế giới là AWS, Azure và Google Cloud.
Đọc thêm
Ra mắt khóa học Design Patterns in a nutshell
Tác giả khóa học là anh Thành Lê, một Software Architect đang sinh sống và làm việc tại Mỹ. Khóa học không chỉ giúp các bạn hiểu Design Patterns mà còn giúp nâng cao kỹ năng giải quyêt vấn đề.
Đọc thêm
Ra mắt khóa học: Xây dựng ứng dụng mạng xã hội với Flutter
Nhằm đáp ứng nhu cầu học lập trình ứng dụng Mobile cho tất cả mọi người, TEDU ra mắt khóa học Lập trình ứng dụng mạng xã hội cơ bản sử dụng .NET Core và Flutter của tác giả Nguyễn Hoài Nam
Đọc thêm
TEDU ra mắt khóa học Xây dựng hệ thống với kiến trúc Micro-services
Ra mắt khóa học xây dựng hệ thống với kiến trúc Micro-services sử dụng .NET 6, RabbitMQ, Docker dành cho mọi người, có chính sách ưu đãi mua sớm cho 100 người đầu tiên.
Đọc thêmCác bước nâng cấp ứng dụng từ .NET 5.0 lên .NET 6.0
Hướng dẫn cách nâng cấp ứng dụng .NET 5 lên .NET 6.0 một cách dễ dàng.
Đọc thêm
Microsoft ra mắt .NET 6.0 ngày 9/11/2021, chúng ta cùng điểm qua xem có gì mới?
Đúng như lộ trình phát triển, Microsoft đã tung ra bản .NET 6.0 Long Term Support (LTS) được mong chờ từ lâu. Chúng ta hãy cùng xem có gì trong bản release mới nhất này nhé.
Đọc thêm
.NET Core 3.0 (Preview 2) có gì mới?
Gần đây Microsoft cho ra mắt .NET Core 3 Preview 2. Nó bao gồm các tính năng mới cho .NET Core 3.0 và C# 8, nó cũng bao gồm luôn các tính năng mới trong Preview 1 và Preview 2
Đọc thêm
Đầu xuân mở lộc TEDU lì xì 30% các khóa học
Năm Kỷ Hợi bắt đầu một niềm tin mới, TEDU xin gửi tới các bạn một quà tặng lì xì đầu năm trị giá 30% khi tham gia các khóa học tại TEDU.
Đọc thêm
Chào đón năm 2019, TEDU sales lớn nhất năm đến 60% và ra mắt khóa học mới
Nhân dịp mừng giáng sinh và đón chào năm mới 2019, TEDU xin gửi tới toàn thể các bạn đã đang và sẽ là thành viên của cộng đồng TEDU chương trình khuyến mãi lớn nhất trong năm lên đến 60% tất cả các khóa học.
Đọc thêm
Microsoft ra mắt phiên bản ASP.NET Core 2.2
Microsoft thông báo ra mắt ASP.NET Core 2.2 và Entity Framework Core 2.2 là một phần của nền tảng .NET Core 2.2 hôm nay 5/12/2018.
Đọc thêm