.NET core là gì? Phân biệt .NET core, .NET framework, .NET standard và Mono

By 31/03/2021Tháng Sáu 10th, 2021.Net, C#, KIẾN THỨC LẬP TRÌNH

Hệ sinh thái .NET vô cùng phong phú, trong đó .NET core cũng là một nền tảng rất nổi bật với ưu điểm nhanh chóng, linh hoạt và giúp bạn dễ bảo trì ứng dụng.

.NET core là phiên bản mới của .NET có thể chạy đa nền tảng và có thể ứng dụng vào các thiết bị hiện đại

Hãy cùng tôi tìm hiểu kỹ về .NET core là gì cũng như tìm hiểu cách phân biệt nền tảng này với .NET framework, .NET standard và Mono

#1 .NET core là gì?

.NET core là phiên bản mới của  .NET framework. Nó là một nền tảng miễn phí và mã nguồn mở được phát triển, duy trì bởi Microsoft. 

.NET core là một framework đa nền tảng chạy trên các hệ điều hành: Windows, Mac OS và Linux. Nó được dùng để xây dựng ứng dụng trên các thiết bị khác nhau như mobile, desktop, web, cloud, máy học tập, game,..

Mặc dù nói .NET core là phiên bản từ .NET framework, nhưng thực tế nó được viết lại từ đầu để đem lại những ưu điểm như nhanh, nhẹ và đa nền tảng. 

Asp.Net Core là gì?

Khi tìm hiểu về .NET core, nhiều người thường thắc mắc ASP.NET Core là gì?

 ASP.NET Core cũng là một framework -là phiên bản cải biến mới của .NET Core -được phát triển lại từ đầu với mục tiêu chạy trên nền tảng .NET Core.

Nó được thiết kế để cung cấp khả năng tối ưu tốt hơn cho các ứng dụng dựa trên kết nối cloud (đám mây). Ví dụ như: ứng dụng web, Internet of Things và backend cho điện thoại di động,…

#2. Lịch sử ra đời của .NET core?

.NET core được ra đời vào ngày 12/11/2014 với niềm tin rằng nó sẽ là nền tảng của tất cả .NET framework trong tương lai (theo Immo Landwerth). 

Các phiên bản sau này được ra đời lần lượt:

  • .NET core 1.0 và .NET core 1.1 – năm 2016
  • .NET core 2.0 và .NET core 2.1 – năm 2017
  • .NET core 3.0 và .NET core 3.1 – năm 2019

Đến tháng 11/2020, Microsoft đã phát hành .NET 5.0 thay thế .NET framework. Chữ “Core” bị xóa khỏi tên và phiên bản 4.0 được bỏ qua để tránh nhầm lẫn với .NET framework.

lập trình NET core

Các phiên bản lập trình của .NET Core

#3. Đặc điểm của .NET core

Là nền tảng có nhiều ưu điểm, vậy những đặc điểm nổi bật của .net core là gì

3.1 Các đặc điểm nổi bật của .NET core

  • Open-source Framework
    .NET Core là nền tảng nguồn mở được duy trì bởi Microsoft và có sẵn trên GitHub theo giấy phép MIT và Apache 2. Nó là một dự án .NET Foundation.
  • Cross-platform
    Đa nền tảng. .NET Core chạy trên hệ điều hành Windows, macOS và Linux. Có thời gian chạy khác nhau cho mỗi hệ điều hành thực thi mã và tạo ra cùng một output.
  • Nhất quán giữa các kiến trúc
    Bạn có thể thực thi mã giống nhau trong các kiến trúc tập lệnh khác nhau (bao gồm x64, x68 và RAM)
  • Hỗ trợ nhiều ngôn ngữ
    Bạn có thể sử dụng ngôn ngữ lập trình C#, F# và Visual Basic để phát triển ứng dụng .NET Core.
  • Triển khai linh hoạt
    Các ứng dụng .NET Core có thể được triển khai song song (cài đặt toàn bộ người dùng hoặc toàn hệ thống). No cũng có thể triển khai với các Container Docker.
  • Khả năng tương thích
    .NET Core tương thích với .NET Framework và Mono API (thông qua .NET Standard).
  • Hỗ trợ bởi Microsoft
    Vì .NET Core được phát triển bởi Microsoft nên tài liệu cũng như các cập nhật, hỗ trợ được update thường xuyên. Từ đó, giúp người sử dụng có thể giải quyết vấn đề nhanh chóng.
  • Công cụ CLI
    .NET core bao gồm các công cụ CLI (
    Command – line –interface: Giao tiếp thông qua dòng lệnh) để phát triển và tích hợp liên tục.
  • Kiến trúc mô-đun
    .NET core hỗ trợ cách tiếp cận kiến trúc mô-đun bằng cách sử dụng các gói NuGet. Có các gói NuGet khác nhau cho các tính năng khác nhau có thể được thêm vào dự án .NET core nếu cần. Nhờ đó bạn sẽ ít tiêu tốn dung lượng bộ nhớ, tăng hiệu suất và dễ bảo trì ứng dụng hơn.

3.2 Framework

.NET core được nhiều người sử dụng để xây dựng framework. 

Các khung được phát triển dựa theo .NET core có thể kể đến như:

  • ASP.NET Core: là framework được phát triển bởi Microsoft dựa trên .NET Core. Tuy nói là phiên bản cải biên, nhưng thực tế nó được phát triển gần như từ đâu. Mục tiêu là đưa ra loại framework tối ưu hoá cho cloud.
  • Tizen: hệ điều hành Tizen ứng dụng cho các loại thiết bị thông minh như TV, máy giặt, máy ảnh, tủ lạnh,..
  • Windows 10 Universal WIndows Platform (UWP): cấu trúc ứng dụng thống nhất các nền tảng được tạo bởi Microsoft để phát triển ứng dụng chạy trên cả desktop và mobile.

3.3 Bốn thành phần chính của .NET core.

Các thành phần cốt lõi của .NET core bao gồm:

  1. CLI Tool: Công cụ CLI(Command – line –interface: Giao tiếp thông qua dòng lệnh) là bộ công cụ để phát triển và triển khai .NET core
  2. Roslyn: Trình biên dịch ngôn ngữ cho C# và Visual Basic
  3. CoreFX: Tập hợp các thư viện khung (framework library)
  4. CoreCLR (Command Language Runtime): Môi trường thực thi của .NET core, CoreCLR sử dụng trình biên dịch trung gian dựa trên JIT. Nhờ đó nó có thể dịch mã IL sang mã máy của những nền tảng mà nó hỗ trợ.
asp net core là gì

Thành phần của .NET core

Ngoài ra bạn cũng có thể thêm các thành phần như ASP.NET Core runtime vào .NET core.

3.4 Ưu điểm của .NET core

.NET core có nhiều ưu điểm, đáng để bạn trải nghiệm:

  • .NET core có thể được sử dụng cho nhiều nền tảng khác nhau như WIndows, Linux hay Mac OS. Khi ứng dụng nó với Visual Studio Code hoặc các công cụ khác sẽ giúp bạn phát triển ứng dụng trên các nền tảng khác nhau một cách dễ dàng.
  • Với khả năng triển khai linh hoạt của mình, khi .NET core kết hợp với Container Docker hoặc Azure Kubernates Service sẽ giúp bạn tiết kiệm tài nguyên đáng kể.
  • Với kiến trúc Mô đun, .NET Core ít tiêu tốn dung lượng bộ nhớ, tăng hiệu suất và dễ bảo trì ứng dụng hơn.
  • Tốc độ thực thi nhanh và khả năng mở rộng ứng dụng cũng là một trong những ưu điểm lớn của .NET core.

#4. Phân biệt .NET core, .NET framework, .NET standard và Mono

.NET core, .NET framework, .NET standard và Mono là những cái tên vô cùng quen thuộc nhưng lại rất dễ gây nhầm lẫn, nhất là đối với những người mới làm quen với .NET.

Mỗi loại sẽ phù hợp với một mục đích khác nhau, vì thế chúng ta cần phải phân biệt chúng rõ ràng.

Ví dụ: Bạn không nên dùng Mono để chạy Web Server trên Linux.

Trên thực tế, NET framework, .NET core và Mono có thể được xem là các phiên bản khác nhau của .NET. Chúng đều có Runtime, Library và Tool riêng.

Nguyên nhân cho việc có đến ba phiên bản là:

  • NET framework được trình làng năm 2002. Microsoft ban đầu hướng nền tảng này hoạt động trên Windows.NET framework được dùng để phát triển các nền tảng ứng dụng như ASP.NET(1-4), Winforms, WPF.
  • Đến năm 2013, Microsoft bắt đầu đổi định hướng sang các framework đa nền tảng nên đã cho ra đời .NET core. .NET core được dùng để xây dựng các ứng dụng như Universal Windows platform và ASP.NET Core.
  • NET Standard là một khái niệm khá khó hiểu, nó là một bộ đặc tả kỹ thuật về những kiểu dữ liệu chung mà .NET sẽ thực thi. Microsoft cho ra đời nền tảng này để việc chia sẻ thư viện của .NET Core và .NET Framework trở nên đơn giản hơn. Giả sử ta xem .NET Standard như interface trong C# thì .NET Core, .NET Framework hay Mono là những implementation khác nhau.
  • Mono là phiên bản được cải biến trong quá trình phát triền .NET framework, mục đích là để mang .NET đến các nền tảng khác ngoài Windows. Người ta thường dùng Mono để xây dựng các ứng dụng giao diện người dùng như: Unity Game, Xamarin,..
net-la-gi

Sơ đồ .NET Framework, .NET Core và Xamarin

Nên sử dụng .NET framework, .NET core, hay Mono?

Việc lựa chọn .NET framework, .NET core hay Mono để sử dụng là tuỳ thuộc vào loại ứng dụng mà bạn muốn xây dựng.

  • .NET framework sẽ là sự lựa chọn tốt cho các ứng dụng Windows cho máy tính bàn.
  • Mono sẽ phù hợp với việc phát triển game (Unity) hay các ứng dụng mobile Xamarin. 
  • Cả .NET Core và .NET Framework sẽ phù hợp cho việc phát triển Web server. 
  • Nếu bạn chọn .NET Core, bạn sẽ có được hiệu năng cao hơn, tuy nhiên số lượng thư viện hỗ trợ sẽ bị hạn chế.
  • Trong khi đó, sử dụng .NET Framework sẽ có nhiều thư viện hơn.

Lưu ý: Bạn không nên dùng Mono cho web server. Dùng Mono sẽ xảy ra tình trạng quá tải vì bộ máy dọn rác của nền tảng này không được thiết kế để vận hành web server. 

Kết luận

.NET core là một nền tảng linh hoạt giúp bạn xây dựng các ứng dụng cho những thiết bị hiện đại. Mong rằng bài viết này đã giúp bạn hiểu rõ hơn về .NET core, đặc điểm của chúng và cách phân biệt framework này với những nền tảng khác trong khối .NET như .NET core, .NET framework, .NET standard và Mono.

Chúc các bạn thành công!

 

Để lại một câu trả lời