Công nghệ & cuộc sống sốRSS
thinnguyenBlog
Kỹ thuật··6 phút đọc

Microsoft phát hành .NET 11, C# 15 có kiểu union được chờ đợi

Ngày 10/11/2026, Microsoft chính thức phát hành .NET 11 trong ngày mở màn hội nghị .NET Conf 2026, mang theo C# 15 với kiểu union được chờ đợi từ lâu, cùng lúc .NET 8 và .NET 9 hết hạn hỗ trợ.

Ảnh minh họa AI: laptop với dấu ngoặc nhọn phát sáng trên bàn làm việc lúc chạng vạng

.NET 11 là bản phát hành thường niên của nền tảng phát triển ứng dụng đa nền tảng của Microsoft, ra mắt trong khuôn khổ .NET Conf 2026 diễn ra từ ngày 10 đến 13/11. Đây là bản hỗ trợ tiêu chuẩn (STS) với hai năm hỗ trợ, tới tháng 11/2028, trong khi .NET 10 vẫn là lựa chọn hỗ trợ dài hạn (LTS). Với lập trình viên Việt Nam đang chạy dự án trên .NET 8 hay .NET 9, đây là thời điểm phải quyết định lộ trình nâng cấp.

C# 15 và union types: thay đổi lớn nhất của bản này

C# 15 là ngôn ngữ mặc định của các dự án .NET 11, và tính năng được nhắc tới nhiều nhất là union types (kiểu hợp). Với union types, một giá trị có thể là một trong các kiểu đã khai báo, và trình biên dịch kiểm tra tính đầy đủ trong biểu thức switch. Ví dụ, kết quả tra cứu sản phẩm hoặc là sản phẩm tìm thấy, hoặc là thông báo không tìm thấy, và mã xử lý buộc phải bao quát cả hai.

Đi cùng union types là closed hierarchies: một lớp đánh dấu closed chỉ cho phép các lớp trong cùng assembly kế thừa. Microsoft cũng bổ sung extension indexers, labeled break và continue, cùng khả năng truyền tham số cho constructor trong collection expression.

Một lưu ý quan trọng: tính năng an toàn bộ nhớ (memory safety) của C# 15 vẫn ở trạng thái xem trước và cần bật riêng. F# 11 cũng có mặt trong bản này, với trình biên dịch tiết kiệm bộ nhớ hơn và ít cấp phát hơn trong các thao tác trên collection.

Runtime và SDK nhanh hơn, nhẹ hơn, ít chờ đợi hơn

Ở tầng runtime, thay đổi nền tảng nhất là Runtime Async, đưa cơ chế tạm dừng và tiếp tục của async vào thẳng runtime thay vì dựa vào state machine do trình biên dịch sinh ra. Kết quả dễ thấy nhất là ngăn xếp lời gọi (call stack) khi debug trở nên rõ ràng hơn. Tuy nhiên, Runtime Async vẫn là tính năng xem trước trong .NET 11, cần bật bằng cấu hình riêng và thử kỹ trước khi dùng cho production.

Về hiệu năng thuần túy, trình biên dịch JIT loại bỏ thêm các kiểm tra biên và rẽ nhánh thừa, còn Native AOT rút gọn mã tại các điểm gọi interface. Microsoft cho biết bản này có hàng trăm tối ưu runtime và thư viện, với bài phân tích chi tiết kèm benchmark của kỹ sư Stephen Toub.

Phía công cũng được tăng tốc. SDK 11 bật sẵn Native AOT CLI host, giúp các lệnh như help hay version chạy mà không cần khởi động CLI quản lý, và máy chủ MSBuild giữ ấm giữa các lần gọi lệnh để giảm thời gian chờ lặp lại. Bộ cài SDK trên Linux và macOS nhẹ hơn nhờ loại bỏ assembly trùng lặp.

Thư viện chuẩn cũng thêm nhiều món thực dụng: nén Zstandard, API Process mới để chạy tiến trình và lấy kết quả trong một lần gọi, bốn adapter stream cho dữ liệu trong bộ nhớ, System.Text.Json hỗ trợ union của C# và xuất JSON Lines, cùng toán tử LINQ FullJoin giữ lại phần tử không khớp ở cả hai đầu vào.

Web và AI: ASP.NET Core, Blazor và công cụ agent

ASP.NET Core 11 mang xác thực bất đồng bộ, cho phép validator chờ truy vấn cơ sở dữ liệu hay gọi dịch vụ ngoài, và OpenAPI 3.2 trở thành định dạng mặc định cho tài liệu API. SignalR bổ sung làm mới xác thực mà không cần kết nối lại, còn Blazor thêm component CacheView để cache đầu ra của một nhánh component khi render tĩnh phía server.

Đáng chú ý nhất là gói Blazor AI components mới, với các component cho chat streaming, hiển thị công cụ và luồng phê duyệt, tích hợp giao thức AG-UI để nối giao diện Blazor với agent phía server. Tuy nhiên, gói này vẫn đang thử nghiệm và ở trạng thái prerelease trong suốt vòng đời .NET 11, chưa phải thành phần ổn định của framework.

Xung quanh AI, .NET 11 bổ sung template máy chủ MCP qua lệnh dotnet new mcpserver, để đưa chức năng của ứng dụng ra cho các ứng dụng AI gọi tới theo chuẩn chung. Microsoft.Extensions.AI cung cấp các abstraction như IChatClient và IEmbeddingGenerator, còn Microsoft Agent Framework xây agent gọi công cụ và duy trì trạng thái hội thoại trên nền đó.

.NET MAUI chuyển sang dùng CoreCLR làm runtime mặc định trên mọi nền tảng, đưa ứng dụng di động và desktop về cùng nền tảng runtime với các workload khác. Tính năng XAML Incremental Hot Reload vẫn đang xem trước. Entity Framework Core 11, vốn yêu cầu .NET 11, loại bỏ các join thừa trong nhiều kịch bản và thêm hỗ trợ thử nghiệm cho vector index và tìm kiếm vector gần đúng trên SQL Server.

.NET 8 và 9 hết hỗ trợ: nên nâng cấp lên đâu

Đi kèm bản phát hành mới là một mốc thời gian quan trọng: .NET 8 và .NET 9 cùng hết hạn hỗ trợ vào ngày 10/11/2026, tức là không còn nhận bản vá bảo mật hay sửa lỗi. Ứng dụng đang chạy trên hai phiên bản này không tự dừng, nhưng sẽ dần trở nên rủi ro nếu không nâng cấp.

Microsoft gợi ý hai hướng. Chọn .NET 11 nếu muốn dùng ngay các tính năng mới nhất như C# 15 và EF Core 11, với hai năm hỗ trợ tới tháng 11/2028. Chọn .NET 10 nếu cần chu kỳ hỗ trợ dài hạn, cũng tới tháng 11/2028 theo chính sách LTS. Quyết định nên dựa vào mức độ cần tính năng mới so với nhu cầu ổn định.

Quy trình nâng cấp mà Microsoft khuyến nghị gồm bốn bước: cập nhật lựa chọn SDK trong global.json và cài SDK tương ứng; chuyển target framework sang .NET 11 và cập nhật package cùng workload; rà soát danh sách breaking changes, trong đó có yêu cầu CPU tối thiểu mới; cuối cùng là chạy bộ kiểm thử và đo hiệu năng trên workload thực tế trước khi triển khai.

Người dùng có thể tải .NET 11 SDK bản 11.0.100 từ trang dotnet.microsoft.com, dùng kèm Visual Studio 2026 hoặc Visual Studio Code với C# Dev Kit. Hội nghị .NET Conf 2026 diễn ra tới ngày 13/11, với hai ngày đầu là phiên của đội ngũ sản phẩm Microsoft và hai ngày sau là phiên cộng đồng, là nơi tốt nhất để xem trực tiếp các tính năng mới.

Với hơn 7.000 người đóng góp, cùng hệ sinh thái hơn 589.000 package trên NuGet và hơn 1,1 nghìn tỉ lượt tải, .NET 11 không chỉ là một bản cập nhật thường niên. Với lập trình viên Việt Nam, câu hỏi thực tế nhất lúc này là nâng cấp lên đâu, và bắt đầu từ dự án nào.

Nguồn tham khảo: Microsoft

Bài liên quan