Upload
larry-nung
View
50
Download
1
Tags:
Embed Size (px)
Citation preview
ARCHITECTURE IN .NETLarry 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 & A2
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%8C%E5%BA%AB 34
REFERENCE
Common Intermediate Language - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Common_Intermediate_Language
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