Ngôn ngữ lập trình C#

Sơ lược về .NET platform

.NET là một nền tảng cho phép phát triển và triển khai nhiều loại ứng dụng từ desktop, web, mobile, cloud, AI, game, IoT, v.v. thuộc nhiều lĩnh vực như tài chính, y tế, thương mại điện tử, giáo dục, sản xuất, giải trí và nhiều ngành công nghiệp khác. Là công nghệ cốt lõi của Microsoft .NET ngày càng hoàn thiện với nhiều tính năng mạnh mẽ, hiệu suất cao, bảo mật tốt và khả năng mở rộng linh hoạt.

  • Bản phát hành đầu tiên .NET Framework 1.0 ra mắt năm 2002 chỉ hỗ trợ hệ điều hành Microsoft Windows.
  • Năm 2016 Microsoft giới thiệu .NET Core - Một phiên bản đa nền tảng mã nguồn mở.
  • Kể từ phiên bản .NET 5 phát hành năm 2020, Microsoft hợp nhất .NET và .NET Core thành .NET platform.
  1. Các thành phần chính của .NET

    1. .NET Runtime - Môi trường thực thi .NET

      .NET Runtime là thành phần cốt lõi của nền tảng .NET, cung cấp môi trường để thực thi ứng dụng .NET an toàn và hiệu quả.

      1. Common Language Runtime - CLR

        CLR là thành phần trung tâm của .NET Runtime chịu trách nhiệm biên dịch và thực thi mã .NET.

        1. Just-In-Time - JIT

          Khi thực thi chương trình .NET, CLR sử dụng JIT để biên dịch mã IL thành mã máy sao cho phù hợp với hệ điều hành và CPU.

          • Normal JIT: Biên dịch khi một phương thức được gọi lần đầu.
          • Pre-JIT: Biên dịch toàn bộ ứng dụng trước khi chạy.
        2. Intermediate Language - IL và Common Intermediate Language - CIL

          Đối với ứng dụng .NET, mã nguồn viết bằng C#, F# hoặc Visual Basic.NET, v.v. không được biên dịch trực tiếp thành mã máy mà được dịch sang ngôn ngữ trung gian - IL. Tại thời điểm thực thi chương trình, mã IL sẽ được dịch sang mã máy tùy theo hệ điều hành hoặc kiến trúc của CPU.

          Từ khi .NET và .NET Core hợp nhất, IL được chuẩn hóa và gọi là CIL.

        3. Common Type System - CTS

          CTS là tập hợp các quy tắc trong .NET xác định cách thức khai báo, sử dụng và quản lý kiểu dữ liệu, đảm bảo các ngôn ngữ khác nhau trong .NET (C#, Visual Basic.NET, F#, v.v.) có thể tương tác với nhau bằng cách sử dụng cùng một hệ thống kiểu dữ liệu chung. CTS chia kiểu dữ liệu thành hai nhóm chính:

          • Kiểu giá trị: Lưu trữ giá trị trực tiếp trong bộ nhớ stack. Khi gán giá trị từ biến này sang biến khác, dữ liệu của biến sẽ được sao chép.
          • Kiểu tham chiếu: Lưu trữ địa chỉ tham chiếu đến giá trị trong bộ nhớ heap. Khi gán giá trị từ biến này sang biến khác, địa chỉ của tham chiếu sẽ được sao chép.
        4. Quản lý bộ nhớ tự động: CLR sử dụng Garbage Collector để thu hồi bộ nhớ của các đối tượng không còn sử dụng:

          • Gen 0: Đối tượng ngắn hạn.
          • Gen 1: Đối tượng trung hạn.
          • Gen 2: Đối tượng dài hạn.
          • Large Object Heap - LOH: Lưu trữ các đối tượng lớn.
    2. Base Class Library - Thư viện lõi

      BCL là tập hợp các thư viện lớp cơ sở có tính chất cốt lõi của .NET, cung cấp các API cho phép thực hiện các tác vụ phổ biến như quản lý bộ nhớ, nhập/xuất dữ liệu, xử lý chuỗi, truy vấn cơ sở dữ liệu, lập trình mạng, v.v.

      • System.Collections: Quản lý danh sách, mảng, stack, queue, v.v.
      • System.IO: Xử lý tệp tin và luồng dữ liệu.
      • System.Net: Hỗ trợ kết nối mạng và giao thức HTTP.
      • System.Threading: Hỗ trợ lập trình đa luồng và bất đồng bộ.
      • System.Linq: Hỗ trợ truy vấn dữ liệu theo cú pháp LINQ.
    3. Multithreading và Parallel Execution

      CLR cung cấp cơ chế quản lý tiến trình, luồng và các tác vụ; hỗ trợ thực thi bất đồng bộ, giúp tối ưu hiệu suất và tận dụng hiệu quả tài nguyên của hệ thống.

    4. Xử lý ngoại lệ

      CLR sử dụng cơ chế try...catch...finally cho phép phát hiện và xử lý ngoại lệ toàn diện, nâng cao tính ổn định của chương trình.

  2. Data Access và Storage

    Cung cấp cơ chế, công cụ để làm việc với cơ sở dữ liệu bao gồm kết nối, truy vấn, quản lý, lưu trữ dữ liệu, v.v.

    • Entity Framework Core: Ánh xạ các bảng của cơ sở dữ liệu thành các lớp của ứng dụng.
    • ADO.NET: Kết nối và thao tác trực tiếp với các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, v.v.
    • Dapper: Micro-ORM thuần SQL, nhẹ và có hiệu suất cao.
    • System.Data: Cung cấp các API để làm việc với dữ liệu có cấu trúc.
  3. Nền tảng phát triển

    • ASP.NET Core: Phát triển ứng dụng web và API.
    • Windows Forms: Phát triển ứng dụng Windows truyền thống.
    • Windows Presentation Foundation - WPF: Xây dựng giao diện desktop hiện đại.
    • Multi-platform App UI - MAUI: Phát triển ứng dụng di động đa nền tảng.
    • Blazor: Xây dựng ứng dụng web bằng C# thay vì JavaScript.
  4. Công cụ phát triển và quản lý

    Các công cụ hỗ trợ: Lập trình, biên dịch, gỡ lỗi, quản lý mô-đun, thư viện, v.v.

    • .NET SDK: Bộ công cụ phát triển .NET, bao gồm trình biên dịch, CLI.
    • NuGet Package Manager: Quản lý thư viện và plug-in trong .NET.
    • MSBuild: Công cụ tự động hóa biên dịch và triển khai ứng dụng.
    • Môi trường phát triển tích hợp: Visual Studio và Visual Studio Code.

.NET là một nền tảng phát triển ứng dụng mạnh mẽ, có vai trò quan trọng trong hệ sinh thái công nghệ hiện đại. Với khả năng hỗ trợ đa nền tảng, hiệu suất cao và bảo mật vững chắc, .NET là lựa chọn hàng đầu cho các ứng dụng từ desktop, web, mobile đến cloud, AI và IoT.

Nắm vững các khái niệm này không chỉ giúp bạn hiểu rõ kiến trúc của .NET mà còn tạo nền tảng vững chắc để khai thác tối đa sức mạnh của .NET trong thực tiễn phát triển phần mềm. Các bài tiếp theo, chúng ta sẽ đi sâu vào từng thành phần để khám phá chi tiết hơn về cách .NET hoạt động và ứng dụng thực tế của nó.

- hoctotlamhay.vn