2. AGENDA
Overview
Common Language Infrastructure (CLI)
Common Language Runtime (CLR)
Just In Time Compiler (JIT)
Common Intermediate Language (CIL)
Base Class Library (BCL)
Framework Class Library (FCL)
Common Type System (CTS)
Common Language Specification (CLS)
Reference
Q & A 2
8. COMMON LANGUAGE RUNTIME (CLR)
The .NET Framework provides a run-time
environment called the common language runtime,
which runs the code and provides services that
make the development process easier.
8
10. COMMON LANGUAGE RUNTIME (CLR)
Performance improvements.
The ability to easily use components developed in other
languages.
Extensible types provided by a class library.
Language features such as inheritance, interfaces, and
overloading for object-oriented programming.
Support for explicit free threading that allows creation of
multithreaded, scalable applications.
Support for structured exception handling.
Support for custom attributes.
Garbage collection.
Use of delegates instead of function pointers for
increased type safety and security. For more information
about delegates, see Common Type System. 10
13. JUST IN TIME COMPILER (JIT)
JIT compilation converts MSIL to native code on
demand at application run time, when the contents
of an assembly are loaded and executed.
13
14. JUST IN TIME COMPILER (JIT)
Normal-JIT Compiler
Compile methods in runtime as needed.
14
15. JUST IN TIME COMPILER (JIT)
Econo-JIT
A runtime compiler which hadn’t done any optimization
and removed methods’ machine code when it is not
required.
15
18. COMMON INTERMEDIATE LANGUAGE (CIL)
Microsoft intermediate language (MSIL)
Lowest-level human-readable programming
language defined by the Common Language
Infrastructure (CLI) specification
18
20. BASE CLASS LIBRARY (BCL)
The Base Class Library (BCL) is the core set of
classes that serve as the basic API of the Common
Language Runtime. The classes in mscorlib.dll and
some of the classes in System.dll and
System.core.dll are considered to be a part of the
BCL. It includes the classes in namespaces like
System , System.Diagnostics ,
System.Globalization, System.Resources ,
System.Text , System.Runtime.Serialization and
System.Data etc.
20
23. FRAMEWORK CLASS LIBRARY (FCL)
The Framework Class Library (FCL) is a superset
of the BCL classes and refers to the entire class
library that ships with .NET Framework. It includes
an expanded set of libraries, including Windows
Forms, ADO.NET, ASP.NET, Language Integrated
Query, Windows Presentation Foundation,
Windows Communication Foundation among others.
23
26. COMMON TYPE SYSTEM (CTS)
Define how types are declared, used, and managed
in the common language runtime.
26
27. COMMON TYPE SYSTEM (CTS)
Establishes a framework that helps enable cross-
language integration, type safety, and high-
performance code execution.
Provides an object-oriented model that supports the
complete implementation of many programming
languages.
Defines rules that languages must follow, which
helps ensure that objects written in different
languages can interact with each other.
Provides a library that contains the primitive data
types (such as Boolean, Byte, Char, Int32, and
UInt64) used in application development. 27
28. COMMON TYPE SYSTEM (CTS)
Value types are data types whose objects are
represented by the object's actual value. If an
instance of a value type is assigned to a variable,
that variable is given a fresh copy of the value.
Reference types are data types whose objects are
represented by a reference (similar to a pointer) to
the object's actual value. If a reference type is
assigned to a variable, that variable references
(points to) the original value. No copy is made.
28
33. REFERENCE
Common Language Infrastructure - Wikipedia, the
free encyclopedia
http://en.wikipedia.org/wiki/Common_Language_Infrastr
ucture
Common Type System
https://msdn.microsoft.com/en-
us/library/zcx1eb1e(v=vs.71).aspx
Common Type System - Wikipedia, the free
encyclopedia
http://en.wikipedia.org/wiki/Common_Type_System
Ashu's Tricks
http://ashujagtap333.blogspot.tw/ 33
34. REFERENCE
Common Language Specification
https://msdn.microsoft.com/en-
us//library/vstudio/12a7a7h3(v=vs.100).aspx
Standard ECMA-335
http://www.ecma-
international.org/publications/standards/Ecma-335.htm
Common Language Runtime (CLR)
https://msdn.microsoft.com/en-
us//library/8bs2ecf4(v=vs.110).aspx
通用語言運行庫 - 維基百科,自由的百科全書
http://zh.wikipedia.org/wiki/%E9%80%9A%E7%94%A8
%E8%AA%9E%E8%A8%80%E9%81%8B%E8%A1%8
C%E5%BA%AB 34
35. REFERENCE
Common Intermediate Language - Wikipedia, the
free encyclopedia
http://en.wikipedia.org/wiki/Common_Intermediate_Lang
uage
Standard Libraries (CLI) - Wikipedia, the free
encyclopedia
http://en.wikipedia.org/wiki/Standard_Libraries_(CLI)
.NET Compilation - Part 1: Just-In-Time Compiler.
http://geekswithblogs.net/ilich/archive/2013/07/09/.net-
compilation-part-1.-just-in-time-compiler.aspx
Compiling MSIL to Native Code
https://msdn.microsoft.com/en-
us/library/ht8ecch6%28v=vs.90%29.aspx 35
36. REFERENCE
Explain JIT, Ngen.exe, Pre-jit, Normal-Jit and
Econo-Jit.? (.NET interview questions) - YouTube
https://www.youtube.com/watch?v=17AtWvLMFrU
Different Types of JIT Complier
http://www.dotnet-
tricks.com/Tutorial/netframework/1TG6181013-
Different-Types-of-JIT-Complier.html
36