SlideShare a Scribd company logo
VS.
Abd El-Rahman Hosny Alaa Attyea M.
Agenda
- Previous State of Affairs.
- Introduction to Java
• Compilers vs. Interpreters.
• Platform-Dependency.
• Hybrid Compiler-Interpreter.
• Java Components (JDK).
• JIT Solution.
- The .NET Solution
• CLR, CTS and CLS.
• Base Class Library.
• .NET Sons.
- What’s Next?!
 Punched Cards
- Piece of paper, that contains digital information.
- Information is represented by the presence or absence of holes
in predefined positions.
Previous State of Affairs ..
Previous State of Affairs ..
 Assembly Programming
- More readable for programmers.
- Consists of machine instructions.
- Each computer architecture has its own assembly commands.
- Reduced Instruction Set Computing (RISC).
- Complex Instruction Set Computing (CISC).
- Using assembler: assembly code => executable machine code.
- However, still a low-level programming language.
- High-level assembler for assembly languages that have some
high-level programming features.
Previous State of Affairs ..
Previous State of Affairs ..
 C/Windows API
- To develop software for Windows operating systems, we use
C programming language with the Windows application
programming interface (API).
- Large number of applications already created with this
approach.
- However …
Manual memory management.
Ugly pointer arithmetic.
Spaghetti code (thousands of functions & data types).
Previous State of Affairs ..
 C++/MFC
- Object-oriented layer on top of C.
- Benefits of OOP (Encapsulation, Inheritance, Polymorphism)
- Microsoft Foundation Classes (MFC) are set of C++ classes
that facilitate building Windows applications.
- MFC hade the underlying Windows API and provide classes,
macros and code generation tools (wizards).
- However …
Backward compatibility with C makes it prone to the same
problems (memory management, pointers, constructs).
Previous State of Affairs ..
 Visual Basic 6.0
- Programmer is now able to build complex user interfaces and
code libraries.
- Can access databases easily.
- Hide Windows API by using code wizards, VB data types,
classes and VB-specific functions.
- However …
Not fully OO (rather it’s object-based).
No is-a relationship (No inheritance).
No Multi-threaded applications (actually we can use lower
level APIs.
Previous State of Affairs ..
 COM
- Stands for Component Object Model.
- Microsoft’s previous application development framework.
- “If you build your types in accordance with the rules of COM,
you end up with a block of reusable binary code”.
- Language-Independent.
- ATL ( Active Template Library) provides a set of C++ classes,
templates & macros.
- However … Complex Data Type representation
The Move ...
What is a program & how it runs ?!
Source code and native bits:
- Source code a series of related commands of specific programming languages.
- Actually source code is not what runs on our machines.
- Machines knows only it’s native language (0s&1s).
- Source code must be translated in some way to the machine native language.
Compilers Vs interpreters :
- Compilers and interpreters and some software that acts as
a translator between you (high level language) and the machine (low level
language).
- Actually compilers and interpreters are totally different in the ways how
they treat your code.
- Let’s take a look about how they are working.
What is interpreter ?!
- Interpreters doesn’t behave like compilers.
- It do not translate any programming commands, it takes the code and
executes it line by line.
- Examples for interpreted languages PHP, haskell, aslo shell command in
linux are interpreted.
Platform dependent problem:
- As there are different computer architectures there must exist different
compilers to translate the code.
- Here w have the platform dependent problem.
- However … There another solution for that problem called, hybrid compiler-
interpreter.
- In this case first there will be intermediate code, which will run over the
interpreter and we’ll get the result.
Hybrid Compiler-interpreter:
Java solution and the power of Java:
- Java has the same solution about that issue.
- After we have written our source code, when we compile it using the javac
command, it will generate the intermediate code or what is called byte code.
- This will be at the form of (.class) file.
- JRE can be responsible for running and executing the .class file over the
machine.
Java components:
- The first step to write a java program and run it is to set up something called
JDK (Java Development Kit).
- This includes three main component for java
• JRE (JVM is a part of it).
• Java compiler (javac).
• Java debugger.
- With the help of these component you can run your code wherever and whatever
the architecture or platform of your machine.
- After the programmer have written the source code, he’ll use the javac to
compile the (.java file)
- Then the javac will create an intermediate code that is known as (.class file)
or byte code.
- This byte code can run over any JVM regardless of the machine architecture
or platform.
How the Java Program Runs ?
- It is a set of dynamically loadable libraries that java application uses at run time.
Java Class Library
JCL serves three purposes within the Java Platform:
- They provide the programmer a well-known set of useful facilities.
- Provides an abstract interface to tasks that would normally depend heavily on
the hardware and operating system, such as network access and file access.
- Some underlying platforms may not support all of the features a Java
application expects. In these cases, the library implementation can either
emulate those features or provide a consistent way to check for the presence of
a specific feature.
 JIT:
- Java uses different ways to generate machine the machine code.
- There is a way to produce efficient machine code called JIT (Just In Time
compilation).
- JIT compilers promise to improve the performance of Java applications.
- Rather than letting the JVM run bytecode, a JIT compiler translates code into
the host machine’s native language.
- Thus, applications get the performance enhancement of compiled code while
maintaining Java’s portability.
Java Garbage collector:
- Objects are created in the heap.
- Garbage collector looks for those objects that are not referencing and
memory location and reclaim the heap from those objects.
- Garbage Collection in Java is carried by a daemon thread called Garbage
Collector.
- Interoperability with existing source code.
- Support for many programming language.
- Common run-time engine shared by all .NET-aware languages.
- Complete and total language integration.
- Comprehensive base class libraries.
- No COM.
- Simplified deployment model.
The .NET Solution
.NET Building Blocks
CLR
Common Language
Runtime
CTS
Common Type System
CLS
Common Language
Specification
 CTS (Common Type System)
- CTS Specification fully describes all possible data types and programming
constructs supported by the run-time.
- CTS specifies how these entities can interact with each other and how they are
represented in the .NET metadata format.
- Some .NET language might not support every feature defined by the CTS.
 CLS (Common Language Specification)
- CLS is a set of rules that describes, in detail, the minimal and complete set
of features a given .NET-aware compiler must support to produce code that
can be hosted by the CLR, while at the same time can be accessed in a
uniform manner by all languages that the .NET platform support.
- CLS is a subset of the full functionality of CTS.
 CLR (Common Language Runtime)
- The CLR locate, load and manage .NET types on your behalf.
- Memory Management (Garbage Collector).
- Application Hosting.
- Handling Threads.
- Security Checks.
 CLR (Common Language Runtime) .. cont.
- When an assembly is referenced for use, mscore.dll is loaded automatically, which
loads the required assembly in turn.
(MS Common Object Runtime Execution Engine).
- Creating the required custom types.
- The key assembly is the mscore.dll, which contains a large number of types, that
encapsulate a wide variety of common programming tasks as well as the core data
types used by all .NET languages.
- In addition to CLR and CTS/CLS specifications, the .NET platform provides a base
class library that is available to all .NET programming languages
Base Class Library
A Comparison of .NET Framework vs. Java Virtual Machine
- CIL: the same as Java bytecode, it’ not compiled into platform specific instructions
until absolutely necessary.
- You can view the CIL code of any assembly using either:
ildasm.exe or using Reflector.
- Metadata
describes, in detail, the characteristics of every type within the
binary.
- Manifest:
The current version of the assembly.
Culture information (localizing string & image resources).
List of externally referenced assemblies that are required for
the proper execution of the program.
 Single-File assembly vs. Multi-File assembly.
A Comparison of .NET Framework vs. Java Virtual Machine
- Applications running in a managed environment tend to require more system resources
than similar applications that access machine resources more directly
- Managed byte code can often be easier to reverse-engineer than native code.
- The .NET Framework currently does not provide support for calling Streaming SIMD
Extensions (SSE) via managed code.
- While the standards that make up .NET are inherently cross-platform, Microsoft's full
implementation of .NET is only supported on Windows.
Criticism
AbdelrahmanHosny.com
AlaaAttya.wordpress.com
A Comparison of .NET Framework vs. Java Virtual Machine

More Related Content

What's hot (20)

PPTX
Net Fundamentals
Ali Taki
 
PPTX
Introduction to .net FrameWork by QuontraSolutions
Quontra Solutions
 
PPTX
Microsoft dot net framework
Ashish Verma
 
PDF
PHP, Java EE & .NET Comparison
Haim Michael
 
PPTX
.Net framework
Yogendra Tamang
 
PPTX
Visual Studio 2010 and .NET Framework 4.0 Overview
Harish Ranganathan
 
PDF
Dotnet basics
Mir Majid
 
PPT
.NET Vs J2EE
ravikirantummala2000
 
PPT
Introduction to ,NET Framework
ANURAG SINGH
 
PPTX
.Net Framework Introduction
Abhishek Sahu
 
PPT
Introduction to .NET Framework
Kamlesh Makvana
 
PPT
.Net overview|Introduction Of .net
pinky singh
 
PPSX
Introductionto .netframework by Priyanka Pinglikar
PriyankaPinglikar
 
PPTX
Introduction to .NET by QuontraSolutions
QUONTRASOLUTIONS
 
PPT
Net framework
mayankingeniar
 
PPT
Csharp
Swaraj Kumar
 
PPTX
.net CLR
DevTalk
 
PPTX
Presentation1
kpkcsc
 
PPTX
Overview of .Net Framework 4.5
Bhushan Mulmule
 
PPTX
Comparison of Programming Platforms
Anup Hariharan Nair
 
Net Fundamentals
Ali Taki
 
Introduction to .net FrameWork by QuontraSolutions
Quontra Solutions
 
Microsoft dot net framework
Ashish Verma
 
PHP, Java EE & .NET Comparison
Haim Michael
 
.Net framework
Yogendra Tamang
 
Visual Studio 2010 and .NET Framework 4.0 Overview
Harish Ranganathan
 
Dotnet basics
Mir Majid
 
.NET Vs J2EE
ravikirantummala2000
 
Introduction to ,NET Framework
ANURAG SINGH
 
.Net Framework Introduction
Abhishek Sahu
 
Introduction to .NET Framework
Kamlesh Makvana
 
.Net overview|Introduction Of .net
pinky singh
 
Introductionto .netframework by Priyanka Pinglikar
PriyankaPinglikar
 
Introduction to .NET by QuontraSolutions
QUONTRASOLUTIONS
 
Net framework
mayankingeniar
 
Csharp
Swaraj Kumar
 
.net CLR
DevTalk
 
Presentation1
kpkcsc
 
Overview of .Net Framework 4.5
Bhushan Mulmule
 
Comparison of Programming Platforms
Anup Hariharan Nair
 

Similar to A Comparison of .NET Framework vs. Java Virtual Machine (20)

PPT
Best DotNet Training in Delhi
Information Technology
 
PPTX
3.0 Introduction to .NET Framework
Abdelrahman Hosny
 
PPSX
Introduction to .net framework
Arun Prasad
 
PPT
Synapse india reviews sharing asp.net
SynapseindiaComplaints
 
PPTX
.Net Framework
MohamadKrm
 
PPT
Csharp dot net
Ekam Baram
 
PPT
Asp dot net
husnara mohammad
 
PPT
C sharp
Satish Verma
 
PPT
.Net overview
madydud
 
PPSX
Unit 1(sem-iv)
Jigarthacker
 
PPT
ASP.NET Session 1
Sisir Ghosh
 
PPT
Nakov - .NET Framework Overview - English
Svetlin Nakov
 
PPT
Introduction to .NET Framework
Raghuveer Guthikonda
 
PPTX
.NET Online Session
Abd El-Rahman Hosny
 
PPT
Session gwjanhdienjsgek2nwgei2792jej 1.ppt
r86308281
 
PPT
J2EEvs.NET
salonityagi
 
PPT
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Lorenz Lo Sauer
 
PPTX
Welcome to the .Net
Amr Shawky
 
PPT
1.Philosophy of .NET
snandagopalan2
 
PPT
Asp net
MohitKumar1985
 
Best DotNet Training in Delhi
Information Technology
 
3.0 Introduction to .NET Framework
Abdelrahman Hosny
 
Introduction to .net framework
Arun Prasad
 
Synapse india reviews sharing asp.net
SynapseindiaComplaints
 
.Net Framework
MohamadKrm
 
Csharp dot net
Ekam Baram
 
Asp dot net
husnara mohammad
 
C sharp
Satish Verma
 
.Net overview
madydud
 
Unit 1(sem-iv)
Jigarthacker
 
ASP.NET Session 1
Sisir Ghosh
 
Nakov - .NET Framework Overview - English
Svetlin Nakov
 
Introduction to .NET Framework
Raghuveer Guthikonda
 
.NET Online Session
Abd El-Rahman Hosny
 
Session gwjanhdienjsgek2nwgei2792jej 1.ppt
r86308281
 
J2EEvs.NET
salonityagi
 
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Lorenz Lo Sauer
 
Welcome to the .Net
Amr Shawky
 
1.Philosophy of .NET
snandagopalan2
 
Ad

More from Abdelrahman Hosny (16)

PDF
Teaching Philosophy
Abdelrahman Hosny
 
PDF
Confirming dna replication origins of saccharomyces cerevisiae a deep learnin...
Abdelrahman Hosny
 
PDF
A Study On Deep Learning
Abdelrahman Hosny
 
PDF
My Teaching Philosophy
Abdelrahman Hosny
 
PDF
iPhone Architecture - Review
Abdelrahman Hosny
 
PDF
Implementing a Caching Scheme for Media Streaming in a Proxy Server
Abdelrahman Hosny
 
PPTX
A Servant Leader
Abdelrahman Hosny
 
PPTX
Microsoft SharePoint 2010 Overview
Abdelrahman Hosny
 
PPTX
Cloud Computing
Abdelrahman Hosny
 
PPTX
Office365
Abdelrahman Hosny
 
PPTX
The Silent Presentation
Abdelrahman Hosny
 
PPTX
Team Building
Abdelrahman Hosny
 
PPTX
Introduction to Marketing
Abdelrahman Hosny
 
PPTX
Interviewing
Abdelrahman Hosny
 
PPTX
1.0 Introduction to Hardware Computer Architecture
Abdelrahman Hosny
 
PPTX
2.0 Introduction to Computer Science and Programming
Abdelrahman Hosny
 
Teaching Philosophy
Abdelrahman Hosny
 
Confirming dna replication origins of saccharomyces cerevisiae a deep learnin...
Abdelrahman Hosny
 
A Study On Deep Learning
Abdelrahman Hosny
 
My Teaching Philosophy
Abdelrahman Hosny
 
iPhone Architecture - Review
Abdelrahman Hosny
 
Implementing a Caching Scheme for Media Streaming in a Proxy Server
Abdelrahman Hosny
 
A Servant Leader
Abdelrahman Hosny
 
Microsoft SharePoint 2010 Overview
Abdelrahman Hosny
 
Cloud Computing
Abdelrahman Hosny
 
The Silent Presentation
Abdelrahman Hosny
 
Team Building
Abdelrahman Hosny
 
Introduction to Marketing
Abdelrahman Hosny
 
Interviewing
Abdelrahman Hosny
 
1.0 Introduction to Hardware Computer Architecture
Abdelrahman Hosny
 
2.0 Introduction to Computer Science and Programming
Abdelrahman Hosny
 
Ad

Recently uploaded (20)

PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 

A Comparison of .NET Framework vs. Java Virtual Machine

  • 1. VS. Abd El-Rahman Hosny Alaa Attyea M.
  • 2. Agenda - Previous State of Affairs. - Introduction to Java • Compilers vs. Interpreters. • Platform-Dependency. • Hybrid Compiler-Interpreter. • Java Components (JDK). • JIT Solution. - The .NET Solution • CLR, CTS and CLS. • Base Class Library. • .NET Sons. - What’s Next?!
  • 3.  Punched Cards - Piece of paper, that contains digital information. - Information is represented by the presence or absence of holes in predefined positions. Previous State of Affairs ..
  • 4. Previous State of Affairs ..  Assembly Programming - More readable for programmers. - Consists of machine instructions. - Each computer architecture has its own assembly commands. - Reduced Instruction Set Computing (RISC). - Complex Instruction Set Computing (CISC). - Using assembler: assembly code => executable machine code. - However, still a low-level programming language. - High-level assembler for assembly languages that have some high-level programming features.
  • 5. Previous State of Affairs ..
  • 6. Previous State of Affairs ..  C/Windows API - To develop software for Windows operating systems, we use C programming language with the Windows application programming interface (API). - Large number of applications already created with this approach. - However … Manual memory management. Ugly pointer arithmetic. Spaghetti code (thousands of functions & data types).
  • 7. Previous State of Affairs ..  C++/MFC - Object-oriented layer on top of C. - Benefits of OOP (Encapsulation, Inheritance, Polymorphism) - Microsoft Foundation Classes (MFC) are set of C++ classes that facilitate building Windows applications. - MFC hade the underlying Windows API and provide classes, macros and code generation tools (wizards). - However … Backward compatibility with C makes it prone to the same problems (memory management, pointers, constructs).
  • 8. Previous State of Affairs ..  Visual Basic 6.0 - Programmer is now able to build complex user interfaces and code libraries. - Can access databases easily. - Hide Windows API by using code wizards, VB data types, classes and VB-specific functions. - However … Not fully OO (rather it’s object-based). No is-a relationship (No inheritance). No Multi-threaded applications (actually we can use lower level APIs.
  • 9. Previous State of Affairs ..  COM - Stands for Component Object Model. - Microsoft’s previous application development framework. - “If you build your types in accordance with the rules of COM, you end up with a block of reusable binary code”. - Language-Independent. - ATL ( Active Template Library) provides a set of C++ classes, templates & macros. - However … Complex Data Type representation
  • 11. What is a program & how it runs ?! Source code and native bits: - Source code a series of related commands of specific programming languages. - Actually source code is not what runs on our machines. - Machines knows only it’s native language (0s&1s). - Source code must be translated in some way to the machine native language.
  • 12. Compilers Vs interpreters : - Compilers and interpreters and some software that acts as a translator between you (high level language) and the machine (low level language). - Actually compilers and interpreters are totally different in the ways how they treat your code. - Let’s take a look about how they are working.
  • 13. What is interpreter ?! - Interpreters doesn’t behave like compilers. - It do not translate any programming commands, it takes the code and executes it line by line. - Examples for interpreted languages PHP, haskell, aslo shell command in linux are interpreted.
  • 14. Platform dependent problem: - As there are different computer architectures there must exist different compilers to translate the code. - Here w have the platform dependent problem. - However … There another solution for that problem called, hybrid compiler- interpreter. - In this case first there will be intermediate code, which will run over the interpreter and we’ll get the result.
  • 16. Java solution and the power of Java: - Java has the same solution about that issue. - After we have written our source code, when we compile it using the javac command, it will generate the intermediate code or what is called byte code. - This will be at the form of (.class) file. - JRE can be responsible for running and executing the .class file over the machine.
  • 17. Java components: - The first step to write a java program and run it is to set up something called JDK (Java Development Kit). - This includes three main component for java • JRE (JVM is a part of it). • Java compiler (javac). • Java debugger. - With the help of these component you can run your code wherever and whatever the architecture or platform of your machine.
  • 18. - After the programmer have written the source code, he’ll use the javac to compile the (.java file) - Then the javac will create an intermediate code that is known as (.class file) or byte code. - This byte code can run over any JVM regardless of the machine architecture or platform. How the Java Program Runs ?
  • 19. - It is a set of dynamically loadable libraries that java application uses at run time. Java Class Library
  • 20. JCL serves three purposes within the Java Platform: - They provide the programmer a well-known set of useful facilities. - Provides an abstract interface to tasks that would normally depend heavily on the hardware and operating system, such as network access and file access. - Some underlying platforms may not support all of the features a Java application expects. In these cases, the library implementation can either emulate those features or provide a consistent way to check for the presence of a specific feature.
  • 21.  JIT: - Java uses different ways to generate machine the machine code. - There is a way to produce efficient machine code called JIT (Just In Time compilation). - JIT compilers promise to improve the performance of Java applications. - Rather than letting the JVM run bytecode, a JIT compiler translates code into the host machine’s native language. - Thus, applications get the performance enhancement of compiled code while maintaining Java’s portability.
  • 22. Java Garbage collector: - Objects are created in the heap. - Garbage collector looks for those objects that are not referencing and memory location and reclaim the heap from those objects. - Garbage Collection in Java is carried by a daemon thread called Garbage Collector.
  • 23. - Interoperability with existing source code. - Support for many programming language. - Common run-time engine shared by all .NET-aware languages. - Complete and total language integration. - Comprehensive base class libraries. - No COM. - Simplified deployment model. The .NET Solution
  • 24. .NET Building Blocks CLR Common Language Runtime CTS Common Type System CLS Common Language Specification
  • 25.  CTS (Common Type System) - CTS Specification fully describes all possible data types and programming constructs supported by the run-time. - CTS specifies how these entities can interact with each other and how they are represented in the .NET metadata format. - Some .NET language might not support every feature defined by the CTS.
  • 26.  CLS (Common Language Specification) - CLS is a set of rules that describes, in detail, the minimal and complete set of features a given .NET-aware compiler must support to produce code that can be hosted by the CLR, while at the same time can be accessed in a uniform manner by all languages that the .NET platform support. - CLS is a subset of the full functionality of CTS.
  • 27.  CLR (Common Language Runtime) - The CLR locate, load and manage .NET types on your behalf. - Memory Management (Garbage Collector). - Application Hosting. - Handling Threads. - Security Checks.
  • 28.  CLR (Common Language Runtime) .. cont. - When an assembly is referenced for use, mscore.dll is loaded automatically, which loads the required assembly in turn. (MS Common Object Runtime Execution Engine). - Creating the required custom types. - The key assembly is the mscore.dll, which contains a large number of types, that encapsulate a wide variety of common programming tasks as well as the core data types used by all .NET languages.
  • 29. - In addition to CLR and CTS/CLS specifications, the .NET platform provides a base class library that is available to all .NET programming languages Base Class Library
  • 31. - CIL: the same as Java bytecode, it’ not compiled into platform specific instructions until absolutely necessary. - You can view the CIL code of any assembly using either: ildasm.exe or using Reflector.
  • 32. - Metadata describes, in detail, the characteristics of every type within the binary. - Manifest: The current version of the assembly. Culture information (localizing string & image resources). List of externally referenced assemblies that are required for the proper execution of the program.  Single-File assembly vs. Multi-File assembly.
  • 34. - Applications running in a managed environment tend to require more system resources than similar applications that access machine resources more directly - Managed byte code can often be easier to reverse-engineer than native code. - The .NET Framework currently does not provide support for calling Streaming SIMD Extensions (SSE) via managed code. - While the standards that make up .NET are inherently cross-platform, Microsoft's full implementation of .NET is only supported on Windows. Criticism