Giới thiệu về .NET Framework

Trong bài viết này, tôi sẽ cung cấp cho bạn một cái nhìn tổng quan về .NET Framework. Điều này quan trọng đối với bạn là một nhà phát triển .NET để hiểu rõ các thành phần và kiến trúc của .NET Framework.

Trong bài viết này, chúng ta sẽ thảo luận về những gì đã có trước .Net Framework và những vấn đề chúng ta gặp phải trong đó và cách chúng ta khắc phục tất cả những vấn đề đó trong .NET Framework.

Trước khi .NET Framework ra đời, chúng ta có COM. Vì vậy, trước tiên chúng ta hãy thảo luận một chút về COM là gì và những vấn đề chúng ta gặp phải với COM.

COM là gì?

COM là viết tắt của Component Object Model (Mô hình đối tượng thành phần). COM là một trong những công nghệ của Microsoft. Sử dụng công nghệ này, chúng ta có thể phát triển các ứng dụng windows cũng như các ứng dụng web. Trong COM trước đây, VB là ngôn ngữ lập trình được sử dụng để triển khai ứng dụng windows và ASP được sử dụng để triển khai các ứng dụng web.

Nhược điểm của COM là gì?

Hai nhược điểm chính của COM là:

  1. Lập trình hướng đối tượng không hoàn chỉnh có nghĩa là nó sẽ không hỗ trợ tất cả các tính năng của OOP.
  2. Phụ thuộc vào nền tảng có nghĩa là các ứng dụng COM chỉ có thể chạy trên hệ điều hành Windows.

Để khắc phục các vấn đề trên, DOT NET Framework đã có trong hình.

.NET đại diện cho điều gì?

NET là viết tắt của Network Enabled Technology. Trong .NET, dấu chấm (.) Đề cập đến hướng đối tượng và NET đề cập đến internet. Vì vậy, .NET hoàn chỉnh có nghĩa là thông qua hướng đối tượng, chúng ta có thể triển khai các ứng dụng dựa trên internet.

Framework là gì?

Framework là một tập hợp nhiều công nghệ nhỏ được tích hợp với nhau để phát triển các ứng dụng có thể thực thi ở bất kỳ đâu.

.NET Framework là gì?

.NET Framework là một nền tảng phát triển phần mềm được phát triển bởi Microsoft để xây dựng và chạy các ứng dụng Windows. .NET Framework bao gồm các công cụ dành cho nhà phát triển, ngôn ngữ lập trình và thư viện để xây dựng các ứng dụng web và máy tính để bàn. Nó cũng được sử dụng để xây dựng các trang web, dịch vụ web và trò chơi.

.NET Framework nhằm tạo ra các ứng dụng chạy trên nền tảng Windows. Phiên bản đầu tiên của .NET Framework được phát hành vào năm 2002. Phiên bản này được gọi là .NET Framework 1.0. .NET Framework đã trải qua một chặng đường dài kể từ đó và phiên bản hiện tại là .NET Framework 4.8.

.NET Framework có thể được sử dụng để tạo ra cả hai các ứng dụng dựa trên Form dựa trên Web. Các dịch vụ web cũng có thể được phát triển bằng .NET Framework.

.NET Framework cũng hỗ trợ nhiều ngôn ngữ lập trình khác nhau như Visual Basic và C#. Vì vậy các nhà phát triển có thể lựa chọn ngôn ngữ để phát triển ứng dụng cần thiết.

.NET, .NET Framework và .NET Core

.NET là một nền tảng dành cho nhà phát triển được tạo thành từ 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.

Có nhiều cách triển khai .NET khác nhau. Mỗi triển khai cho phép mã .NET thực thi ở những nơi khác nhau — Linux, macOS, Windows, iOS, Android, v.v.

  1. .NET Framework là bản triển khai gốc của .NET. Nó hỗ trợ chạy các trang web, dịch vụ, ứng dụng máy tính để bàn và nhiều thứ nữa trên Windows.
  2. .NET Core là một triển khai đa nền tảng để chạy các trang web, dịch vụ và ứng dụng console trên Windows, Linux và macOS. .NET Core là mã nguồn mở trên GitHub.
  3. Xamarin/Mono là một triển khai .NET để chạy các ứng dụng trên tất cả các hệ điều hành di động chính, bao gồm cả iOS và Android.

.NET Standard là một đặc tả chính thức của các API phổ biến trên các triển khai .NET. Điều này cho phép cùng một mã và các thư viện chạy trên các triển khai khác nhau.

.NET, .NET Framework và .NET Core

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

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à trình thực thi để xử lý các ứng dụng đang chạy. Nó cung cấp các dịch vụ như quản lý luồng, thu gom rác, an toàn kiểu, xử lý ngoại lệ, v.v.
  • Class Library cung cấp một tập các API và các kiểu dữ liệu cho các chức năng thông thường. Nó cung cấp các kiểu chuỗi, ngày tháng, số, v.v. Class Library bao gồm các API để đọc và ghi file, kết nối với cơ sở dữ liệu, vẽ và nhiều thứ khác nữa.

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 một ngôn ngữ trung gian chung (Common Intermediate Language - CIL). Mã đã biên dịch được lưu trữ trong các assembly — các file có phần mở rộng là .dll hoặc .exe.

Khi một ứng dụng chạy, CLR nhận assembly và sử dụng trình biên dịch đúng lúc (Just-In-Time - JIT) để biến nó 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à nó đang chạy.

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

Class Library

Class Library được thiết kế bởi Microsoft. Nếu không có nó, chúng ta không thể viết bất kỳ mã nào trong .NET. Vì vậy, Class Library còn được gọi là khối xây dựng của chương trình .NET.

Chúng được cài đặt vào máy khi chúng ta cài đặt .NET framework. Class Library chứa các lớp được định nghĩa trước và các lớp này được sử dụng cho mục đích phát triển ứng dụng.

Vị trí thực của BCL là C:\Windows\assembly

Common Language Runtime - CLR

CLR là viết tắt của Common Language Runtime và nó là thành phần cốt lõi trong .NET Framework chịu trách nhiệm chuyển đổi mã MSIL (Microsoft Intermediate Language) thành mã máy và sau đó thực thi.

Trong bài viết tiếp theo chúng ta sẽ thảo luận chi tiết về chi tiết về CLR.

Common Language Runtime - CLR

Trong .NET Framework, mã được biên dịch hai lần.

  1. Trong lần biên dịch thứ nhất, mã nguồn được biên dịch bởi trình biên dịch ngôn ngữ tương ứng và tạo ra mã trung gian được gọi là MSIL (Microsoft Intermediate Language) hoặc IL (Intermediate Language) hoặc Mã được quản lý  (Managed Code).
  2. Trong biên dịch thứ 2, MSIL được chuyển đổi thành mã máy (mãy máy có nghĩa là mã dành riêng cho Hệ điều hành để mã được Hệ điều hành thực thi) bằng cách sử dụng CLR.

JIT là gì?

JIT là viết tắt của trình biên dịch Just-in-Time. Nó là thành phần của CLR chịu trách nhiệm chuyển đổi mã MSIL thành mã máy. Mã máy này có thể hiểu trực tiếp bởi hệ điều hành.

Lập Trình C#.NET Framework
Bài Viết Liên Quan:
Garbage Collector (GC) trong C#
Trung Nguyen 29/03/2021
Garbage Collector (GC) trong C#

Bạn sẽ tìm hiểu về Garbage Collector (GC) của .NET quản lý việc cấp phát và giải phóng bộ nhớ cho ứng dụng của bạn.

Common Language Runtime (CLR) trong C#
Trung Nguyen 29/03/2021
Common Language Runtime (CLR) trong C#

Trong bài viết này, chúng ta sẽ tìm hiểu về Common Language Runtime (CLR) là gì? Cách biên dịch và chạy ứng dụng được viết bằng C#.

int[] và int[,] trong C#: Ai nhanh hơn
Trung Nguyen 10/10/2020
int[] và int[,] trong C#: Ai nhanh hơn

Hiểu được sự khác biệt giữa các loại mảng trong C# sẽ giúp bạn chọn cấu trúc dữ liệu chính xác cho mọi trường hợp.

Struct và class trong C#: Ai nhanh hơn
Trung Nguyen 09/10/2020
Struct và class trong C#: Ai nhanh hơn

Trong bài viết này, tôi sẽ so sánh sự khác biệt về hiệu suất giữa struct và class trong C#: Ai nhanh hơn.