.NET Framework là một nền tảng phần mềm được phát triển bởi Microsoft để xây dựng và chạy các ứng dụng trên hệ điều hành Windows. Nó cung cấp một môi trường thực thi và thư viện mã hóa mở rộng cho phép Developer tạo ra các ứng dụng Windows mạnh mẽ, hiệu quả và an toàn. Sau đây là những thông tin hữu ích và mới nhất cùng hướng dẫn chi tiết về cách cài đặt phiên bản .NET Framework mới nhất.

Đọc bài viết hiểu rõ hơn về:

  • .NET Framework là gì?
  • Kiến trúc của .NET Framework
  • Chức năng của .NET Framework
  • Ưu và nhược điểm của .NET Framework
  • So sánh .NET Framework vs .NET Core
  • Hướng dẫn tải .NET Framework

.NET Framework là gì?

.NET là một nền tảng phát triển bao gồm các công cụ, ngôn ngữ lập trình và thư viện để xây dựng nhiều loại ứng dụng khác nhau. .NET là nền tảng ứng dụng bảo mật, đáng tin cậy và hiệu suất cao. Ngôn ngữ lập trình cho .NET là C#, được kiểu hóa mạnh mẽ, an toàn dữ liệu, có tích hợp đồng bộ và quản lý bộ nhớ tự động.

.NET Framework là một framework phát triển phần mềm để xây dựng và chạy các ứng dụng trên Windows. .NET Framework là triển khai ban đầu của .NET, hỗ trợ chạy các trang web, dịch vụ, ứng dụng máy tính để bàn và nhiều thứ khác trên Windows. Sử dụng .NET Framework cho ứng dụng máy chủ của bạn khi: 

Ứng dụng hiện đang sử dụng .NET Framework: Trong hầu hết các trường hợp, bạn không cần phải di chuyển các ứng dụng hiện có sang .NET. Thay vào đó, bạn nên sử dụng .NET khi bạn mở rộng một ứng dụng hiện có, chẳng hạn như viết một dịch vụ web mới trong ASP.NET Core.

Ứng dụng sử dụng thư viện của bên thứ ba hoặc các gói NuGet không khả dụng cho .NET: .NET Standard cho phép chia sẻ mã trên tất cả các triển khai .NET, bao gồm .NET 6+. Với .NET Standard 2.0, chế độ tương thích cho phép các dự án .NET Standard và .NET tham chiếu đến các thư viện .NET Framework.

Bạn chỉ nên sử dụng .NET Framework khi các thư viện hoặc gói NuGet sử dụng các công nghệ không có trong .NET Standard hoặc .NET.

Ứng dụng sử dụng công nghệ .NET Framework không có sẵn cho .NET: Một số công nghệ không có trong .NET như:

  • Ứng dụng ASP.NET Web Forms: ASP.NET Web Forms chỉ khả dụng trong .NET Framework. ASP.NET Core không thể sử dụng cho ASP.NET Web Forms.
  • Ứng dụng Trang web ASP.NET: Trang web ASP.NET không được bao gồm trong ASP.NET Core.
  • Các dịch vụ liên quan đến quy trình làm việc: Windows Workflow Foundation (WF), Workflow Services (WCF + WF trong một dịch vụ duy nhất) và WCF Data Services (trước đây gọi là ADO.NET Data Services) chỉ khả dụng trong .NET Framework.
  • Hỗ trợ ngôn ngữ: Visual Basic và F# được hỗ trợ trong .NET nhưng không phải cho tất cả các loại dự án. Để biết danh sách các mẫu dự án được hỗ trợ, hãy tham khảo danh sách này.

Ứng dụng sử dụng nền tảng không hỗ trợ .NET: Một số nền tảng của Microsoft hoặc bên thứ ba không hỗ trợ .NET. Một số dịch vụ Azure cung cấp SDK chưa có sẵn để sử dụng trên .NET. Trong những trường hợp như vậy, bạn có thể sử dụng API REST tương đương thay vì client SDK.

Đọc thêm: 15 tài liệu “chất” để lập trình .NET

Kiến trúc của .NET Framework

.net framework

Kiến trúc thành phần của .NET Framework. Nguồn ảnh: GeeksforGeeks

Hai thành phần chính của .NET Framework là Common Language Runtime và .NET Framework Class Library.

  • Common Language Runtime (CLR) là công cụ thực thi xử lý các ứng dụng đang chạy. CLR cung cấp các dịch vụ như quản lý thread, thu gom rác, type-safety, xử lý ngoại lệ…
  • Class Library cung cấp một bộ API và kiểu chức năng chung như các kiểu cho chuỗi, ngày, số… Class Library bao gồm các API để đọc và ghi tệp, kết nối với database, drawing…

Các ứng dụng .NET được viết bằng ngôn ngữ lập trình C#, F# hoặc Visual Basic. Mã được biên dịch thành Ngôn ngữ trung gian chung (Common Intermediate Language – CIL) không phụ thuộc vào ngôn ngữ. Mã đã biên dịch được lưu trữ trong các assembly – các tệp có phần mở rộng tệp là .dll hoặc .exe.

Khi một ứng dụng chạy, CLR sẽ lấy mã lệnh và sử dụng trình biên dịch tức thời (JIT) để chuyển đổi mã lệnh thành mã máy có thể thực thi trên kiến ​​trúc cụ thể của máy tính mà ứng dụng đang chạy.

Developer sử dụng .NET Framework để làm gì?

  • Xây mã dựng sẵn: .NET framework cung cấp một thư viện lớn các mã dựng sẵn mà các Developer có thể sử dụng để tạo ứng dụng chạy trên Windows.
  • Xây dựng ứng dụng: Có thể sử dụng để xây dựng nhiều loại ứng dụng, bao gồm ứng dụng máy tính để bàn, ứng dụng web, ứng dụng di động, trò chơi… .NET Framework cũng hỗ trợ nhiều công nghệ và tiêu chuẩn, chẳng hạn như ASP.NET để phát triển web, Windows Presentation Foundation (WPF) để phát triển ứng dụng máy tính để bàn và Entity Framework để truy cập dữ liệu.
  • Tăng tốc quá trình phát triển: .NET Framework cung cấp một bộ công cụ và tài nguyên phong phú mà các Developer có thể tận dụng để xây dựng các ứng dụng mạnh mẽ, chất lượng cao cho Windows.

Đọc thêm: .NET Developer: Trách nhiệm, Kỹ năng và Lộ trình học tập

Các dịch vụ mà .NET Framework cung cấp cho các ứng dụng đang chạy bao gồm:

  • Khả năng tương tác ngôn ngữ: Cho phép các Developer lựa chọn một số ngôn ngữ lập trình tương thích khi mã hóa ứng dụng. Các ứng dụng thậm chí có thể được xây dựng bằng cách sử dụng hỗn hợp các thành phần từ các ngôn ngữ khác nhau. C# và VB.NET là những ngôn ngữ được sử dụng phổ biến nhất, ngoài ra ngôn ngữ chức năng F# đang ngày càng phổ biến. Bạn thậm chí có thể viết ngôn ngữ của riêng mình chỉ cần tuân thủ các yêu cầu của .NET. 
  • Hệ thống kiểu dữ liệu dùng chung: Các kiểu biến đều giống nhau bất kể bạn sử dụng ngôn ngữ .NET nào để mã hóa.
  • Một Class Library rộng lớn: Thay vì phải viết một lượng lớn mã để xử lý các hoạt động lập trình cấp thấp phổ biến, lập trình viên có thể sử dụng thư viện các kiểu dữ liệu và thành viên dễ truy cập từ Class Library của .NET Framework.
  • Phát triển Framework và công nghệ: Bao gồm các thư viện cho các lĩnh vực phát triển ứng dụng cụ thể, chẳng hạn như: ASP.NET cho các ứng dụng web; ADO.NET cho truy cập dữ liệu; Windows Communication Foundation (WCF) cho các ứng dụng hướng dịch vụ hoặc API; WinForms hoặc nền tảng trình bày Windows để xây dựng các ứng dụng máy tính để bàn.
  • Khả năng tương thích của phiên bản: Trừ một số trường hợp ngoại lệ hiếm hoi, các ứng dụng được phát triển bằng cách sử dụng một phiên bản cụ thể của .NET Framework có thể chạy mà không cần sửa đổi trên phiên bản mới hơn.
  • Thực hiện song song: .Hỗ trợ giải quyết xung đột phiên bản bằng cách cho phép cùng tồn tại nhiều phiên bản của CLR trên cùng một máy tính. Điều này đồng nghĩa với việc nhiều phiên bản của ứng dụng cũng có thể cùng hoạt động và một ứng dụng có thể chạy trên phiên bản mà nó được xây dựng.

Ưu điểm và nhược điểm của .NET Framework là gì?

Ưu điểm

  • Thư viện mở rộng: Các thư viện mở rộng với .NET Framework có thể tiết kiệm thời gian cho các Developer.
  • Hệ thống kiểu dữ liệu dùng chung: Đây là giải pháp tiết kiệm thời gian, nghĩa là framework này hoạt động với mọi ngôn ngữ, do đó Developer có thể sử dụng bất kể họ sử dụng ngôn ngữ nào để mã hóa.
  • Quản lý bộ nhớ: Nhờ CLR mà các Developer không cần phải lo lắng về việc giải phóng bộ nhớ. CLR sẽ xử lý việc này cho ứng dụng.
  • Khả năng tương thích: Các ứng dụng thường không cần phải sửa đổi nếu có phiên bản .NET Framework mới hơn được phát hành.
  • Hệ sinh thái của .NET Framework bao gồm tất cả, dù là phát triển điện thoại, công cụ tích hợp API, phát triển database đơn thuần, máy tính để bàn, phát triển web hay phát triển game, đều có những thư viện khổng lồ gồm các thành phần được xây dựng sẵn.
  • Tích hợp với Windows: .NET Framework cung cấp khả năng tích hợp chặt chẽ với nền tảng Windows và các sản phẩm Microsoft Desktop. 

Nhược điểm

  • Một số công cụ và thành phần của stack có thể cực kỳ tốn kém. Đặc biệt, một số phiên bản .NET Framework yêu cầu phải có giấy phép, điều này làm tăng chi phí phát triển và triển khai ứng dụng.
  • Mặc dù .NET Framework có thể chạy trên nhiều hệ điều hành, nhưng ban đầu nó được thiết kế để sử dụng trên hệ điều hành Windows. Điều này khiến .NET Framework phụ thuộc vào Windows và có thể không phải là lựa chọn tốt nhất cho các ứng dụng đa nền tảng.
  • NET Framework có footprint lớn, có thể gây khó khăn cho việc triển khai ứng dụng trên các hệ thống có dung lượng lưu trữ hoặc băng thông hạn chế.
  • Mặc dù .NET Framework cung cấp hiệu suất tốt cho hầu hết các ứng dụng, nhưng có thể không phải là lựa chọn tốt nhất cho các ứng dụng hiệu suất cao yêu cầu quyền truy cập cấp thấp vào phần cứng hoặc thuật toán phức tạp.

Hướng dẫn tải .NET Framework cho Developer

Tất cả các phiên bản kể từ .NET Framework 4 đều là bản cập nhật tại chỗ, do đó chỉ có một phiên bản 4.x duy nhất có thể có trên một hệ thống. Ngoài ra, các phiên bản cụ thể của .NET Framework được cài đặt sẵn trên một số phiên bản của hệ điều hành Windows. Điều này có nghĩa là: 

  • Nếu máy đã cài phiên bản 4.x mới hơn, bạn không thể cài đặt phiên bản 4.x cũ hơn. 
  • Nếu hệ điều hành được cài đặt sẵn phiên bản .NET Framework cụ thể, bạn không thể cài đặt phiên bản 4.x trước đó trên cùng một máy. 
  • Nếu bạn cài đặt phiên bản mới hơn, bạn không cần phải gỡ cài đặt phiên bản trước đó.

Bắt đầu từ Visual Studio 2022, Visual Studio không còn bao gồm các thành phần .NET Framework cho phiên bản 4.0 – 4.5.1 vì các phiên bản này không còn được hỗ trợ nữa. Visual Studio 2022 và các phiên bản mới hơn không thể xây dựng các ứng dụng nhắm mục tiêu đến .NET Framework 4.0 đến 4.5.1. Để tiếp tục xây dựng các ứng dụng này, bạn có thể sử dụng Visual Studio 2019 hoặc phiên bản cũ hơn.

visual studio download

Download Visual Studio 2019 để tiếp tục xây dựng ứng dụng .NET Framework 4.0 đến 4.5.1

Bạn có thể cài đặt Developer Pack cho phiên bản cụ thể của .NET Framework (nếu có) trên tất cả các nền tảng được hỗ trợ. Developer Pack chỉ nhắm đến một phiên bản cụ thể và không bao gồm các phiên bản trước đó. Ví dụ: Developer Pack .NET Framework 4.8 không bao gồm 4.7.

Bạn có thể cài đặt trình cài đặt Web hoặc Ngoại tuyến trên: Windows 8.1 và các phiên bản trước đó Windows Server 2012 R2 và các phiên bản trước đó. Để biết danh sách đầy đủ, hãy xem System Requirements.

  • Để biết phần giới thiệu chung về .NET Framework dành cho cả người dùng và Developer, hãy xem phần Getting Started
  • Để biết thông tin về việc triển khai .NET Framework với ứng dụng của bạn, hãy xem deployment guide
  • Để đọc về kiến ​​trúc và các tính năng chính của .NET Framework, hãy xem phần tổng quan.

Cài đặt developer targeting pack để phát triển dựa trên phiên bản .NET Framework mới nhất trong Visual Studio hoặc môi trường phát triển khác. Hoặc bạn tải xuống .NET Framework có thể redistributable để phân phối cùng ứng dụng hoặc bộ điều khiển của bạn.

Cài đặt Developer Pack hoặc Targeting Pack

Targeting pack cho phép ứng dụng của bạn nhắm mục tiêu đến một phiên bản cụ thể của .NET Framework khi phát triển trong Visual Studio và một số môi trường phát triển khác. Developer pack bao gồm một phiên bản cụ thể của .NET Framework và SDK đi kèm cùng với targeting pack tương ứng.

Developer pack cho .NET Framework 4.5.1 hoặc 4.5.2, targeting pack cho phiên bản 4.6 và developer pack cho phiên bản 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 hoặc 4.8 cung cấp phiên bản cụ thể của các assembly tham chiếu, language pack và tệp IntelliSense để sử dụng trong môi trường phát triển tích hợp như Visual Studio.

Nếu bạn đang sử dụng Visual Studio, developer pack hoặc targeting pack cũng thêm phiên bản .NET Framework đã cài đặt vào các lựa chọn mục tiêu khi bạn tạo một dự án mới. Chọn một trong các mục sau:

Từ trang tải xuống developer pack, chọn Download. Tiếp theo, chọn Run hoặc Save và làm theo hướng dẫn. Bạn cũng có thể cài đặt developer pack hoặc targeting pack cho một phiên bản cụ thể bằng cách chọn nó từ các thành phần tùy chọn trong .NET desktop development workload trong Visual Studio Installer như hình minh họa sau:

visual studio

 Khi bạn nhắm mục tiêu đến một phiên bản cụ thể, ứng dụng của bạn được xây dựng bằng cách sử dụng các assembly tham chiếu có trong developer pack của phiên bản đó. Khi chạy, các assembly được giải quyết từ Global Assembly Cache và các assembly tham chiếu không được sử dụng.

Khi xây dựng ứng dụng từ Visual Studio hoặc sử dụng MSBuild từ dòng lệnh, MSBuild có thể hiển thị lỗi MSB3644, “The reference assemblies for framework “framework-version” were not found.”  Để khắc phục lỗi, hãy tải xuống developer pack hoặc targeting pack cho phiên bản đó.

So sánh .NET Framework vs .NET Core

.NET Core .NET Framework
Mã nguồn mở .NET Core là mã nguồn mở Một số thành phần của .NET Framework là mã nguồn mở
Cross-Platform Hoạt động theo nguyên tắc “build once, run anywhere” (xây một lần, chạy mọi nơi), tương thích với nhiều hệ điều hành khác nhau như Windows, Linux và Mac OS vì là đa nền tảng Tương thích với hệ điều hành Windows. Mặc dù nó được phát triển để hỗ trợ phần mềm và ứng dụng trên tất cả các hệ điều hành
Mô hình ứng dụng Không hỗ trợ phát triển ứng dụng trên desktop mà tập trung vào Web, Windows Mobile và Windows Store Được sử dụng để phát triển cả ứng dụng desktop và web cũng như hỗ trợ các ứng dụng Windows Forms và WPF
Cài đặt Được cài đặt độc lập với hệ điều hành cơ bản vì nó hỗ trợ đa nền tảng Được cài đặt như một gói duy nhất cho hệ điều hành Windows
Hỗ trợ Micro-Services và REST Services Hỗ trợ phát triển và triển khai các Micro-Services và người dùng phải tạo một REST API để triển khai Không hỗ trợ phát triển và triển khai các Micro-Services nhưng lại hỗ trợ các dịch vụ REST API
Hiệu suất và khả năng mở rộng Cung cấp hiệu suất và khả năng mở rộng cao Kém hiệu quả hơn so với .Net Core về mặt hiệu suất và khả năng mở rộng của ứng dụng
Khả năng tương thích Tương thích với nhiều hệ điều hành khác nhau như Windows, Linux và Mac OS Chỉ tương thích với hệ điều hành Windows
Phát triển Android Tương thích với các nền tảng ứng dụng di động nguồn mở, tức là Xamarin, thông qua .NET Standard Library.

Developer sử dụng các công cụ của Xamarin để cấu hình ứng dụng di động cho các thiết bị di động như iOS, Android và Windows

Không hỗ trợ bất kỳ khuôn khổ nào cho việc phát triển ứng dụng di động
Packaging and Shipping Được cung cấp dưới dạng một bộ sưu tập các gói Nugget Tất cả các thư viện của .NET Framework đều được đóng gói và vận chuyển cùng nhau
Mô hình triển khai Mỗi khi phiên bản mới của .NET Core được khởi tạo, nó được cập nhật tức thời trên một máy tại một thời điểm, do đó được cập nhật trong các thư mục/folder mới trong ứng dụng hiện có mà không ảnh hưởng đến nó.

Vì vậy, .NET Core có một mô hình triển khai tốt và linh hoạt

Trong trường hợp của .NET Framework, khi phiên bản cập nhật được phát hành, nó sẽ được triển khai đầu tiên và duy nhất trên Internet Information Server
Hỗ trợ Hỗ trợ cho các microservices Không hỗ trợ microservices
WCF Services Không hỗ trợ dịch vụ WCF Hỗ trợ tuyệt vời cho các dịch vụ WCF
Rest APIs Hỗ trợ Rest API Đôi khi cũng hỗ trợ Rest API
CLI Tools Cung cấp trình soạn thảo nhẹ và công cụ Command-line cho tất cả các nền tảng được hỗ trợ Rất nặng về Command Line Interface trong khi các Developer thích làm việc trên Command Line Interface nhẹ hơn
Bảo trì Không có các tính năng bảo mật truy cập mã như Code Access Security Tính năng Code Access Security có trong .NET Framework

Câu hỏi thường gặp về .NET Framework là gì

.NET Framework phù hợp với đối tượng nào?

Các Software Developer và người dùng ứng dụng của họ đều sử dụng .NET Framework: 

  • Người dùng ứng dụng được xây dựng bằng .NET Framework cần phải cài đặt .NET Framework. Trong hầu hết các trường hợp, .NET Framework đã được cài đặt sẵn trong Windows. Nếu cần, bạn có thể tải xuống.
  • Các Software Developer sử dụng .NET Framework để xây dựng nhiều loại ứng dụng khác nhau như trang web, dịch vụ, ứng dụng máy tính để bàn… bằng Visual Studio. Visual Studio là một môi trường phát triển tích hợp (IDE) cung cấp các công cụ phát triển năng suất và khả năng gỡ lỗi.

Sự khác biệt giữa .NET và .NET Framework

.NET .NET Framework
Cross-platform và chạy trên Linux, macOS và Windows. Chỉ chạy trên Windows.
Là mã nguồn mở và chấp nhận đóng góp từ cộng đồng. Mã nguồn có sẵn nhưng không chấp nhận đóng góp trực tiếp.
Mọi cải tiến đều diễn ra trong .NET.
Được cung cấp độc lập. Được tích hợp trong Windows và được cập nhật tự động trên toàn máy thông qua Windows Update.

Có thể cài đặt nhiều .NET Framework không? Nên sử dụng phiên bản nào?

Một số phiên bản có thể được cài đặt song song, trong khi một số phiên bản khác sẽ nâng cấp phiên bản hiện có. Cập nhật này diễn ra khi hai phiên bản chia sẻ cùng một phiên bản CLR.

Ví dụ, cài đặt phiên bản 4.8 trên máy đã cài đặt phiên bản 4.7.2 và 3.5 sẽ thực hiện cập nhật tại chỗ cho bản cài đặt 4.7.2 và giữ nguyên bản cài đặt 3.5. Trong hầu hết các trường hợp, bạn nên sử dụng bản phát hành ổn định mới nhất. Hiện tại, đó là phiên bản 4.8.1.

.NET và ASP.NET có phải là một không?

.NET được sử dụng để phát triển nhiều loại ứng dụng khác nhau như ứng dụng web, ứng dụng di động, ứng dụng máy tính để bàn, dịch vụ vi mô, dịch vụ đám mây, học máy, phát triển game và cuối cùng nhưng không kém phần quan trọng là các ứng dụng IoT.

Mặt khác, ASP.NET chỉ được sử dụng để phát triển các dịch vụ dynamic web, trang web và ứng dụng web.

Tổng kết

.NET Framework là một công cụ cần thiết cho các nhà phát triển Windows. Đây được xem là phần mềm tiêu chuẩn để xây dựng và tối ưu hóa các ứng dụng di động và web một cách hiệu quả. Hiểu về .NET Framework cũng như sử dụng để làm gì sẽ giúp bạn dễ dàng phát triển công việc trong lĩnh vực này.