.NET 5 – tương lai của các công nghệ .NET – có gì mới?

3

.NET 5 sắp tới sẽ là nền tảng hợp nhất để xây dựng các ứng dụng chạy trên tất cả các nền tảng (như Windows, Linux) và các thiết bị (như IoT, Mobile). Nếu bạn là nhà phát triển ứng dụng .NET hiện đang hỗ trợ các ứng dụng xây dựng trên .NET framework, hoặc bạn là sinh viên đang muốn đi theo các công nghệ Microsoft, bạn cần biết .NET 5 sẽ có ảnh hưởng gì về lâu dài.

Microsoft đã công bố .NET 5 tại hội nghị Build 2019. Theo các thông tin này, .Net 5 dựa trên .Net Standard. Điều này có nghĩa là không phải mọi tính năng của .Net framework sẽ xuất hiện trong .Net 5. Với vai trò là một nền tảng hợp nhất (và duy nhất) trong tương lai, những gì sẽ được chuyển sang .NET 5 và những gì sẽ bị thay thế có ảnh hưởng rất lớn đến những quyết định hiện tại của lập trình viên (và sinh viên) .NET.

Loạt bài “Các công nghệ phát triển ứng dụng Microsoft sinh viên nên biết”:
Phần 1 – Giới thiệu chung, .NET Framework, .NET Core, Ngôn ngữ, Công cụ
Phần 2 – Windows form, WPF, ASP.NET, ASP.NET Core, ADO.NET
Phần 3 – Phân biệt các nền tảng .NET Core, .NET Framework, .NET Standard
Phần 4 – .NET 5 – tương lai của các công nghệ .NET

Tại sao lại là .NET 5

Bạn có thể thắc mắc tại sao lại là .NET 5?

Nhóm phát triển của Microsoft giải thích rằng, hiện nay có hai nền tảng .NET đang hoạt động song song (trên desktop): .NET Core và .NET Framework. Trong đó, .NET Framework đang ở phiên bản 4.7.2, còn .NET Core đang ở phiên bản 3.1.

Nền tảng .NET trong tương lai sẽ là sự hợp nhất của tất cả các nền tảng .NET hiện tại. Không còn các “biệt danh” đi kèm để phân biệt như hiện nay (Core, Framework). Tất cả thống nhất về một tên gọi chung: .NET.

Để khẳng định đây không phải là một nền tảng xây dựng mới (như khi .NET Core ra đời), nhưng cũng không phải đơn giản chỉ là một sự phát triển từ một nền tảng đang có sẵn, nhóm lựa chọn tên gọi đơn giản là .NET, và định chỉ số phiên bản là 5. Nó thể hiện sự kế thừa và hợp nhất.

Theo đó, sẽ không có .NET Core 4 nữa. Phiên bản 3 là phiên bản cuối cùng của .NET Core. Cũng sẽ không có các phiên bản .NET Framework kế tiếp nữa. 4.8 là phiên bản cuối cùng của của .NET Framework.

Sau đó sẽ chỉ còn một .NET, và bắt đầu từ phiên bản 5. Microsoft dự định mỗi năm sẽ phát hành một phiên bản mới của .NET vào dịp cuối năm. Dưới đây là kế hoạch phát hành của nền tảng .NET (nguồn https://devblogs.microsoft.com/dotnet/introducing-net-5/)

kế hoạch phát hành .net 5 và các phiên bản tương lai

Như vậy, sau một năm nữa chúng ta sẽ được trải nghiệm nền tảng .NET hợp nhất.

Các công nghệ sẽ không có mặt trên .NET 5 mới

ASP.NET web forms

ASP.NET Web Forms là công nghệ vốn đã không được khuyến khích sử dụng trên .NET Framework hiện nay. Trong tương lai Web Forms sẽ không có mặt trên .NET 5.

Nếu bạn hiện dùng ASP.NET MVC (full stack) thì có thể tiếp tục với ASP.NET Core MVC hoặc Razor page. Razor page mới được giới thiệu trong .NET Core 2.0 và nhìn tương tự như web forms dùng để xây dựng nhanh các ứng dụng web mà không cần đến view và controller.

Tuy nhiên, nếu cần phát triển các ứng dụng web hiện đại cho doanh nghiệp thì nên xem xét các công nghệ SPA (single page application) như Blazor, Angular hoặc React. Hiện Microsoft đang khuyến nghị lập trình viên web chuyển sang sử dụng Blazor, công nghệ phát triển ứng dụng web SPA sử dụng WebAssembly và C# (thay vì JavaScript).

WCF (Windows Communication Foundation)

WCF là một trong những công nghệ lâu đời nhất trong .NET framework. Những năm gần đây WCF dần “thất sủng” và được thay thế một phần bởi ASP.NET Web API. Microsoft đã quyết định không đưa WCF vào .NET core. Đồng thời công nghệ này sẽ không có mặt trên .NET 5.

Hiện nay WCF được sử dụng chủ yếu như một bộ thư viện RPC (remote procedure call). Microsoft khuyến nghị sử dụng gRPC làm giải pháp thay thế. gRPC là một framework mã mở hiện đại và hiệu suất cao. Hạn chế duy nhất là gRPC hiện không thể host trên IIS.

Update: template gRPC Service đã có thể sử dụng được trên Visual Studio 16.3.9 (ASP.NET Core 3.0).

WF (Workflow Foundation)

WF thường chỉ được sử dụng trong các ứng dụng enterprise để xử lý các quy trình phức tạp và biến động. WF sẽ không được đưa vào .NET Core.

Mỗi ứng dụng doanh nghiệp sẽ tự phải có quy trình xử lý nghiệp vụ hoặc công cụ BPM được tích hợp. Nếu đã sử dụng WF, Microsoft khuyến nghị sử dụng một nhánh không chính thức của WF runtime để chuyển sang .NET Core.

Các công nghệ sẽ được chuyển sang .NET 5

Microsoft sẽ mang nhóm công nghệ phát triển ứng dụng desktop (bao gồm WinForms, WPF và UWP) sang .NET 5 để hỗ trợ các ứng dụng Windows desktop.

Winforms, WPF và UWP là những công nghệ đang có mặt trên .NET Framework. Trong đó winforms và wpf đã xuất hiện từ rất lâu và đã được sử dụng phổ biến.

Mặc dù công nghệ như windows forms không được khuyến khích cho các dự án mới, việc mang nó sang .NET 5 cho phép chuyển (port) các ứng dụng đã có (và còn rất phổ biến) sang nền tảng mới.

Việc mang các công nghệ đặc trưng của windows desktop sang .NET 5 không có nghĩa là thay đổi kiến trúc của .NET Core. Đây vẫn sẽ là một framework đa nền tảng. Các công nghệ Winforms, WPF và UWP chỉ hướng tới hoạt động trên windows.

Tác dụng tốt nhất của các công nghệ desktop này khi hoạt động trên .NET 5 là tận dụng được hiệu suất của Core Runtime và API, cũng như sự uyển chuyển hơn trong triển khai.

Update: Bắt đầu từ .NET Core 3.1 (11/2019) bạn đã có thể phát triển ứng dụng Windows Forms và Windows Presentation Foundation trên nền tảng này. Tuy nhiên giao diện thiết kế cho hai framework này chưa chính thức phát hành và bạn phải cài đặt riêng rẽ.

Một vài vấn đề quan trọng khác

Những công nghệ thay thế

Sau đây là những công nghệ mới sẽ thay thế các công nghệ phổ biến hiện nay:

  • EF Core: Entity Framework Core sẽ thay thế EF 6 trong .NET Core.
  • ASP.NET Core: ASP.NET được thay thế bằng ASP.NET Core.
  • ASP.NET Core MVC: ASP.NET Core MVC hợp nhất ASP.NET MVC và Web API.
  • MSIX: Công cụ đóng gói mới của Microsoft thay thế trình cài đặt gói MSI cũ cho các ứng dụng desktop.
  • JsonDocument: Thư viện Tài liệu Json mới từ System.Text.Json.JsonDocument API sẽ thay thế JSON.NET. Nó nhanh hơn 2-3 lần so với JSON.NET cũ.

Update: Bạn đã có thể sử dụng Entity Framework 6.3 trên .NET Core 3.

Nếu bạn dự định chuyển các ứng dụng .NET sang .NET Core, bạn sẽ phải phân tích các API sử dụng trong dự án xem chúng có tương thích hay không. .NET Portability Analyzer là một công cụ giúp phân tích và xác định mức độ linh hoạt của ứng dụng trên các nền tảng .NET.

C# 8.0

Phiên bản mới nhất của C# 8.0 bổ sung nhiều tính năng mới bao gồm Async Stream, Phạm vi (Range), Các kiểu tham chiếu Nullable, và So khớp mẫu (Pattern Matching).

Vấn đề nằm ở chỗ, các tính năng này chỉ có trên .NET Core 3.0 trở lên. Tức là .NET Framework, .NET Core 2.2, 2.1 hoặc 1.0 sẽ không có các tính năng mới này.

Dường như trong thời gian tới đây .NET Framework có thể sẽ bị bỏ mặc và .NET Core sẽ là nền tảng gần gũi hơn cả với .NET 5.0 tương lai.

Kết luận

Là một lập trình viên .NET, nhìn về tương lai của công nghệ .NET và hướng đi của nó, bạn có thể sẽ rất hạnh phúc! Thật đấy!

Bạn có thể không còn cần phải học JavaScript để viết ứng dụng web SPA vì có thể dùng Blazor. Bạn không còn cần phải học Python cho Machine Learning vì có thể sử dụng ML.NET. Bạn không còn cần phải học Android hay Swift vì Xamarin sẽ làm điều đó. Nếu bạn biết lập trình C#, bạn có thể phát triển ứng dụng có thể chạy mọi nơi từ IoT đến Cloud!

Loạt bài “Các công nghệ phát triển ứng dụng Microsoft sinh viên nên biết”:
Phần 1 – Giới thiệu chung, .NET Framework, .NET Core, Ngôn ngữ, Công cụ
Phần 2 – Windows form, WPF, ASP.NET, ASP.NET Core, ADO.NET
Phần 3 – Phân biệt các nền tảng .NET Core, .NET Framework, .NET Standard
Phần 4 – .NET 5 – tương lai của các công nghệ .NET

+ Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
+ Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
+ Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
Cảm ơn bạn!

Theo dõi
Thông báo của
guest

3 Thảo luận
Cũ nhất
Mới nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Dat Truong

rất bổ ích, tks thớt

Phong_Dang

Nói là hợp nhất nhưng vẫn còn .net framework vs .net core đúng không ạ, nếu chỉ còn 1 thì những dự án cũ viết bằng .net framework sẽ được xử lý thế nào ạ ?

Mai Chi

Đúng rồi bạn. Họ hợp nhất các nền tảng lại để chỉ còn phải lo phát triển 1 cái thôi. Còn .NET framework và .NET core không được phát triển tiếp nữa (không có thêm tính năng mới) chứ không phải bị loại bỏ. Microsoft vẫn duy trì (vẫn vá lỗi) hai nền tảng này thêm nhiều năm nữa để đảm bảo hoạt động cho các ứng dụng đã viết ra. Những ứng dụng nào chuyển được sang nền tảng mới thì chuyển. Nếu không chuyển được thì cũng không có gì phải lo.