Common Intermediate Language (CIL)
Mỗi
ngôn ngữ lập trình .NET nói chung đều có một trình biên dịch và một môi trường
run-time của riêng mình. Trình biên dịch chuyển mã nguồn thành mã thực thi có
thể điều hành bởi người dùng.
Một
trong những mục tiêu chính của .NET Framework là kết hợp các môi trường
run-time để các lập trình viên có thể thể làm việc với một tập các dịch vụ
run-time.
Khi
code được viết bởi một ngôn ngữ .NET tương thích như là C# hay VB thì code sẽ
được biên dịch, kết quả được xuất ra dưới dạng mã của MSIL. MSIL bao gồm một tập
các cách thức mà mã được thực thi.
Hình
1.4 mô tả các khái niệm về ngôn ngữ Microsoft Intermediate. MSIL bây giờ được gọi
là CIL
Common Language Runtime (CLR)
CLR
là nền tảng của .NET Framework. Quản lý thời gian chạy khi code đang thực thi
các hoạt động như quản lý bộ nhớ, quản lý luồng, và làm việc từ xa. CLR hoạt động
như engine để thực hiện mã của .NET Framework. Nó quản lý việc thực thi và cung
cấp môi trường tương thích để thực thi cho các chương trình. .NET Framework hỗ
trợ một số công cụ phát triển và biên dịch ngôn ngữ trong Software Development
Kit (SDK). Do đó, CLR cung cấp một môi trường thực thi đa ngôn ngữ.
Dynamic Language Runtime (DLR)
DLR
là một môi trường run-time xây dựng trên CLR cho phép khả năng tương tác giữa
các ngôn ngữ động như Ruby và Python với .NET Framework. Các ngôn ngữ .NET
Framework, như là C#,VB và J# là ngôn ngữ
dạng tĩnh, nghĩa là các lập trình viên cần phải xác định kiểu của đối tượng khi
phát triển chương trình. Mặt khác, trong ngôn ngữ động, lập trình viên không cần
xác định kiểu của đối tượng trong giai đoạn phát triển. DLR cho phép tạo và chạy
các ngôn ngữ động trên nền .NET Framework. Ngoài ra, DLR còn cung cấp các tính
năng linh hoạt đối với các ngôn ngữ kiểu tĩnh hiện nay. Ví dụ, C# dựa trên DLR
để thực hiện các rạng buộc động