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 theo như lộ trình vào tháng 11/2021, MS đã ra măt bản .NET 6 đánh dấu một bước phát triển rất ngoạn mục cho nền tảng này. Cụ thể là lần đầu tiên có một bản cập nhật lớn LTS (Long Term Support) tức là hỗ trợ lâu dài (trong ít nhất 3 năm) hợp nhất giữa .NET Core và .NET Framework. Trước đây có .NET 5 đã là phiên bản tiền đề để hợp nhất 2 nền tảng .NET của Microsoft nhưng chưa phải là LTS mà đến 6.0 mới là LTS. Điều này có nghĩa là các ứng dụng doanh nghiệp có thể tự tin nâng cấp lên 6.0 từ .NET Core 3.1, .NET 5 hay .NET Framework 4.8 mà không lo về độ ổn định cũng như thời gian cam kết của Microsoft.

Bản cập nhật này thực sự có những tính năng mà cộng đồng mong chờ, nổi bật nhất là cơ chế Hot Reload cho ứng dụng .NET. Ngoài ra chúng ta cũng có phiên bản mới nhất của C# là C# 10 và F# 6. Song song với đó thì Microsoft cũng luôn cải tiến hiệu năng của nền tảng .NET qua từng lần ra mắt.

Chúng ta có thể điểm qua các thay đổi và các tính năng mới như:

  • C# 10 và F# 6
  • HTTP/3
  • JSON Processing
  • WebAssembly
  • OpenTelemetry
  • Cải tiến performance
  • Hỗ trợ Arm64

Tương tự như các bản release trước, nền tảng .NET 6 cũng hỗ trợ cr Linux, macOS và Windows. Ngoài ra còn có Visual Studio 2022 là một môi trường phát triển tích hợp (IDE) cho nền tảng .NET 6. Những ai dùng Visual Studio Code thì vẫn yên tâm là luôn xài được với mọi phiên bản. Riêng có Visual Studio thì phải nâng cấp lên Visual Studio bản 2022 để có thể phát triển được .NET 6. Riêng với Visual Studio for Mac thì vẫn có thể dùng Visual Studio 2019.

Các tính năng mới trong .NET 6 như sau:

  • Hỗ trợ Production stress-tested dành cho ứng dụng Microsoft services, ứng dụng cloud chạy bởi các công ty khác, và đã mở mã nguồn.
  • Hỗ trợ trong 3 năm hay gọi là LTS.
  • Nền tảng thống nhất hỗ trợ nhiều loại trình duyệtclouddesktopIoT, và mobile apps, tất cả sử dụng chung code base có thể share code dễ dàng.
  • Hiệu năng được cải thiện rất nhiều và cho tác tác vụ I/O cụ thể, bằng cách giảm thời gian thực thi, độ trễ và bộ nhớ sử dụng.
  • C# 10 cải tiến ngôn ngữ bằng các tính năng như record structs, implicit using, và new lambda capabilities, trong khi trình biên dịch tăng khả năng gen code.
  • Hot Reload cho phép bạn tránh được việc build và khởi động lại ứng dụng khi có thay đổi mới trong lúc ứng dụng vẫn đang chạy, hỗ trợ trên Visual Studio 2022 và từ .NET CLI cho C# lẫn Visual Basic.
  • Cloud diagnostics được cải tiến với OpenTelemetry và dotnet monitor, hỗ trợ cho tìm lỗi trên môi trường Production trên Azure App Service.
  • JSON APIs được tăng khả năng và có hiệu năng cao hơn với source generator cho bộ xử lý JSON.
  • Minimal APIs được giới thiệu trong .NET Core giúp đơn giản và dễ dàng bắt đầu cũng như cải tiến hiệu năng của HTTP services.
  • Blazor có thể được render từ JavaScript và tích hợp với ứng dụng Javascript base.
  • WebAssembly AOT biên dịch cho ứng dụng Blazor WebAssembly (Wasm), as well as support for runtime relinking and native dependencies.
  • Single-page apps được giới thiệu với ASP.NET Core giờ đây sử dụng một pattern linh hoạt giúp bạn có thể sử dụng Angular, React hoặc các framework frontend Javascript khác.
  • HTTP/3 được thêm vào ASP.NET Core, HttpClient, và gRPC có thể tương tác với HTTP/3 giữa client và server.
  • Cơ chế đọc ghi file (File IO) đã hỗ trợ liên kết tượng trưng và cải tiến mạnh mẽ về hiệu năng với việc viết lại từ đầu FileStream class.
  • Bảo mật được cải tiến bằng việc hỗ trợ OpenSSL 3, phương thức mã hoá ChaCha20Poly1305, và các biện pháp ngăn chặn chiều sâu, đặc biệt là W^X và CET.
  • Single-file apps (extraction-free)  được ra mắt trên Linux, macOS và Windows (trước đây chỉ có trên Linux).
  • IL trimming hiệu quả hơn với cảnh báo mới, bộ phân tích để đảm bảo kết quả đúng cuối cùng.
  • Source generators và analyzers được thêm vào giúp bạn tái hiện bug tốt hơn, an toàn hơn và tối ưu hiệu năng hơn..
  • Source build cho phép tổ chức như Red Had xây dựng .NET từ mã nguồn mở và tự xây dựng cho người dùng của mình..

Hỗ trợ

Bản .NET 6 là một bản hỗ trợ lâu dài (LTS) được phát hành và được hỗ trợ trong 3 năm. Nó hỗ trợ nhiều hệ điều hành bao gồm cả macOS Apple Silicon và Windows Arm64. 

Red Hand hỗ trợ .NET trên Red Hat Enterprise Linux và đã làm việc với team.

.NET 6 được hỗ trợ với Visual Studio 2022 và Visual Studio 2022 for Mac. Nó không hỗ trợ Visual Studio 2019, Visual Studio for Mac 8 hoặc MSBuild 16. Nếu bạn muốn dùng .NET 6 thì phải upgrade lên Visual Studio 2022. Nếu dùng Visual Studio Code thì có thể phát triển sử dụng C# Extension

Các bạn có thể bắt đầu migrate ứng dụng của mình lên .NET 6 từ .NET 5. Nó cũng tương thích tốt khi upgrade từ .NET 3.1 và .NET 5.

Nền tảng thống nhất và mở rộng

Các bạn có thể dùng 1 nền tảng mà có thể phát triển nhiều loại ứng dụng từ Desktop, Web, IoT, WebAssembly, Cloud...và có thể chia sẻ được code base dễ dàng. Một điều thú vị nữa là .NET Multi-platform App UI (.NET MAUI) tức là chính ta có thể viết code với 1 project nhưng có thể tạo ra một ứng dụng chạy trên cả Desktop lẫn Mobile. .NET MAUI được đính kèm trong .NET 6.

Tất nhiên bạn có thể phát triển cả Windows Desktop với Windows Forms và WPF cũng như trên cloud với ASP.NET Core.

Hiệu năng

Team cũng rất cố gắng trong việc cải tiến hiệu năng cho rất nhiều thành phần ví dụ như File IO, chuyển đổi giao diện, PGO và JSON. Các bạn có thể tham khảo tại đây Performance improvements in .NET 6. Các nội dung chủ đạo trong việc tăng hiệu năng như:

  • Dynamic PGO: viết tắt của Dynamic Profile-guided Optimization (PGO) cho phép biên dịch nhanh, tăng hiệu năng khởi động và tăng khả năng phục vụ nhiều hơn số request (dự tính 26%) số request trên giây.
  • Cải tiến xử lý JSON
  • Cải tiến hiệu năng nhập xuất File, ví dụ với .NET 5 và .NET 6 ghi ghi 1 file 100MB cho ra 2 kết quả rất tốt.

C# 10

C# 10 có rất nhiều tính năng mới như:

  1. Global using directive: sử dụng global using sẽ không phải using mọi nơi như System namespace chẳng hạn.
  2. File scoped namespace: không cần phải lồng class trong namespace
  3. Record struct

Hot Reload

Tính năng hot reload là một tính năng được mong đợi nhất hỗ trợ cho nhà phát triển có thể tăng hiệu quả làm việc. Cho phép edit code ngay khi ứng dụng đang chạy, giảm thời gian chờ rebuild, khởi động lại và điều hướng đến đúng điểm bạn có thay đổi. Hot Reload có sẵn trong dotnet watch CLI và Visual Studio 2022. Bạn có thể sử dụng Hot Reload với các loại ứng dụng khác nhau từ ASP.NET Core, Blazor, .NET MAUI, Console, Windows Forms, WPF, WinUI 3, Azure Functions...

Bảo mật

Bảo mật được cải tiến đáng kể trong .NET 6 từ việc mô hình, mã hoá và ngăn chặn xâm nhập. Trên Linux chúng ta có OpenSSL, trên macOS và Windows chúng ta có chức năng tương tự từ hệ điều hành. Với mỗi phiên bản .NET chúng ta thường cần thêm OpenSSL và .NET 6 hỗ trợ OpenSSL 3.

Arm64

Trên .NET Core 3.0 đã hỗ trợ Arm 32 nhưng với .NET 6 đã hỗ trợ Arm 64 giúp .NET 6 tương thích nhiều loại thiết bị hơn.

Các bạn có thể tham khảo chi tiết hơn tại: https://devblogs.microsoft.com/dotnet/announcing-net-6/

 


Tác giả: Bạch Ngọc Toàn

Chú ý: Tất cả các bài viết trên TEDU.COM.VN đều thuộc bản quyền TEDU, yêu cầu dẫn nguồn khi trích lại trên website khác.

Lên trên