Trước mắt, ta cần hiểu được làm thế nào .NET có thể chạy được đoạn code C#(hay F#, VB) mà bạn code. Để hiểu rõ được những điều này, bạn cần nắm rõ quy trình compile code trong .NET
Trước mắt, ta cần hiểu được làm thế nào .NET có thể chạy được đoạn code C#(hay F#, VB) mà bạn code. Để hiểu rõ được những điều này, bạn cần nắm rõ quy trình compile code trong .NET
Trong hình:
Phần "Complile time" là quá trình "BUILD"
Nguyên lý khi bạn build trong visual Studio hay dùng lệnh "dotnet build" thì code của bạn được chuyển hóa thành dạng ngôn ngữ trung gian là MSIL(viết tắt của từ Microsoft Intermediate Language)
Phần "Runtime" là quá trình chạy ứng dụng(Quá trình này tính từ khi bạn khởi động chạy ứng dụng của bạn)
Khi bạn khởi chạy ứng dụng, thành phần CLR (Viết tắt của Common language runtime) sẽ làm động tác dịch mã MSIL thành mã máy máy(Native code) quá trình này được gọi là JIT Compiler
Hình 1
Hình 2
Hình 3
Hình 4: Common Language Infrastructure
Tại sao trong .NET cần phải có ngôn ngữ trung gian MSIL Lý do là trong .NET đã thiết kế sẵn MSIL khi biên dịch ứng dụng do .NET có khá nhiều mảng như C#, VB, F# nên ngôn ngữ trung gian là cần thiết để phiên dịch từ các ngôn ngữ thành 1 ngôn ngữ chung |