ARCHITECTURE IN .NET Larry Nung
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
OVERVIEW 3
OVERVIEW 4
COMMON LANGUAGE INFRASTRUCTURE (CLI) 5
COMMON LANGUAGE INFRASTRUCTURE (CLI)  An open specification describes the executable code and runtime environment. 6
COMMON LANGUAGE RUNTIME (CLR) 7
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
COMMON LANGUAGE RUNTIME (CLR) 9
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
COMMON LANGUAGE RUNTIME (CLR) 11
JUST IN TIME COMPILER (JIT) 12
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
JUST IN TIME COMPILER (JIT)  Normal-JIT Compiler  Compile methods in runtime as needed. 14
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
 Pre-JIT Compiler  Compile the entire assembly before it has been used. 16
COMMON INTERMEDIATE LANGUAGE (CIL) 17
COMMON INTERMEDIATE LANGUAGE (CIL)  Microsoft intermediate language (MSIL)  Lowest-level human-readable programming language defined by the Common Language Infrastructure (CLI) specification 18
BASE CLASS LIBRARY (BCL) 19
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
BASE CLASS LIBRARY (BCL) 21
FRAMEWORK CLASS LIBRARY (FCL) 22
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
FRAMEWORK CLASS LIBRARY (FCL) 24
COMMON TYPE SYSTEM (CTS) 25
COMMON TYPE SYSTEM (CTS)  Define how types are declared, used, and managed in the common language runtime. 26
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
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
COMMON TYPE SYSTEM (CTS) 29
COMMON LANGUAGE SPECIFICATION (CLS) 30
COMMON LANGUAGE SPECIFICATION (CLS)  This is a subset of the CTS, which all .NET languages are expected to support. 31
REFERENCE 32
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
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
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
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
QUESTION & ANSWER 37

Architecture in .net

  • 1.
  • 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
  • 3.
  • 4.
  • 5.
  • 6.
    COMMON LANGUAGE INFRASTRUCTURE(CLI)  An open specification describes the executable code and runtime environment. 6
  • 7.
  • 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
  • 9.
  • 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
  • 11.
  • 12.
    JUST IN TIMECOMPILER (JIT) 12
  • 13.
    JUST IN TIMECOMPILER (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 TIMECOMPILER (JIT)  Normal-JIT Compiler  Compile methods in runtime as needed. 14
  • 15.
    JUST IN TIMECOMPILER (JIT)  Econo-JIT  A runtime compiler which hadn’t done any optimization and removed methods’ machine code when it is not required. 15
  • 16.
     Pre-JIT Compiler Compile the entire assembly before it has been used. 16
  • 17.
  • 18.
    COMMON INTERMEDIATE LANGUAGE(CIL)  Microsoft intermediate language (MSIL)  Lowest-level human-readable programming language defined by the Common Language Infrastructure (CLI) specification 18
  • 19.
  • 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
  • 21.
  • 22.
  • 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
  • 24.
  • 25.
  • 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
  • 29.
  • 30.
  • 31.
    COMMON LANGUAGE SPECIFICATION(CLS)  This is a subset of the CTS, which all .NET languages are expected to support. 31
  • 32.
  • 33.
    REFERENCE  Common LanguageInfrastructure - 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 LanguageSpecification  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 IntermediateLanguage - 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
  • 37.