Microsoft .Net 6 đã được release vào tháng 11 năm 2021 với rất nhiều cải tiến và features mới cho lập trình viên. Điểm nhấn mạnh nhất trong đó là sự ra đời của ASP.NET CORE 6, một bản nâng cấp quan trọng của nền tảng xây dựng websites mã nguồn mở của Microsoft.

ASP.NET core 6 được xây dựng trên nền tảng của .Net core runtime, qua đó cho phép các nhà phát triển xây dựng ứng dụng  Web có thể chạy trên nhiều nền tảng khác nhau từ Windows đến Linux hay MacOS.

Với đặc thù công việc tại  Niteco, việc tìm hiểu và apply các công nghệ mới vào công việc và xây dựng giải pháp gần như là điều bắt buộc với mỗi lập trình viên. Trong bài này, chúng ta hãy cùng nhau điểm qua những tính năng nổi bật nhất của ASP.NET core.

Tăng hiệu năng (performance)

Performance là một phần rất quan trọng khi phát triển ứng dụng hiện đại ngày nay. Về mặt kỹ thuật, tăng performance đồng nghĩa với việc tối ưu hóa tài nguyên server tốt hơn, giảm được chi phí hosting. Mặt khác, performance tốt hơn cũng đồng nghĩa với việc  SEO cho website cũng tốt hơn. Có thể nói, ai cũng muốn tốc độ website của mình nhanh nhất có thể.

Với phiên bản ASP.NET core 6, về hiệu năng chúng ta có:

  • Throughput của middleware request tăng ~5%.
  • MVC trên Linux tăng ~12%
  • Kết nối HTTPS sử dụng ít bộ nhớ hơn ~40%
  • Protobuf serialization nhanh hơn ~20%

Với các trang CMS và Commerce của Optimzely, vốn build dựa trên nền tảng ASP.NET, khi nâng cấp lên ASP.NET core 6 (Optimizely CMS 12 và Commerce 14), performance đã nhanh hơn đáng kể. Với CMS 12, tốc độ phản hồi (response time) đã nhanh hơn đến 3 lần, thậm chí có những page có tốc độ nhanh hơn đến 10 lần. Các server của CMS 12 và Commerce 14 cũng có khả năng xử lý lượng server request gấp 3 lần so với các phiên bản trước đó ở cùng cấu hình phần cứng. Có thể nói ASP.NET core 6 mang lại một trải nghiệm khác hẳn về performance so với version trước đây.

Tăng hiệu quả làm việc

Tối ưu hóa việc compile Razor View

.Net 6 tối ưu hóa hiệu năng cho toàn bộ .Net platform, bao gồm việc tăng tốc độ build và tăng hiệu năng khởi động của ứng dụng. Với Razor view của ứng dụng Web, việc dùng engine mới Roslyn Source Generators làm cho việc build MVC Razor Views nhanh gấp 2 lần so với engine build cũ trên .Net 5. Điều này góp phần làm cho thời gian phát triển nhanh hơn, đỡ thời gian chờ đợi build.

Hot Reload

Hot reload là một trong những tính năng đáng mong chờ nhất được thêm vào .NET 6. Với tính năng này, bạn có thể sửa views, pages, components, thay đổi logic hiển thị... khi ứng dụng ASP.NET core 6 đang thực được chạy, lưu thay đổi, và thấy các thay đổi được phản ánh luôn trên ứng dụng mà không cần phải build lại và chạy lại ứng dụng từ đầu.

Với các dự án hiện tại ở Niteco, hot reload cùng với Visual Studio 2022 đang thúc đẩy hiệu suất của team dự án lên rất nhiều. Flow làm việc của developer mượt mà hơn, có nhiều thời gian hơn cho các công việc có ích thay vì phải ngồi chờ build và chạy lại ứng dụng từ đầu, cái mà đôi khi tốn rất nhiều thời gian. Bạn cũng có thể hot reload cho CSS và nhìn thấy thay đổi lập tức trên trình duyệt.

Lưu ý rằng không phải tất cả các thay đổi đều được hỗ trợ bởi hot reload lúc runtime. Ví dụ bạn không thể thay đổi khai báo hàm (signature) khi app đang chạy. Lúc này Visual Studio sẽ cho bạn lựa chọn việc restart lại ứng dụng để thay đổi có hiệu lực

Tách biệt riêng CSS file cho các Page và View

Với .Net 6, giờ đây bạn có thể sử dụng các file style riêng biệt cho từng page và view, mà không sợ làm ảnh hưởng đến style của toàn hệ thống. Việc này cho phép lập trình viên dễ dàng hơn trong việc tìm lỗi, và tránh các lỗi không đáng có khi có quá nhiều file CSS được thêm/sửa/xóa ở nhiều nguồn khác nhau.

Bằng cách khai báo tên file CSS, ví dụ ProductDetail.cshtml.css trùng khớp với tên View (ProductDetail.cshtml), toàn bộ style của file CSS đó sẽ chỉ được  áp dụng cho View cụ thể (ProductDetail.cshtml) mà thôi.

Async Streaming

Trên ASP.NET core 6, Async Streaming đã được hỗ trợ, giúp cho việc truy vấn data với Entity Framework core được tối ưu hơn. Giờ đây response content của một Action sẽ không cần phải buffer trong bộ nhớ (memory) trước khi trả về nữa, dẫn đến việc tối ưu memory hơn khi Action cần trả về một lượng lớn bản ghi. Trong ví dụ dưới đây, các bản ghi của Products sẽ không phải đợi buffer toàn bộ vào memory trước khi trả về.

Middleware - bao gồm HTTP Logging middleware

Chúng ta chắc không còn xa lạ gì với khái niệm request pipeline, một cơ chế xử lý một request đầu vào và trả ra một response ở đầu ra. Với mỗi request được gửi đến web server, nó sẽ được xử lý qua pipeline và trả về client khi đã được xử lý xong. Middleware là các module phần mềm được gắn vào request pipeline để xử lý các requests đầu vào responses đầu ra. Mỗi Middleware sẽ quyết định xử lý một request hoặc response nào đó trước khi chuyển tiếp cho Middleware tiếp theo hoặc bỏ qua hoàn toàn, dựa vào các điều kiện lọc của middleware đó. Hình dưới đây từ website của Microsoft sẽ giúp bạn dễ hình dung hơn về middleware và cơ chế hoạt động của nó

Với sự xuất hiện của HTTP Logging middleware trên ASP.NET core 6, bạn có thể log thông tin về các Http request và response đến server của ứng dụng như:

  • Thông tin request
  • Thông tin về response
  • Thông tin về header, body của các request và response

Ngoài ra bạn cũng có thể viết các custom middleware để phục vụ cho dự án của mình. Ví dụ trong một website bán hàng mà Niteco đang xây dựng có các custom middleware để filter IP, thêm các security headers vào response content, migrate carts...

Kết

Trên đây là những thay đổi đáng kể nhất và hay nhất của ASP.NET core 6 từ view của Developer tại Niteco - nơi chúng tôi hàng ngày làm việc với ASP.NET thông qua nền tảng Optimizely CMS và Commerce. Ngòai ra, còn những điểm hay khác chưa được đề cập đến trong bài như các tính năng mới của Blazor, .NET MAUI, sự tương thích tốt hơn vơi các JavaScript Framework...

Với sự thay đổi và phát triển không ngừng  của công nghệ, việc liên tục cập nhật các công nghệ là điều nên làm với toàn bộ developer. Ở Niteco, việc này là bắt buộc khi bạn phải liên tục làm việc với các công nghệ mới nhất, áp dụng các tính năng mới nhất vào việc phát triển dự án để đem lại những giải pháp công nghệ tốt nhất và tiên tiến nhất cho khách hàng. Nó cũng giúp developers luôn làm mới mình, luôn phát triển để bắt kịp với sự phát triển chóng mặt của công nghệ. Đơn giản như hiện nay, Niteco đang lên kế hoạch, tư vấn khách hàng để đưa phiên bản ASP.NET core 7 vào ứng dụng trong các website mình xây dựng. Nếu bạn là người yêu công nghệ và muốn phát triển bản thân liên tục, muốn có môi trường để đưa ra các ý tưởng của mình và xây dựng các ý tưởng đó với các công nghệ mới nhất, hãy tham gia Niteco ngay hôm nay 👇.

Niteco Tuyển Dụng - Cập Nhật Thông Tin Việc Làm | Niteco