Here are some small notes and summaries of the fourth version of the CLR via C #, if anything is wrong, please note.
CLR via C # The implementation model of the CLR is about how the source code is made into an application, or as a set of redistributable Components (files)-these components (files) contain types (classes and structs, etc.) that explain how the application executes.
The CLR (Common language runtime, common language runtime), as its name implies, is a "runtime" that can support multiple languages.
Typically, the execution of our C # programs is
The JIT (instant compiler) of the CLR compiles IL code into machine instructions.
The NGen.exe tool compiles the assembly's IL code into the cost machine code and saves the code to a disk. When you run the load assembly, the CLR automatically determines whether there is a precompiled version running the assembly. Using the NGen.exe tool, although the surface performance is better, but because it does not like JIT optimization code, so when you choose to use, you should pay attention to.
The CTS (common type system, common type systems) is used to describe the definition and behavior of a type. The CTS is a specification of a class that defines a type that can contain 0 or more members, and also specifies the type visibility rules and the access rules for type members, in addition to which the CTS defines rules for type inheritance, virtual methods, object lifetimes, and so on.
The CLR-oriented language is the same regardless of which "code's language" The last "code behaves", because ultimately the behavior of the type is defined by the CTS of the CLR.
The CLS (Common Language Specification, Common Language Specification) defines a common minimum feature set for the CLR language in detail. In general, your code can achieve cross-language access as long as it conforms to the CLS.
CLR execution model "CLR via C #" Chapter I.